34 ASSERT_LE(std::abs(fun.calculateValue(x) - 0.0), eps);
36 ASSERT_LE(std::abs(fun.calculateValue(x) - 1.0), eps);
38 ASSERT_LE(std::abs(fun.calculateValue(x) - 4.0), eps);
48 ASSERT_LE(std::abs((*fun.calculateGradient(x))[0] - 0.0), eps);
50 ASSERT_LE(std::abs((*fun.calculateGradient(x))[0] - 2.0), eps);
52 ASSERT_LE(std::abs((*fun.calculateGradient(x))[0] - 4.0), eps);
60 TEST(Sphere3DLandscape, Gradient) {
62 mic::types::MatrixPtr<double> x = MAKE_MATRIX_PTR(
double, 3,1);
63 mic::types::MatrixPtr<double> dx;
68 for (
size_t i=0; i<3; i++)
71 for (
size_t i=0; i<3; i++)
72 ASSERT_LE(std::abs((*dx)[i] - 0.0), eps);
75 for (
size_t i=0; i<3; i++)
78 for (
size_t i=0; i<3; i++)
79 ASSERT_LE(std::abs((*dx)[i] - 4.0), eps);
82 for (
size_t i=0; i<3; i++)
85 for (
size_t i=0; i<3; i++)
86 ASSERT_LE(std::abs((*dx)[i] - 2*i), eps);
95 for (
size_t i=0; i<20; i++)
97 ASSERT_LE(std::abs(fun.calculateValue(x) - 0.0), eps);
98 for (
size_t i=0; i<20; i++)
100 ASSERT_LE(std::abs(fun.calculateValue(x) - 20.0), eps);
101 for (
size_t i=0; i<20; i++)
103 ASSERT_LE(std::abs(fun.calculateValue(x) - 80.0), eps);
105 for (
size_t i=0; i<20; i++)
107 ASSERT_LE(std::abs(fun.calculateValue(x) - 2470.0), eps);
116 mic::types::MatrixPtr<double> dx;
119 for (
size_t i=0; i<20; i++)
121 dx = fun.calculateGradient(x);
122 for (
size_t i=0; i<20; i++)
123 ASSERT_LE(std::abs((*dx)[i] - 0.0), eps);
126 for (
size_t i=0; i<20; i++)
128 dx = fun.calculateGradient(x);
129 for (
size_t i=0; i<20; i++)
130 ASSERT_LE(std::abs((*dx)[i] - 4.0), eps);
133 for (
size_t i=0; i<20; i++)
135 dx = fun.calculateGradient(x);
136 for (
size_t i=0; i<3; i++)
137 ASSERT_LE(std::abs((*dx)[i] - 2*i), eps);
147 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
148 ASSERT_LE(std::abs((*dx)[0]), eps);
149 ASSERT_LE(std::abs((*dx)[1]), eps);
160 ASSERT_LE(std::abs(fun.calculateValue(x) - 1.0), eps);
163 ASSERT_LE(std::abs(fun.calculateValue(x) - 0.0), eps);
166 ASSERT_LE(std::abs(fun.calculateValue(x) - 401.0), eps);
176 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
177 ASSERT_LE(std::abs((*dx)[0]), eps);
178 ASSERT_LE(std::abs((*dx)[1]), eps);
188 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
189 ASSERT_LE(std::abs((*dx)[0] - 3202.0), eps);
190 ASSERT_LE(std::abs((*dx)[1] + 800.0), eps);
193 dx = fun.calculateGradient(x);
194 ASSERT_LE(std::abs((*dx)[0] - 1602.0), eps);
195 ASSERT_LE(std::abs((*dx)[1] + 400.0), eps);
200 int main(
int argc,
char **argv) {
201 testing::InitGoogleTest(&argc, argv);
202 return RUN_ALL_TESTS();
Test fixture - artificial landscape - sphere function 20D (square function).
mic::types::MatrixPtr< eT > calculateGradient(mic::types::MatrixPtr< eT > x_)
Test fixture - artificial landscape - Rosenbrock function 2D.
int main(int argc, char **argv)
Test fixture - artificial landscape - sphere function 1D (square function).
TEST_F(Sphere1DLandscape, Value)
TEST(Sphere3DLandscape, Gradient)
Test fixture - artificial landscape - Beale's function 2D.