| 7 | const bool dev_run = false; |
| 8 | |
| 9 | void ekk_solve(Highs& highs, std::string presolve, |
| 10 | const HighsModelStatus require_model_status, |
| 11 | const double require_optimal_objective = 0) { |
| 12 | SpecialLps special_lps; |
| 13 | if (!dev_run) highs.setOptionValue("output_flag", false); |
| 14 | const HighsInfo& info = highs.getInfo(); |
| 15 | |
| 16 | REQUIRE(highs.setOptionValue("simplex_strategy", kSimplexStrategyDual) == |
| 17 | HighsStatus::kOk); |
| 18 | |
| 19 | REQUIRE(highs.setOptionValue("presolve", presolve) == HighsStatus::kOk); |
| 20 | |
| 21 | REQUIRE(highs.setBasis() == HighsStatus::kOk); |
| 22 | |
| 23 | REQUIRE(highs.run() == HighsStatus::kOk); |
| 24 | |
| 25 | REQUIRE(highs.getModelStatus() == require_model_status); |
| 26 | |
| 27 | if (require_model_status == HighsModelStatus::kOptimal) { |
| 28 | REQUIRE(special_lps.objectiveOk(info.objective_function_value, |
| 29 | require_optimal_objective, dev_run)); |
| 30 | } |
| 31 | |
| 32 | REQUIRE(highs.resetOptions() == HighsStatus::kOk); |
| 33 | highs.setOptionValue("output_flag", dev_run); |
| 34 | |
| 35 | highs.resetGlobalScheduler(true); |
| 36 | } |
| 37 | |
| 38 | void ekk_distillation(Highs& highs) { |
| 39 | SpecialLps special_lps; |
no test coverage detected