$title 'Check that unload happens at GDX file closing time' (UNLOAD14,SEQ=847) $onText This test checks that 1) GAMS unloads the symbol at the time the GDX is closed, not when $unLoad is processed 2) GAMS unloads with $unLoad and no arguments only symbols known so far, even if the GDX file is closed after some more declarations Contributor: Michael Bussieck, January 2021 $offText Set p(*); $gdxOut p $unLoad p Set p(*) / i1, i2 /; Set q(*); execute_load 'p', q=p; abort$(card(q)<>2) 'expect q to hold i1 and i2', q; $gdxOut p2 $unLoad p $onMulti Set p(*) / i3 3, i4 4 /; execute_load 'p2', q=p; abort$(card(q)<>4) 'expect q to hold i1, i2, i3, and i4', q; $gdxOut p3 $unLoad Set pp(*) / more, stuff /; $onEcho > expected SyNr Type DomInf Symbol 1 Set Regular p(*) 2 Set Regular q(*) $offEcho execute.checkErrorLevel 'gdxdump p3.gdx domainInfo > actual'; execute.checkErrorLevel 'diff actual expected > %system.nullFile%';