/*
#include "sample_w_torch.h"

int main() {
  string ckpt_path = "null.ckpt";
  vector<int> prompt(10,0);
  vector<tuple<vector<int>,vector<int>>> control;
  sample_from_model(ckpt_path, prompt, control, 1, .9);
}
*/

//g++ test.cpp --std=c++11 -i/Users/Jeff/SFU/PHD/DATASET_BUILDER_V2/dataset_builder_2/src/dataset_builder_2/sample/sample.h -L/Users/Jeff/SFU/PHD/DATASET_BUILDER_V2/dataset_builder_2/src/dataset_builder_2/sample/build

#include <iostream>
#include <string>
#include <vector>
#include <tuple>
#include <dlfcn.h>

#include "sample.h"

using namespace std;

int main() {

  string ckpt_path = "null.ckpt";
  vector<int> prompt(10,0);
  vector<tuple<vector<int>,vector<int>>> control;
  sample_from_model(ckpt_path, prompt, control, 1, .9);

  /*
  void* dylib = dlopen("build/libsample.dylib", RTLD_LAZY);

  if (dylib == NULL) {
    std::cout << "FAILED TO LOAD" << std::endl;
    return 1;
  }

  // get func
  void (*print)(string& ckpt_path, vector<int>& prompt, vector<tuple<vector<int>,vector<int>>> control, int batch_size, float temperature) = (void(*)(string&, vector<int>&, vector<tuple<vector<int>,vector<int>>>, int, float))dlsym(dylib, "sample_from_model");



  if (print == NULL) {
      std::cout << "CAN'T LOAD" << std::endl;
      dlclose(dylib);
      return 2;
  }
  // test the print function
  //print("Herro Word!");
  //dlclose(dylib);
  */

  
}