@@ -45,30 +45,43 @@ TEST_CASE("test-hipo-deterministic", "[highs_hipo]") {
4545 // Test that hipo finds the exact same solution if run twice
4646
4747 std::string model = " 80bau3b.mps" ;
48-
49- Highs highs;
50- highs.setOptionValue (" output_flag" , dev_run);
51- highs.setOptionValue (kSolverString , kHipoString );
52- highs.setOptionValue (kParallelString , kHighsOnString );
53- highs.setOptionValue (kRunCrossoverString , kHighsOffString );
54-
5548 std::string filename = std::string (HIGHS_DIR) + " /check/instances/" + model;
56- highs.readModel (filename);
57-
58- HighsStatus status = highs.run ();
59- REQUIRE (status == HighsStatus::kOk );
60-
61- const HighsSolution solution_1 = highs.getSolution ();
62-
63- highs.run ();
64- const HighsSolution solution_2 = highs.getSolution ();
6549
50+ HighsInt iter_1, iter_2;
51+ HighsSolution solution_1, solution_2;
52+
53+ {
54+ Highs highs;
55+ highs.setOptionValue (" output_flag" , dev_run);
56+ highs.setOptionValue (kSolverString , kHipoString );
57+ highs.setOptionValue (kParallelString , kHighsOnString );
58+ highs.setOptionValue (kRunCrossoverString , kHighsOffString );
59+ highs.readModel (filename);
60+ HighsStatus status = highs.run ();
61+ REQUIRE (status == HighsStatus::kOk );
62+ solution_1 = highs.getSolution ();
63+ iter_1 = highs.getInfo ().ipm_iteration_count ;
64+ highs.resetGlobalScheduler (true );
65+ }
66+ {
67+ Highs highs;
68+ highs.setOptionValue (" output_flag" , dev_run);
69+ highs.setOptionValue (kSolverString , kHipoString );
70+ highs.setOptionValue (kParallelString , kHighsOnString );
71+ highs.setOptionValue (kRunCrossoverString , kHighsOffString );
72+ highs.readModel (filename);
73+ HighsStatus status = highs.run ();
74+ REQUIRE (status == HighsStatus::kOk );
75+ solution_2 = highs.getSolution ();
76+ iter_2 = highs.getInfo ().ipm_iteration_count ;
77+ highs.resetGlobalScheduler (true );
78+ }
79+
80+ REQUIRE (iter_1 == iter_2);
6681 REQUIRE (solution_1.value_valid == solution_2.value_valid );
6782 REQUIRE (solution_1.dual_valid == solution_2.dual_valid );
6883 REQUIRE (solution_1.col_value == solution_2.col_value );
6984 REQUIRE (solution_1.row_value == solution_2.row_value );
7085 REQUIRE (solution_1.col_dual == solution_2.col_dual );
7186 REQUIRE (solution_1.row_dual == solution_2.row_dual );
72-
73- highs.resetGlobalScheduler (true );
7487}
0 commit comments