Skip to content

Commit

Permalink
Instead of macros, use fixtures for XPRESS tests
Browse files Browse the repository at this point in the history
  • Loading branch information
flomnes committed Nov 23, 2023
1 parent f94ab44 commit a50778b
Showing 1 changed file with 16 additions and 12 deletions.
28 changes: 16 additions & 12 deletions ortools/linear_solver/unittests/xpress_interface.cc
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,20 @@ namespace operations_research {

};

// See https://github.com/google/googletest/blob/main/docs/primer.md#test-fixtures-using-the-same-data-configuration-for-multiple-tests-same-data-multiple-tests
class XpressFixtureMIP : public testing::Test {
protected:
XpressFixtureMIP() : solver("XPRESS_MIP", MPSolver::XPRESS_MIXED_INTEGER_PROGRAMMING), getter(&solver) {}
~XpressFixtureMIP() override = default;
MPSolver solver;
XPRSGetter getter;
};

// Deprecated
#define UNITTEST_INIT_MIP() \
MPSolver solver("XPRESS_MIP", MPSolver::XPRESS_MIXED_INTEGER_PROGRAMMING);\
XPRSGetter getter(&solver)
// Deprecated
#define UNITTEST_INIT_LP() \
MPSolver solver("XPRESS_LP", MPSolver::XPRESS_LINEAR_PROGRAMMING);\
XPRSGetter getter(&solver)
Expand Down Expand Up @@ -234,8 +245,7 @@ namespace operations_research {
return static_cast<MyMPCallback*>(mpCallback);
}

TEST(XpressInterface, isMIP) {
UNITTEST_INIT_MIP();
TEST_F(XpressFixtureMIP, isMIP) {
EXPECT_EQ(solver.IsMIP(), true);
}

Expand All @@ -244,8 +254,7 @@ namespace operations_research {
EXPECT_EQ(solver.IsMIP(), false);
}

TEST(XpressInterface, NumVariables) {
UNITTEST_INIT_MIP();
TEST_F(XpressFixtureMIP, NumVariables) {
MPVariable* x1 = solver.MakeNumVar(-1., 5.1, "x1");
MPVariable* x2 = solver.MakeNumVar(3.14, 5.1, "x2");
std::vector<MPVariable*> xs;
Expand All @@ -254,19 +263,15 @@ namespace operations_research {
EXPECT_EQ(getter.getNumVariables(), 502);
}



TEST(XpressInterface, NumConstraints) {
UNITTEST_INIT_MIP();
TEST_F(XpressFixtureMIP, NumConstraints) {
solver.MakeRowConstraint(12., 100.0);
solver.MakeRowConstraint(13., 13.1);
solver.MakeRowConstraint(12.1, 1000.0);
solver.Solve();
EXPECT_EQ(getter.getNumConstraints(), 3);
}

TEST(XpressInterface, Reset) {
UNITTEST_INIT_MIP();
TEST_F(XpressFixtureMIP, Reset) {
solver.MakeBoolVar("x1");
solver.MakeBoolVar("x2");
solver.MakeRowConstraint(12., 100.0);
Expand All @@ -278,8 +283,7 @@ namespace operations_research {
EXPECT_EQ(getter.getNumVariables(), 0);
}

TEST(XpressInterface, MakeIntVar) {
UNITTEST_INIT_MIP();
TEST_F(XpressFixtureMIP, MakeIntVar) {
int lb = 0, ub = 10;
MPVariable* x = solver.MakeIntVar(lb, ub, "x");
solver.Solve();
Expand Down

0 comments on commit a50778b

Please sign in to comment.