Description
this tests a number of $if options
Small Model of Type : GAMS
Category : GAMS Test library
Main file : ifstat1.gms
$title 'Tests of $if statement' (IFSTAT1,SEQ=140)
$log %system.version%
$log %system.verid%
* this tests a number of $if options
$set var_scoped scoped
$setLocal var_local local
$setGlobal var_global global
$show
$if NOT SET Var_Scoped $abort set scoped failed
$if NOT SET Var_Local $abort set local failed
$if NOT SET Var_Global $abort set global failed
$if NOT errorfree $abort bad errorfree test
$if errorlevel 1 $abort errolevel should be zero
set s
parameter p
variable v
equation e
file f
model m
procedure pr
function fun
acronym acr
$if NOT FunType exp $abort should be funtype
$if NOT SetType s $abort should be settype
$if NOT ParType p $abort should be partype
$if NOT VarType v $abort should be vartype
$if NOT EquType e $abort should be eqytype
$if NOT AcrType acr $abort should be acrtype
$if NOT FilType f $abort should be filtype
$if NOT ModType m $abort should be modtype
$if NOT ProType pr $abort should be protype
$if NOT FunType fun $abort should be funtype
$if NOT PreType diag $abort should be pretype
$if not declared s $abort should be declared
$if defined s $abort no data yet
$if defined f $abort no data yet
$if defined m $abort no data yet
* this will create an error starting in 147
$if dimension 0 s $abort dimension should not be known
$ifThen errorfree $abort we should have an error
$else $clearErrors
$endIf
set s / 1*3 /; p = 20; file f / temp /; model m / e /;
$if not defined f $abort we should have data
$if not defined m $abort we should have date
$if not defined s $abort s should be definded
$if not defined p $abort p should be definded
$if not dimension 1 s $abort dimension should be 1
$if dimension 0 V $abort dimension should not be known
$if dimension 0 m $abort dimension not defined
$if dimension 0 f $abort dimension not defined
$ifThen errorfree $abort we should have an error
$else $clearErrors
$endIf
* pretypes are implemented in a funny way, when a symbol is
* referenced we make a second entry and make the first one
* invisible
$if NOT declared sameas $abort should be pretype
$if NOT PreType sameas $abort should be pretype
$if NOT defined sameas $abort should have data
$if NOT SetType sameas $abort should be pretype
$if NOT dimension 2 sameas $abort should be pretype
p = sameas('1','1');
* symbol not reachable any more with current symbol table management
*$if NOT PreType sameas $abort should be pretype
$if NOT declared sameas $abort should be pretype
$if NOT SetType sameas $abort should be pretype
$if NOT dimension 2 sameas $abort should be pretype
$if NOT defined sameas $abort should have data
* the following requires at least version 139
$version 139
$if solver xxxxxxxxxx $abort there is no solver xxxxxxxxxx
$if not solver soplex $abort soplex should be there always