Beispiel #1
0
  void SetUp() {
    output.str("");
    error.str("");

    model_output.str("");
    sample_output.str("");
    diagnostic_output.str("");
    message_output.str("");
    writer_output.str("");

    sampler = new mock_sampler(&output, &error);

    std::fstream empty_data_stream(std::string("").c_str());
    stan::io::dump empty_data_context(empty_data_stream);
    empty_data_stream.close();
    
    model = new stan_model(empty_data_context, &model_output);
    
    stan::interface::recorder::csv sample_recorder(&sample_output, "# ");
    stan::interface::recorder::csv diagnostic_recorder(&diagnostic_output, "# ");
    stan::interface::recorder::messages message_recorder(&message_output, "# ");

    writer = new stan::io::mcmc_writer<stan_model,
                                       stan::interface::recorder::csv,
                                       stan::interface::recorder::csv,
                                       stan::interface::recorder::messages>
      (sample_recorder, diagnostic_recorder, message_recorder, &writer_output);

    base_rng.seed(123456);

    q = Eigen::VectorXd(0,1);
    log_prob = 0;
    stat = 0;
  }
Beispiel #2
0
  void SetUp() {
    model_output.str("");
    sample_output.str("");
    diagnostic_output.str("");
    message_output.str("");
    error_output.str("");
    
    sampler = new mock_sampler();

    std::fstream empty_data_stream(std::string("").c_str());
    stan::io::dump empty_data_context(empty_data_stream);
    empty_data_stream.close();
    
    model = new stan_model(empty_data_context, &model_output);
    
    writer_t sample_writer(sample_output, "# ");
    writer_t diagnostic_writer(diagnostic_output, "# ");

    writer = new stan::services::sample::mcmc_writer<stan_model,
                                                     writer_t,
                                                     writer_t,
                                                     writer_t>
      (sample_writer, diagnostic_writer, message_writer);

    base_rng.seed(123456);

    q = Eigen::VectorXd(0,1);
    log_prob = 0;
    stat = 0;
  }
Beispiel #3
0
  void SetUp() {
    std::fstream empty_data_stream(std::string("").c_str());
    stan::io::dump empty_data_context(empty_data_stream);
    empty_data_stream.close();
    
    model_output.str("");
    model = new Model(empty_data_context, &model_output);
    base_rng.seed(123456);
    
    output.str("");
    error.str("");
    sampler_ptr = new sampler((*model), base_rng, &output, &error);
    sampler_ptr->set_nominal_stepsize(1);
    sampler_ptr->set_stepsize_jitter(0);
    sampler_ptr->set_max_depth(10);

    delta = 0.8;
    gamma = 0.05;
    kappa = 0.75;
    t0 = 10;
    
    z_0.resize(model->num_params_r());
    z_0.fill(0);
    z_init.resize(model->num_params_r());
    z_init.fill(1);
  }
 void SetUp() {
   std::fstream empty_data_stream(std::string("").c_str());
   stan::io::dump empty_data_context(empty_data_stream);
   empty_data_stream.close();
   
   model_output.str("");
   model_ptr = new Model(empty_data_context, &model_output);
   base_rng.seed(123456);
 }
TEST(StanCommon, reject_func_call_generated_quantities) {
  std::string error_msg = "user-specified rejection";

  std::fstream empty_data_stream(std::string("").c_str());
  stan::io::dump empty_data_context(empty_data_stream);
  empty_data_stream.close();
  std::stringstream model_output;
  model_output.str("");

  // instantiate model
  reject_func_call_generated_quantities_model_namespace::reject_func_call_generated_quantities_model* model 
       = new reject_func_call_generated_quantities_model_namespace::reject_func_call_generated_quantities_model(empty_data_context, &model_output);

  // instantiate args to log_prob function
  Eigen::VectorXd cont_params = Eigen::VectorXd::Zero(model->num_params_r());
  std::vector<double> cont_vector(cont_params.size());
  for (int i = 0; i < cont_params.size(); ++i)
    cont_vector.at(i) = cont_params(i);
  std::vector<int> disc_vector;
  double lp;

  boost::ecuyer1988 base_rng;
  base_rng.seed(123456);

  lp = model->log_prob<false, false>(cont_vector, disc_vector, &std::cout);
  try {
    stan::services::io::write_iteration(model_output, *model, base_rng,
                    lp, cont_vector, disc_vector);
  } catch (const std::domain_error& e) {
    if (std::string(e.what()).find(error_msg) == std::string::npos) {
      FAIL() << std::endl << "---------------------------------" << std::endl
             << "--- EXPECTED: error_msg=" << error_msg << std::endl
             << "--- FOUND: e.what()=" << e.what() << std::endl
             << "--------------------------------*" << std::endl
             << std::endl;
    }
    return;
  }
  FAIL() << "model failed to do reject" << std::endl;
}