Osi icon indicating copy to clipboard operation
Osi copied to clipboard

Test failure when `Data/Sample` is not available

Open havardAasen opened this issue 1 year ago • 0 comments

This relates to stable/0.108 branch, tested with CoinUtils 2.11.10 and as the title says, without the directory Data.

We begin with a segfault in https://github.com/coin-or/Osi/blob/f705b23f2c6767b1cedc07edcb0c07e14c41fd1e/Osi/src/Osi/OsiColCut.hpp#L248

This is fixed with commit https://github.com/coin-or/Osi/commit/5c401b56a2b5c9675fb8c0b252b4b807be7eab80, I'm not sure if it is a underlying problem that's still unresolved by this patch, it's obvious that the tests will fail, though I haven't looked at why column information is not available.

Whit the patch applied, the unit tests completes with 12 unexpected error

Log from unit tests
Testing OsiRowCut with OsiTestSolverInterface
Coin6001E Unable to open mps input file ../../Data/Sample/exmip1.mps
*** osirowcutSolverInterface testing issue: read MPS failed: imP->readMps(fn.c_str(), "mps") == 0
Coin6001E Unable to open mps input file ../../Data/Sample/exmip1.mps
*** osirowcutSolverInterface testing issue: read MPS failed: imP->readMps(fn.c_str(), "mps") == 0
*** osirowcutSolverInterface testing issue: consistent(IntegerModel) failed: cut.consistent(*imP)
Coin6001E Unable to open mps input file ../../Data/Sample/exmip1.mps
*** osirowcutSolverInterface testing issue: read MPS failed: imP->readMps(fn.c_str(), "mps") == 0
Testing OsiColCut with OsiTestSolverInterface
Coin6001E Unable to open mps input file ../../Data/Sample/exmip1.mps
Coin6001E Unable to open mps input file ../../Data/Sample/exmip1.mps
*** osicolcutSolverInterface testing issue: consistent(IntegerModel) failed: cut.consistent(*imP)
*** osicolcutSolverInterface testing issue: consistent(IntegerModel) failed: cut.consistent(*imP)
*** osicolcutSolverInterface testing issue: consistent(IntegerModel) failed: cut.consistent(*imP)
*** osicolcutSolverInterface testing issue: infeasible(IntegerModel) failed: cut.infeasible(*imP)
*** osicolcutSolverInterface testing issue: consistent(IntegerModel) failed: cut.consistent(*imP)
Coin6001E Unable to open mps input file ../../Data/Sample/exmip1.mps
*** osicolcutSolverInterface testing issue: infeasible(IntegerModel) failed: cut.infeasible(*imP)
*** osicolcutSolverInterface testing issue: infeasible(IntegerModel) failed: cut.infeasible(*imP)
Testing OsiCuts
Testing OsiTestSolverInterface
vol: running common unit tests.
Testing empty solver interface ... 
Coin6001E Unable to open mps input file ../../Data/Sample/exmip1.mps
*** volSolverInterface testing issue: read MPS file failed: exmip1Si->readMps(fn.c_str(), "mps") == 0
***Skipped Testing of OsiSolverInterface on Netlib problems***
***use -testOsiSolverInterface to run them.***
ERROR     osirowcut read MPS
                    imP->readMps(fn.c_str(), "mps") == 0
                    OsiRowCutTest.cpp:255
ERROR     osirowcut read MPS
                    imP->readMps(fn.c_str(), "mps") == 0
                    OsiRowCutTest.cpp:297
ERROR     osirowcut consistent(IntegerModel)
                    cut.consistent(*imP)
                    OsiRowCutTest.cpp:308
ERROR     osirowcut read MPS
                    imP->readMps(fn.c_str(), "mps") == 0
                    OsiRowCutTest.cpp:321
ERROR     osicolcut consistent(IntegerModel)
                    cut.consistent(*imP)
                    OsiColCutTest.cpp:227
ERROR     osicolcut consistent(IntegerModel)
                    cut.consistent(*imP)
                    OsiColCutTest.cpp:232
ERROR     osicolcut consistent(IntegerModel)
                    cut.consistent(*imP)
                    OsiColCutTest.cpp:236
ERROR     osicolcut infeasible(IntegerModel)
                    cut.infeasible(*imP)
                    OsiColCutTest.cpp:237
ERROR     osicolcut consistent(IntegerModel)
                    cut.consistent(*imP)
                    OsiColCutTest.cpp:242
ERROR     osicolcut infeasible(IntegerModel)
                    cut.infeasible(*imP)
                    OsiColCutTest.cpp:258
ERROR     osicolcut infeasible(IntegerModel)
                    cut.infeasible(*imP)
                    OsiColCutTest.cpp:263
ERROR     vol       read MPS file
                    exmip1Si->readMps(fn.c_str(), "mps") == 0
                    OsiSolverInterfaceTest.cpp:3905
Severity NOTE      :    0  thereof expected:    0
Severity PASSED    :  345  thereof expected:    0
Severity WARNING   :    0  thereof expected:    0
Severity ERROR     :   12  thereof expected:    0
Tests completed with 12 unexpected errors

As can be seen from the log, 4 tests fails because it can't read ../../Data/Sample/exmip1.mps, 3 tests fails with the patch I mentioned earlier, column information is not available.

I haven't looked at why the last 5 tests fails, however, of these 5 failed tests, only 1 still fails when Data/Sample is available.


If I run the tests when Data/Sample/exmip1.mps is available I get 1 error.

ERROR     vol       cloning of application data
                    *(static_cast< int * >(si2->getApplicationData())) == ad
                    OsiSolverInterfaceTest.cpp:4041

This error was fixed by applying this commit https://github.com/coin-or/Osi/commit/192b006fe3a806129438dbcdcbe8f8b288d811b9

havardAasen avatar Dec 21 '23 09:12 havardAasen