2 #include <gtest/gtest.h> 4 #include <test/test-models/good/optimization/rosenbrock.hpp> 22 std::vector<std::string> names_;
23 std::vector<std::vector<double> > states_;
44 states_.push_back(state);
54 parameter(parameter_ss),
67 unsigned int seed = 0;
68 unsigned int chain = 1;
69 double init_radius = 0;
71 int num_interations = 1000;
72 bool save_iterations =
true;
76 seed, chain, init_radius,
77 num_interations, save_iterations,
83 EXPECT_EQ(0, return_code);
84 EXPECT_EQ(logger.call_count(), logger.call_count_info()) <<
"all output to info";
85 EXPECT_EQ(1, logger.find(
"Initial log joint probability = -1"));
86 EXPECT_EQ(1, logger.find(
"Iteration 1. Log joint probability ="));
88 ASSERT_EQ(3, parameter.names_.size());
89 EXPECT_EQ(
"lp__", parameter.names_[0]);
90 EXPECT_EQ(
"x", parameter.names_[1]);
91 EXPECT_EQ(
"y", parameter.names_[2]);
93 EXPECT_GT(parameter.states_.size(), 0);
94 EXPECT_FLOAT_EQ(0, parameter.states_.front()[1])
95 <<
"initial value should be (0, 0)";
96 EXPECT_FLOAT_EQ(0, parameter.states_.front()[2])
97 <<
"initial value should be (0, 0)";
98 EXPECT_NEAR(1, parameter.states_.back()[1], 1
e-3)
99 <<
"optimal value should be (1, 1)";
100 EXPECT_NEAR(1, parameter.states_.back()[2], 1
e-3)
101 <<
"optimal value should be (1, 1)";
102 EXPECT_FLOAT_EQ(return_code, 0);
103 EXPECT_GT(callback.
n, 0);
107 unsigned int seed = 0;
108 unsigned int chain = 1;
109 double init_radius = 0;
111 int num_interations = 1000;
112 bool save_iterations =
false;
116 seed, chain, init_radius,
117 num_interations, save_iterations,
123 EXPECT_EQ(0, return_code);
124 EXPECT_EQ(logger.call_count(), logger.call_count_info()) <<
"all output to info";
125 EXPECT_EQ(1, logger.find(
"Initial log joint probability = -1"));
126 EXPECT_EQ(1, logger.find(
"Iteration 1. Log joint probability ="));
128 EXPECT_EQ(
"0,0\n", init_ss.str());
130 ASSERT_EQ(3, parameter.names_.size());
131 EXPECT_EQ(
"lp__", parameter.names_[0]);
132 EXPECT_EQ(
"x", parameter.names_[1]);
133 EXPECT_EQ(
"y", parameter.names_[2]);
135 EXPECT_EQ(1, parameter.states_.size());
136 EXPECT_NEAR(1, parameter.states_.back()[1], 1
e-3)
137 <<
"optimal value should be (1, 1)";
138 EXPECT_NEAR(1, parameter.states_.back()[2], 1
e-3)
139 <<
"optimal value should be (1, 1)";
140 EXPECT_FLOAT_EQ(return_code, 0);
141 EXPECT_GT(callback.
n, 0);
void operator()(const std::vector< double > &state)
stan::callbacks::stream_writer init
TEST_F(ServicesOptimizeNewton, rosenbrock)
std::stringstream parameter_ss
stan::io::empty_var_context context
def callbacks(model_name, group, tensorboard=True)
chain
Check that an output directory exists.
values(std::ostream &stream)
int newton(Model &model, stan::io::var_context &init, unsigned int random_seed, unsigned int chain, double init_radius, int num_iterations, bool save_iterations, callbacks::interrupt &interrupt, callbacks::logger &logger, callbacks::writer &init_writer, callbacks::writer ¶meter_writer)
void operator()(const std::vector< std::string > &names)
const XML_Char XML_Content * model
stan::test::unit::instrumented_logger logger