load7.gms : Tests execute_loaddc

Description

This is a basic test for the enhanced execute_load with domain checking
(execute_loaddc). Any domain violations will be reported and flagged as
execution errors. In contrast, execute_load ignores all domain violations and
loads only data that meets the domain restrictions.

Contributor: Lutz Westermann, July 2013


Small Model of Type : GAMS


Category : GAMS Test library


Main file : load7.gms

$title Tests execute_loaddc (LOAD7,SEQ=613)

$onText
This is a basic test for the enhanced execute_load with domain checking
(execute_loaddc). Any domain violations will be reported and flagged as
execution errors. In contrast, execute_load ignores all domain violations and
loads only data that meets the domain restrictions.

Contributor: Lutz Westermann, July 2013
$offText


* Prepare data
$onEcho > data.gms
set i    /i1*i3/
    iSub /i1*i2/;
parameter pi(i);
pi(i) = ord(i);
$offEcho

$call gams data.gms lo=%GAMS.lo% gdx=data
$if errorlevel 1 $abort Error creating data

* This should be OK: pi1 has data for i1
set i1;
parameter pi1(i1);
$gdxIn data.gdx
$load i1=i
$gdxIn
execute_loaddc 'data.gdx', pi1=pi;
display pi1;

* This should be OK: pi2 has data for more than i2, but we ignore that
set i2;
parameter pi2(i2);
$gdxIn data.gdx
$load i2=iSub
$gdxIn
execute_load 'data.gdx', pi2=pi;
display pi2;

* This should not be OK: pi3 has data for more than i3, and we use domain checking
set i3;
parameter pi3(i3);
$gdxIn data.gdx
$load i3=iSub
$gdxIn
execute_loaddc 'data.gdx', pi3=pi;
display pi3;
abort$(not execerror) 'We should see a domain violation here';
execerror=0;