Skip to content

Commit fd09db6

Browse files
authored
Merge pull request #2 from katevrsv/main
Исправлены тесты для rastrigin
2 parents 94ff66e + e9161e6 commit fd09db6

1 file changed

Lines changed: 63 additions & 58 deletions

File tree

tests/src/test_problems.cpp

Lines changed: 63 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)