@@ -838,3 +838,27 @@ TEST_CASE("presolve-egout-ac", "[highs_test_presolve]") {
838838
839839 h.resetGlobalScheduler (true );
840840}
841+
842+ TEST_CASE (" dual-bound-tightening" , " [highs_test_presolve]" ) {
843+ std::string model_file =
844+ std::string (HIGHS_DIR) + " /check/instances/gesa2.mps" ;
845+
846+ Highs highs;
847+ highs.setOptionValue (" output_flag" , dev_run);
848+ highs.readModel (model_file);
849+
850+ // complement variables to get code coverage
851+ HighsLp lp = highs.getLp ();
852+ std::transform (lp.a_matrix_ .value_ .begin (), lp.a_matrix_ .value_ .end (),
853+ lp.a_matrix_ .value_ .begin (), [](double v) { return -v; });
854+ std::transform (lp.col_cost_ .begin (), lp.col_cost_ .end (), lp.col_cost_ .begin (),
855+ [](double v) { return -v; });
856+ std::transform (lp.col_upper_ .begin (), lp.col_upper_ .end (),
857+ lp.col_upper_ .begin (), [](double v) { return -v; });
858+ std::transform (lp.col_lower_ .begin (), lp.col_lower_ .end (),
859+ lp.col_lower_ .begin (), [](double v) { return -v; });
860+ std::swap (lp.col_lower_ , lp.col_upper_ );
861+
862+ highs.passModel (lp);
863+ REQUIRE (highs.presolve () == HighsStatus::kOk );
864+ }
0 commit comments