$title 'Refactor suite test 5' (REFACT05,SEQ=666) $onText This test is the fifth one of the refactor suite. This is a quantitative test of writing/reading a workfile with many instruction. There is an expected sequence when using this test: 1. Run this test with command line option "--before=True" 2. Modify and rebuild cmex 3. Run this test without command line option Contributor: Clemens Westphal, August 2014 $offText $onEcho > putDriver.gms set i /i1*i100000/; file f /manyInstructionsW.gms/; put f; put 'scalar a;' /; put 'set i /i1*i10/;' /; loop(i, put 'loop(i,' /; put ' a = ('ord(i)'+6)*('card(i)'-'ord(i)' + normal(5,2));' /; put ')'; ); putclose; $offEcho $onEcho > manyInstructionsR.gms set abc; $offEcho $call gams putDriver.gms $if errorlevel 1 $abort Problem running putDriver $call gams manyInstructionsW lo=2 s=manyInstructionsW a=c $if errorlevel 1 $abort Problem running manyInstructionsW $call gams manyInstructionsR lo=2 r=manyInstructionsW $if errorlevel 1 $abort Problem running manyInstructionsR $ifThen set before $ call grep elapsed manyInstructionsW.log | tail -1 | cut -f5 -d":" > timeBefore5W.txt $ call grep elapsed manyInstructionsR.log | tail -1 | cut -f5 -d":" > timeBefore5R.txt $else $ if not exist timeBefore5W.txt $abort Run with --before=True first to get reference workfiles $ call grep elapsed manyInstructionsW.log | tail -1 | cut -f5 -d":" > timeAfter5W.txt $ call grep elapsed manyInstructionsR.log | tail -1 | cut -f5 -d":" > timeAfter5R.txt Scalar beforeW / $ include timeBefore5W.txt /; Scalar beforeR / $ include timeBefore5R.txt /; Scalar afterW / $ include timeAfter5W.txt /; Scalar afterR / $ include timeAfter5R.txt /; Scalar UnexpDiffW /[abs(beforeW-afterW)/max(beforeW,afterW)>0.05]/; Scalar UnexpDiffR /[abs(beforeR-afterR)/max(beforeR,afterR)>0.05]/; Display 'Timing results for writing:', beforeW, afterW; Display 'Timing results for reading:', beforeR, afterR; Display$UnexpDiffW '*** Unexpected time difference between before and after (writing)' Display$UnexpDiffR '*** Unexpected time difference between before and after (reading)' abort$[UnexpDiffW or UnexpDiffR] '*** Unexpected time difference between before and after:'; $endIf