| 853 | } |
| 854 | |
| 855 | void solve(Highs& highs, std::string presolve, |
| 856 | const HighsModelStatus require_model_status, |
| 857 | const double require_optimal_objective, |
| 858 | const double require_iteration_count) { |
| 859 | if (!dev_run) highs.setOptionValue("output_flag", false); |
| 860 | const HighsInfo& info = highs.getInfo(); |
| 861 | REQUIRE(highs.setOptionValue("presolve", presolve) == HighsStatus::kOk); |
| 862 | |
| 863 | REQUIRE(highs.setBasis() == HighsStatus::kOk); |
| 864 | |
| 865 | REQUIRE(highs.run() == HighsStatus::kOk); |
| 866 | |
| 867 | REQUIRE(highs.getModelStatus() == require_model_status); |
| 868 | |
| 869 | if (require_model_status == HighsModelStatus::kOptimal) { |
| 870 | REQUIRE(objectiveOk(info.objective_function_value, |
| 871 | require_optimal_objective, dev_run)); |
| 872 | } |
| 873 | REQUIRE(highs.resetOptions() == HighsStatus::kOk); |
| 874 | |
| 875 | highs.resetGlobalScheduler(true); |
| 876 | } |
| 877 | |
| 878 | void distillationMIP(Highs& highs) { |
| 879 | SpecialLps special_lps; |
no test coverage detected