$title 'Refactor suite test 3' (REFACT03,SEQ=664) $ontext This test is the third one of the refactor suite. This is a quantitative test of writing/reading a workfile with a large amount of symbols. 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 /1*100000/; file f /manySymbolsW.gms/; put f; loop(i, put 'set s' i.tl:0 '/' i.tl:0 '/;' / ; put 'parameter p' i.tl:0 '/' i.tl:0 '/;' / ; put 'variable v' i.tl:0 ';' / ; put 'equation e' i.tl:0 ';' / ; ); putclose; $offecho $onecho > manySymbolsR.gms set abc; $offecho $call gams putDriver.gms $if errorlevel 1 $abort Problem running putDriver $call gams manySymbolsW lo=2 s=manySymbolsW $if errorlevel 1 $abort Problem running manySymbolsW $call gams manySymbolsR lo=2 r=manySymbolsW $if errorlevel 1 $abort Problem running manySymbolsR $ifThen set before $ call grep elapsed manySymbolsW.log | tail -1 | cut -f5 -d":" > timeBefore3W.txt $ call grep elapsed manySymbolsR.log | tail -1 | cut -f5 -d":" > timeBefore3R.txt $else $ if not exist timeBefore3W.txt $abort Run with --before=True first to get reference workfiles $ call grep elapsed manySymbolsW.log | tail -1 | cut -f5 -d":" > timeAfter3W.txt $ call grep elapsed manySymbolsR.log | tail -1 | cut -f5 -d":" > timeAfter3R.txt Scalar beforeW / $ include timeBefore3W.txt /; Scalar beforeR / $ include timeBefore3R.txt /; Scalar afterW / $ include timeAfter3W.txt /; Scalar afterR / $ include timeAfter3R.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