Skip to content

Commit 0410573

Browse files
authored
Merge pull request #1338 from stan-dev/tests/broaden-optimize-output-test
Optimize tests: don't assume number of algorithmic parameters in output
2 parents 2db1dcc + eab88cb commit 0410573

1 file changed

Lines changed: 27 additions & 18 deletions

File tree

src/test/interface/optimization_output_test.cpp

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,12 @@ TEST_F(CmdStan, optimize_default) {
5959
EXPECT_TRUE(boost::contains(config[jacobian_idx], "= false (Default)"));
6060

6161
ASSERT_NEAR(0, values[0], 0.00001);
62-
EXPECT_FLOAT_EQ(1, values[1]);
63-
EXPECT_FLOAT_EQ(100, values[2]);
64-
EXPECT_FLOAT_EQ(10000, values[3]);
65-
EXPECT_FLOAT_EQ(1000000, values[4]);
62+
auto outputs = values.size();
63+
64+
EXPECT_FLOAT_EQ(1, values[outputs - 4]);
65+
EXPECT_FLOAT_EQ(100, values[outputs - 3]);
66+
EXPECT_FLOAT_EQ(10000, values[outputs - 2]);
67+
EXPECT_FLOAT_EQ(1000000, values[outputs - 1]);
6668
}
6769

6870
TEST_F(CmdStan, optimize_bfgs) {
@@ -85,10 +87,12 @@ TEST_F(CmdStan, optimize_bfgs) {
8587
EXPECT_FALSE(boost::contains(config[algo_idx], "lbfgs"));
8688

8789
ASSERT_NEAR(0, values[0], 0.00001);
88-
EXPECT_FLOAT_EQ(1, values[1]);
89-
EXPECT_FLOAT_EQ(100, values[2]);
90-
EXPECT_FLOAT_EQ(10000, values[3]);
91-
EXPECT_FLOAT_EQ(1000000, values[4]);
90+
auto outputs = values.size();
91+
92+
EXPECT_FLOAT_EQ(1, values[outputs - 4]);
93+
EXPECT_FLOAT_EQ(100, values[outputs - 3]);
94+
EXPECT_FLOAT_EQ(10000, values[outputs - 2]);
95+
EXPECT_FLOAT_EQ(1000000, values[outputs - 1]);
9296
}
9397

9498
TEST_F(CmdStan, optimize_lbfgs) {
@@ -110,10 +114,12 @@ TEST_F(CmdStan, optimize_lbfgs) {
110114
EXPECT_TRUE(boost::contains(config[algo_idx], "lbfgs"));
111115

112116
ASSERT_NEAR(0, values[0], 0.00001);
113-
EXPECT_FLOAT_EQ(1, values[1]);
114-
EXPECT_FLOAT_EQ(100, values[2]);
115-
EXPECT_FLOAT_EQ(10000, values[3]);
116-
EXPECT_FLOAT_EQ(1000000, values[4]);
117+
auto outputs = values.size();
118+
119+
EXPECT_FLOAT_EQ(1, values[outputs - 4]);
120+
EXPECT_FLOAT_EQ(100, values[outputs - 3]);
121+
EXPECT_FLOAT_EQ(10000, values[outputs - 2]);
122+
EXPECT_FLOAT_EQ(1000000, values[outputs - 1]);
117123
}
118124

119125
TEST_F(CmdStan, optimize_newton) {
@@ -135,10 +141,12 @@ TEST_F(CmdStan, optimize_newton) {
135141
EXPECT_TRUE(boost::contains(config[algo_idx], "newton"));
136142

137143
ASSERT_NEAR(0, values[0], 0.00001);
138-
EXPECT_FLOAT_EQ(1, values[1]);
139-
EXPECT_FLOAT_EQ(100, values[2]);
140-
EXPECT_FLOAT_EQ(10000, values[3]);
141-
EXPECT_FLOAT_EQ(1000000, values[4]);
144+
auto outputs = values.size();
145+
146+
EXPECT_FLOAT_EQ(1, values[outputs - 4]);
147+
EXPECT_FLOAT_EQ(100, values[outputs - 3]);
148+
EXPECT_FLOAT_EQ(10000, values[outputs - 2]);
149+
EXPECT_FLOAT_EQ(1000000, values[outputs - 1]);
142150
}
143151

144152
TEST_F(CmdStan, optimize_jacobian_adjust) {
@@ -158,8 +166,9 @@ TEST_F(CmdStan, optimize_jacobian_adjust) {
158166
EXPECT_NE(jacobian_idx, -1);
159167
EXPECT_TRUE(boost::contains(config1[jacobian_idx], "= false (Default)"));
160168

169+
auto outputs = values1.size();
161170
ASSERT_NEAR(0, values1[0], 0.00001);
162-
ASSERT_NEAR(3, values1[1], 0.01);
171+
ASSERT_NEAR(3, values1[outputs - 1], 0.01);
163172

164173
ss.str(std::string());
165174
ss << convert_model_path(simple_jacobian_model) << " random seed=1234"
@@ -176,5 +185,5 @@ TEST_F(CmdStan, optimize_jacobian_adjust) {
176185
EXPECT_NE(jacobian_idx, -1);
177186
EXPECT_TRUE(boost::contains(config2[jacobian_idx], "= true"));
178187

179-
ASSERT_NEAR(3.3, values2[1], 0.01);
188+
ASSERT_NEAR(3.3, values2[outputs - 1], 0.01);
180189
}

0 commit comments

Comments
 (0)