@@ -99,64 +99,69 @@ void SetProblem(string libName, string confName, char* dim, GlobalOptimizationPr
9999// }
100100//
101101// // ------------------------------------------------------------------------------------------------
102- // TEST(Problem_rastrigin, test_rastrigin)
103- // {
104- // //rastrigin.dll
105- // IGlobalOptimizationProblem* problem = 0;
106- // string libName = "rastrigin";
107- // string confName = "";
108- // int Dimension = 2;
109- // char dim[2] = { '0' + char(Dimension), 0 };
110- //
111- // double* y = new double[Dimension];
112- // int size = 0;
113- // double* lower = new double[Dimension];
114- // double* upper = new double[Dimension];
115- //
116- // double l = -2.2;
117- // double u = 1.8;
118- //
119- // double val = 3.8396601125010505;
120- //
121- // for (int i = 0; i < Dimension; i++)
122- // {
123- // y[i] = 0.1;
124- // lower[i] = 0;
125- // upper[i] = 0;
126- // }
127- //
128- // TProblemManager manager;
129- // TParameters parameters;
130- //
131- // SetProblem(libName, confName, dim, parameters, manager, problem);
132- //
133- // EXPECT_DOUBLE_EQ(problem->CalculateFunctionals(y, 0), val);
134- //
135- // ASSERT_EQ(problem->GetDimension(), 2);
136- //
137- // ASSERT_EQ(problem->GetAllOptimumPoint(y, size), IGlobalOptimizationProblem::PROBLEM_UNDEFINED);
138- //
139- // ASSERT_NO_THROW(problem->GetBounds(lower, upper));
140- //
141- // for (int i = 0; i < Dimension; i++)
142- // {
143- // EXPECT_DOUBLE_EQ(lower[i], l);
144- // EXPECT_DOUBLE_EQ(upper[i], u);
145- // }
146- //
147- // ASSERT_EQ(problem->GetNumberOfConstraints(), 0);
148- //
149- // ASSERT_EQ(problem->GetNumberOfCriterions(), 1);
150- //
151- // ASSERT_EQ(problem->GetNumberOfFunctions(), 1);
152- //
153- // ASSERT_EQ(problem->GetOptimumPoint(y), IGlobalOptimizationProblem::PROBLEM_OK);
154- //
155- // ASSERT_EQ(problem->GetOptimumValue(val), IGlobalOptimizationProblem::PROBLEM_OK);
156- //
157- // EXPECT_DOUBLE_EQ(problem->CalculateFunctionals(y, 0), val);
158- // }
159- //
102+ TEST (Problem_rastrigin, test_rastrigin)
103+ {
104+ // rastrigin.dll
105+ IGlobalOptimizationProblem* problem = nullptr ;
106+ std::string libName = " rastrigin" ;
107+ std::string confName = " " ;
108+ int Dimension = 2 ;
109+ char dim[2 ] = { ' 0' + static_cast <char >(Dimension), ' \0 ' };
110+
111+ std::vector<double > y (Dimension);
112+ int size = 0 ;
113+ std::vector<double > lower (Dimension);
114+ std::vector<double > upper (Dimension);
115+
116+ double l = -2.2 ;
117+ double u = 1.8 ;
118+
119+ double val = 3.8396601125010505 ;
120+
121+ for (int i = 0 ; i < Dimension; i++)
122+ {
123+ y[i] = 0.1 ;
124+ lower[i] = 0 ;
125+ upper[i] = 0 ;
126+ }
127+
128+ GlobalOptimizationProblemManager manager;
129+
130+ std::string libPath = std::string (TESTDATA_BIN_PATH ) + " /" + libName + " .dll" ;
131+ ASSERT_EQ (InitGlobalOptimizationProblem (manager, problem, libPath), 0 );
132+ ASSERT_NE (problem, nullptr );
133+
134+ ASSERT_EQ (problem->SetDimension (Dimension), IGlobalOptimizationProblem::PROBLEM_OK );
135+
136+ std::vector<std::string> strs;
137+
138+ ASSERT_EQ (problem->GetDimension (), 2 );
139+
140+ std::vector<std::vector<double >> yVector = { y };
141+ std::vector<std::vector<std::string>> strVector = { strs };
142+ ASSERT_EQ (problem->GetAllOptimumPoint (yVector, strVector, size), IGlobalOptimizationProblem::PROBLEM_UNDEFINED );
143+
144+ ASSERT_NO_THROW (problem->GetBounds (lower, upper));
145+
146+ for (int i = 0 ; i < Dimension; i++)
147+ {
148+ EXPECT_DOUBLE_EQ (lower[i], l);
149+ EXPECT_DOUBLE_EQ (upper[i], u);
150+ }
151+
152+ ASSERT_EQ (problem->GetNumberOfConstraints (), 0 );
153+
154+ ASSERT_EQ (problem->GetNumberOfCriterions (), 1 );
155+
156+ ASSERT_EQ (problem->GetNumberOfFunctions (), 1 );
157+
158+ ASSERT_EQ (problem->GetOptimumPoint (y, strs), IGlobalOptimizationProblem::PROBLEM_OK );
159+
160+ ASSERT_EQ (problem->GetOptimumValue (val), IGlobalOptimizationProblem::PROBLEM_OK );
161+
162+ EXPECT_DOUBLE_EQ (problem->CalculateFunctionals (y,strs, 0 ), val);
163+ }
164+
160165// // ------------------------------------------------------------------------------------------------
161166// TEST(Problem_gklsC, test_gklsC)
162167// {
0 commit comments