@@ -40,12 +40,16 @@ TEST_CASE("MIP-rowless-1", "[highs_test_mip_solver]") {
4040 Highs highs;
4141 if (!dev_run) highs.setOptionValue (" output_flag" , false );
4242 rowlessMIP1 (highs);
43+
44+ highs.resetGlobalScheduler (true );
4345}
4446
4547TEST_CASE (" MIP-rowless-2" , " [highs_test_mip_solver]" ) {
4648 Highs highs;
4749 if (!dev_run) highs.setOptionValue (" output_flag" , false );
4850 rowlessMIP2 (highs);
51+
52+ highs.resetGlobalScheduler (true );
4953}
5054
5155TEST_CASE (" MIP-solution-limit" , " [highs_test_mip_solver]" ) {
@@ -79,6 +83,8 @@ TEST_CASE("MIP-solution-limit", "[highs_test_mip_solver]") {
7983 REQUIRE (highs.getModelStatus () == HighsModelStatus::kSolutionLimit );
8084 highs.setOptionValue (" mip_max_improving_sols" , kHighsIInf );
8185 highs.clearSolver ();
86+
87+ highs.resetGlobalScheduler (true );
8288}
8389
8490TEST_CASE (" MIP-integrality" , " [highs_test_mip_solver]" ) {
@@ -173,6 +179,8 @@ TEST_CASE("MIP-integrality", "[highs_test_mip_solver]") {
173179 REQUIRE (info.mip_node_count == 1 );
174180 REQUIRE (fabs (info.mip_dual_bound + 6 ) < double_equal_tolerance);
175181 REQUIRE (std::fabs (info.mip_gap ) < 1e-12 );
182+
183+ highs.resetGlobalScheduler (true );
176184}
177185
178186TEST_CASE (" MIP-clear-integrality" , " [highs_test_mip_solver]" ) {
@@ -215,6 +223,8 @@ TEST_CASE("MIP-nmck", "[highs_test_mip_solver]") {
215223 REQUIRE (info.num_primal_infeasibilities == 0 );
216224 REQUIRE (info.max_primal_infeasibility == 0 );
217225 REQUIRE (info.sum_primal_infeasibilities == 0 );
226+
227+ highs.resetGlobalScheduler (true );
218228}
219229
220230TEST_CASE (" MIP-maximize" , " [highs_test_mip_solver]" ) {
@@ -295,6 +305,8 @@ TEST_CASE("MIP-maximize", "[highs_test_mip_solver]") {
295305 REQUIRE (std::abs (info.objective_function_value - info.mip_dual_bound ) <=
296306 options.mip_abs_gap );
297307 REQUIRE (std::abs (info.mip_gap ) <= options.mip_rel_gap );
308+
309+ highs.resetGlobalScheduler (true );
298310}
299311
300312TEST_CASE (" MIP-unbounded" , " [highs_test_mip_solver]" ) {
@@ -403,6 +415,8 @@ TEST_CASE("MIP-unbounded", "[highs_test_mip_solver]") {
403415
404416 model_status = highs.getModelStatus ();
405417 REQUIRE (model_status == HighsModelStatus::kInfeasible );
418+
419+ highs.resetGlobalScheduler (true );
406420}
407421
408422TEST_CASE (" MIP-od" , " [highs_test_mip_solver]" ) {
@@ -470,6 +484,8 @@ TEST_CASE("MIP-od", "[highs_test_mip_solver]") {
470484 double_equal_tolerance);
471485 REQUIRE (fabs (solution.col_value [0 ] - required_x0_value) <
472486 double_equal_tolerance);
487+
488+ highs.resetGlobalScheduler (true );
473489}
474490
475491TEST_CASE (" MIP-infeasible-start" , " [highs_test_mip_solver]" ) {
@@ -513,6 +529,8 @@ TEST_CASE("MIP-infeasible-start", "[highs_test_mip_solver]") {
513529 HighsStatus::kOk );
514530 highs.run ();
515531 REQUIRE (model_status == HighsModelStatus::kInfeasible );
532+
533+ highs.resetGlobalScheduler (true );
516534}
517535
518536TEST_CASE (" get-integrality" , " [highs_test_mip_solver]" ) {}
@@ -556,6 +574,8 @@ TEST_CASE("MIP-bounds", "[highs_test_mip_solver]") {
556574 obj1);
557575 REQUIRE (obj0 == obj1);
558576 std::remove (test_mps.c_str ());
577+
578+ highs.resetGlobalScheduler (true );
559579}
560580
561581TEST_CASE (" MIP-get-saved-solutions" , " [highs_test_mip_solver]" ) {
@@ -583,6 +603,8 @@ TEST_CASE("MIP-get-saved-solutions", "[highs_test_mip_solver]") {
583603 REQUIRE (saved_objective_and_solution[last_saved_solution].col_value [iCol] ==
584604 highs.getSolution ().col_value [iCol]);
585605 std::remove (solution_file.c_str ());
606+
607+ highs.resetGlobalScheduler (true );
586608}
587609
588610TEST_CASE (" MIP-objective-target" , " [highs_test_mip_solver]" ) {
@@ -597,6 +619,8 @@ TEST_CASE("MIP-objective-target", "[highs_test_mip_solver]") {
597619 highs.run ();
598620 REQUIRE (highs.getModelStatus () == HighsModelStatus::kObjectiveTarget );
599621 REQUIRE (highs.getInfo ().objective_function_value > egout_optimal_objective);
622+
623+ highs.resetGlobalScheduler (true );
600624}
601625
602626TEST_CASE (" MIP-max-offset-test" , " [highs_test_mip_solver]" ) {
@@ -625,6 +649,8 @@ TEST_CASE("MIP-max-offset-test", "[highs_test_mip_solver]") {
625649 highs.getInfo ().objective_function_value ;
626650 REQUIRE (objectiveOk (max_offset_optimal_objective, -offset_optimal_objective,
627651 dev_run));
652+
653+ highs.resetGlobalScheduler (true );
628654}
629655
630656TEST_CASE (" MIP-get-saved-solutions-presolve" , " [highs_test_mip_solver]" ) {
@@ -663,6 +689,8 @@ TEST_CASE("MIP-get-saved-solutions-presolve", "[highs_test_mip_solver]") {
663689 REQUIRE (saved_objective_and_solution[last_saved_solution].col_value [iCol] ==
664690 highs.getSolution ().col_value [iCol]);
665691 std::remove (solution_file.c_str ());
692+
693+ highs.resetGlobalScheduler (true );
666694}
667695
668696TEST_CASE (" IP-infeasible-unbounded" , " [highs_test_mip_solver]" ) {
@@ -720,6 +748,8 @@ TEST_CASE("IP-infeasible-unbounded", "[highs_test_mip_solver]") {
720748 }
721749 highs.setOptionValue (" presolve" , kHighsOnString );
722750 }
751+
752+ highs.resetGlobalScheduler (true );
723753}
724754
725755TEST_CASE (" IP-with-fract-bounds-no-presolve" , " [highs_test_mip_solver]" ) {
@@ -755,6 +785,8 @@ TEST_CASE("IP-with-fract-bounds-no-presolve", "[highs_test_mip_solver]") {
755785
756786 // Infeasible
757787 REQUIRE (highs.getModelStatus () == HighsModelStatus::kInfeasible );
788+
789+ highs.resetGlobalScheduler (true );
758790}
759791
760792bool objectiveOk (const double optimal_objective,
@@ -787,6 +819,8 @@ void solve(Highs& highs, std::string presolve,
787819 require_optimal_objective, dev_run));
788820 }
789821 REQUIRE (highs.resetOptions () == HighsStatus::kOk );
822+
823+ highs.resetGlobalScheduler (true );
790824}
791825
792826void distillationMIP (Highs& highs) {
0 commit comments