@@ -480,7 +480,7 @@ TEST_CASE("read-lp-file-solution", "[highs_check_solution]") {
480480 lp.integrality_ = {HighsVarType::kContinuous , HighsVarType::kContinuous ,
481481 HighsVarType::kInteger };
482482 Highs h;
483- // h.setOptionValue("output_flag", dev_run);
483+ h.setOptionValue (" output_flag" , dev_run);
484484 REQUIRE (h.passModel (lp) == HighsStatus::kOk );
485485 h.run ();
486486 h.writeModel (model_file_name);
@@ -529,9 +529,9 @@ TEST_CASE("read-lp-file-basis", "[highs_check_solution]") {
529529 // Variables now ordered y; z; x
530530 h.writeModel (" " );
531531 h.readBasis (basis_file_name);
532- // Initial basis: y - basic; z - lower; x - lower, using basis for
533- // original ordering with new ordering. Not optimal - in fact basis
534- // matrix B = [0] is singular!
532+ // Old read basis yields initial basis : y - basic; z - lower; x -
533+ // lower, using basis for original ordering with new ordering. Not
534+ // optimal - in fact basis matrix B = [0] is singular!
535535 h.run ();
536536 REQUIRE (h.getInfo ().simplex_iteration_count == 0 );
537537
@@ -541,6 +541,36 @@ TEST_CASE("read-lp-file-basis", "[highs_check_solution]") {
541541 h.resetGlobalScheduler (true );
542542}
543543
544+ TEST_CASE (" read-lp-file-rgn" , " [highs_check_solution]" ) {
545+ const std::string test_name = Catch::getResultCapture ().getCurrentTestName ();
546+ const std::string filename =
547+ std::string (HIGHS_DIR) + " /check/instances/rgn.mps" ;
548+ const std::string model_file_name = test_name + " .lp" ;
549+ const std::string solution_file_name = test_name + " .sol" ;
550+ Highs h;
551+ h.setOptionValue (" output_flag" , dev_run);
552+ REQUIRE (h.readModel (filename) == HighsStatus::kOk );
553+ REQUIRE (h.run () == HighsStatus::kOk );
554+ REQUIRE (h.writeSolution (solution_file_name) == HighsStatus::kOk );
555+ REQUIRE (h.writeModel (model_file_name) == HighsStatus::kOk );
556+
557+ REQUIRE (h.readModel (model_file_name) == HighsStatus::kOk );
558+ REQUIRE (h.readSolution (solution_file_name) == HighsStatus::kOk );
559+ bool valid;
560+ bool integral;
561+ bool feasible;
562+ REQUIRE (h.assessPrimalSolution (valid, integral, feasible) ==
563+ HighsStatus::kOk );
564+ REQUIRE (valid);
565+ REQUIRE (integral);
566+ REQUIRE (feasible);
567+
568+ std::remove (model_file_name.c_str ());
569+ std::remove (solution_file_name.c_str ());
570+
571+ h.resetGlobalScheduler (true );
572+ }
573+
544574void runWriteReadCheckSolution (Highs& highs, const std::string& test_name,
545575 const std::string& model,
546576 const HighsModelStatus require_model_status,
0 commit comments