Skip to content

Commit b570b0b

Browse files
committed
remaining
1 parent 43b1b5a commit b570b0b

File tree

10 files changed

+114
-0
lines changed

10 files changed

+114
-0
lines changed

check/TestModelProperties.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ TEST_CASE("simplest-ill-conditioning", "[highs_model_properties]") {
4343
ill_conditioning_bound) == HighsStatus::kOk);
4444
REQUIRE(highs.getIllConditioning(ill_conditioning, constraint, 1, 10) ==
4545
HighsStatus::kOk);
46+
47+
highs.resetGlobalScheduler(true);
4648
}
4749

4850
TEST_CASE("simple-ill-conditioning", "[highs_model_properties]") {
@@ -138,4 +140,6 @@ TEST_CASE("afiro-ill-conditioning", "[highs_model_properties]") {
138140
const bool constraint = true;
139141
highs.getIllConditioning(ill_conditioning, constraint);
140142
highs.getIllConditioning(ill_conditioning, !constraint);
143+
144+
highs.resetGlobalScheduler(true);
141145
}

check/TestPdlp.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ TEST_CASE("pdlp-distillation-lp", "[pdlp]") {
6262
pdlp_iteration_count = highs.getInfo().pdlp_iteration_count;
6363
REQUIRE(pdlp_iteration_count > 0);
6464
REQUIRE(pdlp_iteration_count == 79);
65+
66+
highs.resetGlobalScheduler(true);
6567
}
6668
#else
6769
// CUPDLP_GPU
@@ -126,6 +128,8 @@ TEST_CASE("pdlp-distillation-lp", "[pdlp]") {
126128
// pdlp_iteration_count = highs.getInfo().pdlp_iteration_count;
127129
// REQUIRE(pdlp_iteration_count > 0);
128130
// REQUIRE(pdlp_iteration_count == 79);
131+
132+
highs.resetGlobalScheduler(true);
129133
}
130134
#endif
131135

@@ -158,6 +162,8 @@ TEST_CASE("pdlp-3d-lp", "[pdlp]") {
158162
REQUIRE(run_status == HighsStatus::kOk);
159163
REQUIRE(highs.getModelStatus() == HighsModelStatus::kOptimal);
160164
}
165+
166+
highs.resetGlobalScheduler(true);
161167
}
162168

163169
TEST_CASE("pdlp-boxed-row-lp", "[pdlp]") {
@@ -191,6 +197,8 @@ TEST_CASE("pdlp-boxed-row-lp", "[pdlp]") {
191197
REQUIRE(run_status == HighsStatus::kOk);
192198
REQUIRE(highs.getModelStatus() == HighsModelStatus::kOptimal);
193199
}
200+
201+
highs.resetGlobalScheduler(true);
194202
}
195203

196204
TEST_CASE("pdlp-infeasible-lp", "[pdlp]") {
@@ -213,6 +221,8 @@ TEST_CASE("pdlp-infeasible-lp", "[pdlp]") {
213221
REQUIRE(highs.run() == HighsStatus::kOk);
214222
if (dev_run) highs.writeSolution("", 1);
215223
REQUIRE(highs.getModelStatus() == HighsModelStatus::kUnboundedOrInfeasible);
224+
225+
highs.resetGlobalScheduler(true);
216226
}
217227

218228
TEST_CASE("pdlp-unbounded-lp", "[pdlp]") {
@@ -240,4 +250,6 @@ TEST_CASE("pdlp-unbounded-lp", "[pdlp]") {
240250
} else {
241251
REQUIRE(highs.getModelStatus() == HighsModelStatus::kUnbounded);
242252
}
253+
254+
highs.resetGlobalScheduler(true);
243255
}

check/TestPresolve.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ TEST_CASE("postsolve-no-basis", "[highs_test_presolve]") {
8181
solution.col_dual.clear();
8282
solution.row_dual.clear();
8383
}
84+
85+
highs.resetGlobalScheduler(true);
8486
}
8587

8688
TEST_CASE("presolve-solve-postsolve-mip", "[highs_test_presolve]") {
@@ -170,6 +172,8 @@ TEST_CASE("empty-row", "[highs_test_presolve]") {
170172
const HighsBasis& basis = highs.getBasis();
171173
REQUIRE(HighsInt(solution.row_value.size()) == lp.num_row_);
172174
REQUIRE(HighsInt(basis.row_status.size()) == lp.num_row_);
175+
176+
highs.resetGlobalScheduler(true);
173177
}
174178

175179
void presolveSolvePostsolve(const std::string& model_file,
@@ -217,6 +221,8 @@ void presolveSolvePostsolve(const std::string& model_file,
217221
REQUIRE(model_status == HighsModelStatus::kOptimal);
218222
REQUIRE(highs0.getInfo().simplex_iteration_count <= 0);
219223
}
224+
225+
highs1.resetGlobalScheduler(true);
220226
}
221227

222228
HighsStatus zeroCostColSing() {
@@ -253,6 +259,8 @@ HighsStatus zeroCostColSing() {
253259

254260
status = highs.run();
255261
return status;
262+
263+
highs.resetGlobalScheduler(true);
256264
}
257265

258266
// handled by doubleton equality
@@ -310,6 +318,8 @@ HighsStatus colSingDoubletonEquality() {
310318

311319
status = highs.run();
312320
return status;
321+
322+
highs.resetGlobalScheduler(true);
313323
}
314324

315325
HighsStatus colSingDoubletonInequality() {
@@ -366,6 +376,8 @@ HighsStatus colSingDoubletonInequality() {
366376

367377
status = highs.run();
368378
return status;
379+
380+
highs.resetGlobalScheduler(true);
369381
}
370382

371383
// handled by doubleton equality
@@ -403,6 +415,8 @@ HighsStatus twoColSingDoubletonEquality() {
403415

404416
status = highs.run();
405417
return status;
418+
419+
highs.resetGlobalScheduler(true);
406420
}
407421

408422
// handled by special case.
@@ -441,6 +455,8 @@ HighsStatus twoColSingDoubletonInequality() {
441455
highs.run();
442456
status = highs.run();
443457
return status;
458+
459+
highs.resetGlobalScheduler(true);
444460
}
445461

446462
// No commas in test case name.
@@ -528,6 +544,8 @@ HighsStatus issue425() {
528544

529545
status = highs.run();
530546
return status;
547+
548+
highs.resetGlobalScheduler(true);
531549
}
532550

533551
TEST_CASE("presolve-issue-425", "[highs_test_presolve]") {
@@ -601,6 +619,8 @@ TEST_CASE("write-presolved-model", "[highs_test_presolve]") {
601619
// simplex_iteration_count is -1
602620
REQUIRE(highs.getInfo().simplex_iteration_count == -1);
603621
std::remove(presolved_model_file.c_str());
622+
623+
highs1.resetGlobalScheduler(true);
604624
}
605625

606626
TEST_CASE("presolve-slacks", "[highs_test_presolve]") {
@@ -639,6 +659,8 @@ TEST_CASE("presolve-slacks", "[highs_test_presolve]") {
639659
REQUIRE(h.presolve() == HighsStatus::kOk);
640660
REQUIRE(h.getPresolvedLp().num_col_ == 2);
641661
REQUIRE(h.getPresolvedLp().num_row_ == 2);
662+
663+
h.resetGlobalScheduler(true);
642664
}
643665

644666
TEST_CASE("presolve-issue-2095", "[highs_test_presolve]") {
@@ -660,6 +682,8 @@ TEST_CASE("presolve-only-at-root", "[highs_test_presolve]") {
660682
highs.setOptionValue("mip_root_presolve_only", true);
661683
highs.readModel(model_file);
662684
REQUIRE(highs.run() == HighsStatus::kOk);
685+
686+
highs.resetGlobalScheduler(true);
663687
}
664688

665689
TEST_CASE("lifting-for-probing", "[highs_test_presolve]") {

check/TestQpSolver.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ TEST_CASE("qp-unbounded", "[qpsolver]") {
1919
REQUIRE(highs.readModel(filename) == HighsStatus::kOk);
2020
REQUIRE(highs.run() == HighsStatus::kOk);
2121
REQUIRE(highs.getModelStatus() == HighsModelStatus::kUnbounded);
22+
23+
highs.resetGlobalScheduler(true);
2224
}
2325

2426
TEST_CASE("qp-infeasible", "[qpsolver]") {
@@ -30,6 +32,8 @@ TEST_CASE("qp-infeasible", "[qpsolver]") {
3032
REQUIRE(highs.readModel(filename) == HighsStatus::kOk);
3133
REQUIRE(highs.run() == HighsStatus::kOk);
3234
REQUIRE(highs.getModelStatus() == HighsModelStatus::kInfeasible);
35+
36+
highs.resetGlobalScheduler(true);
3337
}
3438

3539
TEST_CASE("qpsolver", "[qpsolver]") {
@@ -153,6 +157,8 @@ TEST_CASE("qpsolver", "[qpsolver]") {
153157
highs.setOptionValue("solve_relaxation", true);
154158
return_status = highs.run();
155159
REQUIRE(return_status == HighsStatus::kOk);
160+
161+
highs.resetGlobalScheduler(true);
156162
}
157163

158164
TEST_CASE("test-qod", "[qpsolver]") {
@@ -296,6 +302,8 @@ TEST_CASE("test-qod", "[qpsolver]") {
296302
double_equal_tolerance);
297303
REQUIRE(fabs(solution.col_value[0] - required_x0) < double_equal_tolerance);
298304
REQUIRE(fabs(solution.col_value[1] - required_x1) < double_equal_tolerance);
305+
306+
highs.resetGlobalScheduler(true);
299307
}
300308

301309
TEST_CASE("test-qjh", "[qpsolver]") {
@@ -404,6 +412,8 @@ TEST_CASE("test-qjh", "[qpsolver]") {
404412
double_equal_tolerance);
405413
return_status = highs.clearModel();
406414
}
415+
416+
highs.resetGlobalScheduler(true);
407417
}
408418

409419
TEST_CASE("test-min-negative-definite", "[qpsolver]") {
@@ -425,6 +435,8 @@ TEST_CASE("test-min-negative-definite", "[qpsolver]") {
425435
REQUIRE(highs.passModel(model) == HighsStatus::kOk);
426436
// Run should fail since objective is non-convex
427437
REQUIRE(highs.run() == HighsStatus::kError);
438+
439+
highs.resetGlobalScheduler(true);
428440
}
429441

430442
TEST_CASE("test-max-negative-definite", "[qpsolver]") {
@@ -475,6 +487,8 @@ TEST_CASE("test-max-negative-definite", "[qpsolver]") {
475487
REQUIRE(fabs(solution.col_value[2] - 2.5) < double_equal_tolerance);
476488
REQUIRE(fabs(solution.col_dual[0] + 1.0) < double_equal_tolerance);
477489
REQUIRE(fabs(solution.row_dual[0] + 0.5) < double_equal_tolerance);
490+
491+
highs.resetGlobalScheduler(true);
478492
}
479493

480494
TEST_CASE("test-semi-definite0", "[qpsolver]") {
@@ -514,6 +528,8 @@ TEST_CASE("test-semi-definite0", "[qpsolver]") {
514528
return_status = highs.run();
515529
REQUIRE(return_status == HighsStatus::kOk);
516530
if (dev_run) highs.writeSolution("", kSolutionStylePretty);
531+
532+
highs.resetGlobalScheduler(true);
517533
}
518534

519535
TEST_CASE("test-semi-definite1", "[qpsolver]") {
@@ -552,6 +568,8 @@ TEST_CASE("test-semi-definite1", "[qpsolver]") {
552568
REQUIRE(fabs(objective_function_value + 1.5) < double_equal_tolerance);
553569
REQUIRE(fabs(solution.col_value[0] - 1) < double_equal_tolerance);
554570
REQUIRE(fabs(solution.col_value[1]) < double_equal_tolerance);
571+
572+
highs.resetGlobalScheduler(true);
555573
}
556574

557575
TEST_CASE("test-semi-definite2", "[qpsolver]") {
@@ -590,6 +608,8 @@ TEST_CASE("test-semi-definite2", "[qpsolver]") {
590608
REQUIRE(fabs(objective_function_value + 1.5) < double_equal_tolerance);
591609
REQUIRE(fabs(solution.col_value[0] + 1) < double_equal_tolerance);
592610
REQUIRE(fabs(solution.col_value[1] - 2) < double_equal_tolerance);
611+
612+
highs.resetGlobalScheduler(true);
593613
}
594614

595615
void hessianProduct(const HighsHessian& hessian, const std::vector<double>& arg,
@@ -711,6 +731,8 @@ TEST_CASE("test-qp-modification", "[qpsolver]") {
711731
}
712732
highs.run();
713733
if (dev_run) highs.writeSolution("", kSolutionStylePretty);
734+
735+
highs.resetGlobalScheduler(true);
714736
}
715737

716738
TEST_CASE("test-qp-delete-col", "[qpsolver]") {
@@ -984,6 +1006,8 @@ TEST_CASE("test-qp-hot-start", "[qpsolver]") {
9841006
REQUIRE(info.qp_iteration_count == 1);
9851007
}
9861008
}
1009+
1010+
highs.resetGlobalScheduler(true);
9871011
}
9881012

9891013
TEST_CASE("test-qp-terminations", "[qpsolver]") {
@@ -1011,6 +1035,8 @@ TEST_CASE("test-qp-terminations", "[qpsolver]") {
10111035
REQUIRE(highs.run() == HighsStatus::kError);
10121036
REQUIRE(highs.getModelStatus() == HighsModelStatus::kSolveError);
10131037
highs.setOptionValue("qp_nullspace_limit", 4000);
1038+
1039+
highs.resetGlobalScheduler(true);
10141040
}
10151041

10161042
TEST_CASE("rowless-qp", "[qpsolver]") {
@@ -1050,4 +1076,6 @@ TEST_CASE("rowless-qp", "[qpsolver]") {
10501076
REQUIRE(dl_solution < 1e-6);
10511077
dl_solution = std::fabs(col_value[1] - 1.5);
10521078
REQUIRE(dl_solution < 1e-6);
1079+
1080+
highs.resetGlobalScheduler(true);
10531081
}

check/TestRanging.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ HighsStatus quietRun(Highs& highs) {
6363
HighsStatus call_status = highs.run();
6464
if (dev_run) highs.setOptionValue("output_flag", true);
6565
return call_status;
66+
67+
highs.resetGlobalScheduler(true);
6668
}
6769

6870
void colCostColumnHeader() {
@@ -551,4 +553,6 @@ void testRanging(Highs& highs) {
551553
}
552554
REQUIRE(num_relative_error < 10);
553555
REQUIRE(max_relative_error < relative_error_tolerance);
556+
557+
highs.resetGlobalScheduler(true);
554558
}

check/TestRays.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,8 @@ void testInfeasibleMpsLp(const std::string model,
305305
REQUIRE(!has_primal_ray);
306306

307307
// Now test with presolve on, and forcing ray calculation if possible
308+
309+
highs.resetGlobalScheduler(true);
308310
}
309311

310312
void testInfeasibleMpsMip(const std::string model) {
@@ -368,6 +370,8 @@ void testInfeasibleMpsMip(const std::string model) {
368370
REQUIRE(highs.getPrimalRay(has_primal_ray, primal_ray_value.data()) ==
369371
HighsStatus::kOk);
370372
REQUIRE(!has_primal_ray);
373+
374+
highs.resetGlobalScheduler(true);
371375
}
372376

373377
void testUnboundedMpsLp(const std::string model,
@@ -422,6 +426,8 @@ void testUnboundedMpsLp(const std::string model,
422426
HighsStatus::kOk);
423427
REQUIRE(has_primal_ray);
424428
REQUIRE(checkPrimalRayValue(highs, primal_ray_value));
429+
430+
highs.resetGlobalScheduler(true);
425431
}
426432

427433
TEST_CASE("Rays", "[highs_test_rays]") {
@@ -650,6 +656,8 @@ TEST_CASE("Rays", "[highs_test_rays]") {
650656
HighsStatus::kOk);
651657
REQUIRE(!has_primal_ray);
652658
}
659+
660+
highs.resetGlobalScheduler(true);
653661
}
654662

655663
TEST_CASE("Rays-gas11", "[highs_test_rays]") { testUnboundedMpsLp("gas11"); }
@@ -774,6 +782,8 @@ TEST_CASE("Rays-464a", "[highs_test_rays]") {
774782
HighsStatus::kOk);
775783
highs.clearSolver();
776784
}
785+
786+
highs.resetGlobalScheduler(true);
777787
}
778788

779789
TEST_CASE("Rays-464b", "[highs_test_rays]") {
@@ -869,6 +879,8 @@ TEST_CASE("Rays-464b", "[highs_test_rays]") {
869879
HighsStatus::kOk);
870880
highs.clearSolver();
871881
}
882+
883+
highs.resetGlobalScheduler(true);
872884
}
873885

874886
TEST_CASE("Rays-infeasible-qp", "[highs_test_rays]") {
@@ -917,4 +929,6 @@ TEST_CASE("Rays-infeasible-qp", "[highs_test_rays]") {
917929
REQUIRE(has_dual_unboundedness_direction);
918930
REQUIRE(checkDualUnboundednessDirection(highs,
919931
dual_unboundedness_direction_value));
932+
933+
highs.resetGlobalScheduler(true);
920934
}

0 commit comments

Comments
 (0)