solveopt01.gms : Test solveopt option and command line parameter

Description

This test is based on the GAMS Model Library model solveopt. Here, we ensure
that setting solveopt from the command line behaves the same as setting it
through an option statement.

Contributor: Lutz Westermann, June 2023


Small Model of Type : GAMS


Category : GAMS Test library


Main file : solveopt01.gms

$title 'Test solveopt option and command line parameter' (solveopt01,SEQ=941)


$onText
This test is based on the GAMS Model Library model solveopt. Here, we ensure
that setting solveopt from the command line behaves the same as setting it
through an option statement.

Contributor: Lutz Westermann, June 2023
$offText


$onEchoV > test.gms
Set
   i    / a, b, c /
   j(i) /    b    /;

Variable obj, x1(i), x2(i), x3(i), x4(i);
Equation defobj, e1(i), e2(i), e3(i);

defobj..   obj   =e= sum(i, x1(i));
e1(i)..    x1(i) =g= ord(i) + x4(i)$0;
e2(j)..    x2(j) =e= 20;
e3(i)$0 .. x3(i) =e= ord(i)*10;

Model m / all /;

m.limCol = 0;
m.limRow = 0;

x1.up(i) = 10;
x2.up(i) = 20;
x3.up(i) = 30;
x4.up(i) = 40;

e1.scale(i) = 10;
e2.scale(i) = 20;
e3.scale(i) = 30;

$ifThen set optionSolveOpt
option solveopt = %optionSolveOpt%;
$endIf
solve m using lp min obj;
$offEcho

$call.checkErrorLevel gams test.gms lo=%GAMS.lo% --optionSolveOpt=merge gdx=opt
$call.checkErrorLevel gams test.gms lo=%GAMS.lo% SolveOpt=merge         gdx=clp
$call.checkErrorLevel gdxdiff opt.gdx clp.gdx > %system.NullFile%

$call.checkErrorLevel gams test.gms lo=%GAMS.lo% --optionSolveOpt=replace gdx=opt
$call.checkErrorLevel gams test.gms lo=%GAMS.lo% SolveOpt=replace         gdx=clp
$call.checkErrorLevel gdxdiff opt.gdx clp.gdx > %system.NullFile%

$call.checkErrorLevel gams test.gms lo=%GAMS.lo% --optionSolveOpt=clear gdx=opt
$call.checkErrorLevel gams test.gms lo=%GAMS.lo% SolveOpt=clear         gdx=clp
$call.checkErrorLevel gdxdiff opt.gdx clp.gdx > %system.NullFile%