nlpec02.gms : NLPEC test suite - loop over DNLP solvers

Description

This model runs the NLPEC solver on the mpec01 model from testlib
for each DNLP solver.  This tests that our solvers can run correctly
as subsolvers of NLPEC - sometimes things happen to break this!

Contributor: Steven Dirkse

  requires CMEX Rev 141 - system.solverNames


Small Model of Type : MPEC


Category : GAMS Test library


Main file : nlpec02.gms

$title 'NLPEC test suite - loop over DNLP solvers' (NLPEC02,SEQ=344)

$onText
This model runs the NLPEC solver on the mpec01 model from testlib
for each DNLP solver.  This tests that our solvers can run correctly
as subsolvers of NLPEC - sometimes things happen to break this!

Contributor: Steven Dirkse
$offText

* requires CMEX Rev 141 - system.solverNames
$version 141

set solverNames / system.solverNames /;
SET solverPlatformMap(solverNames,*) / system.SolverPlatformMap /;
SET avail(solverNames)  'Solvers available for this platform';
set lame(solverNames) /
 ALPHAECP
 ANTIGONE
 BARON
 DE
 CONVERT
 EXAMINER
 EXAMINER2
 GAMSCHK
 GLOMIQO
* would need Gurobi option nonconvex=2 to succeed
 GUROBI
 KESTREL
 LINDOGLOBAL
 LINDO
 GUSS
 XPRESS
/;
set dummy / dnlp /;

avail(solverNames) = sum(solverPlatformMap(solverNames,'%system.platform%'),1);

SET tested(solverNames);
tested(solverNames) = SolverCapabilities(solverNames,'dnlp')
     and avail(solverNames) and not lame(SolverNames);

file opt / 'nlpec.opt' / ;
scalar rc;
scalar count  / 0 /;
scalar fails  / 0 /;

execute 'echo Allruns.txt started on %system.date1% >  allruns.txt';
execute 'echo fail.txt started on %system.date1% > fail.txt';

loop {tested(solverNames),
  putclose opt 'subSolver ', solverNames.tl /;
  execute '=gams mpec01.gms lo=2 optfile=1';
  rc = errorlevel;
  count = count + 1;
  if {rc,
    execute 'cat nlpec.opt >> fail.txt';
    fails := fails + 1;
  };
  execute 'cat nlpec.opt >> allruns.txt';
};

display "Count of attempted runs: ", count;
display "Count of    failed runs: ", fails;
abort$fails "Count of failed runs: ", fails;