$title 'GDX - compressed and MT operation' (GDXCOMP2,SEQ=559) $onText This model checks that the GDX file produced by GAMSCMEX with "gdx=" is what we expect for different settings of the environment variables GDXCOMPRESS and GDXTHREADS. Contributor: Steve Dirkse, May 2012 $offText $call gamslib -q 1 $onEcho > subtest.gms $onDollar $setDDList GDXDEF GDXTMP GDXCOMPRESS_VAL GDXTHREADS_VAL $if not set GDXDEF $set GDXDEF def.gdx $if not set GDXTMP $set GDXTMP tmp.gdx $if not set GDXCOMPRESS_VAL $abort 'expected GDXCOMPRESS_VAL to be set' $if not set GDXTHREADS_VAL $abort 'expected GDXTHREADS_VAL to be set' $setEnv GDXCOMPRESS %GDXCOMPRESS_VAL% $setEnv GDXTHREADS %GDXTHREADS_VAL% $call =gams trnsport lp=soplex gdx=%GDXTMP% lo=0 $call wc -c %GDXDEF% | sed s/%GDXDEF%// > "%gams.scrdir%def.%gams.scrext%" $call wc -c %GDXTMP% | sed s/%GDXTMP%// > "%gams.scrdir%tmp.%gams.scrext%" scalar def 'size of default GDX file' / $include "%gams.scrdir%def.%gams.scrext%" / display 'GDXCOMPRESS_VAL = %GDXCOMPRESS_VAL%'; display 'GDXTHREADS_VAL = %GDXTHREADS_VAL%'; $ifThen %GDXCOMPRESS_VAL% == 0 scalar tmp 'size of uncompressed GDX file' / $include "%gams.scrdir%tmp.%gams.scrext%" / abort$(def>tmp) "wrong file sizes: default > uncompressed" $else scalar tmp 'size of compressed GDX file' / $include "%gams.scrdir%tmp.%gams.scrext%" / abort$(def %system.nullfile%'; rc = errorlevel; abort$[rc <> 0] 'GDXDIFF says %GDXDEF% and %GDXTMP% are different', rc; $offEcho * first generate with defaults $call =gams trnsport lp=soplex gdx=def.gdx lo=0 $if errorlevel 1 $abort 'could not run trnsport' scalar rc; file fp; set nthreads / '-8' * '-1', 0, 1 * 8 /; set compr / 0, 1/; loop {(compr, nthreads), put_utility fp 'shell' / 'gams subtest lo=0 --GDXDEF=def.gdx --GDXCOMPRESS_VAL=',compr.val:0:0,' --GDXTHREADS_VAL=',nthreads.val:0:0; rc = errorlevel; abort$[rc <> 0] 'subtest failed', rc, compr, nthreads; };