dmpsym01.gms : Test dmpSym and dmpUserSym feature

Description

This test verifies that the symbol dump printed to the output file
using $debug/option dmpSym (and its variants $debug/option dmpUserSym)
works as expected.
If more internal symbols get added, this test will be adjusted in future.

Contributor: Lutz Westermann, November 2020


Small Model of Type : GAMS


Category : GAMS Test library


Main file : dmpsym01.gms

$Title Test dmpSym and dmpUserSym feature (dmpSym01,SEQ=839)

$ontext
This test verifies that the symbol dump printed to the output file
using $debug/option dmpSym (and its variants $debug/option dmpUserSym)
works as expected.
If more internal symbols get added, this test will be adjusted in future.

Contributor: Lutz Westermann, November 2020
$offtext


$onEcho > t.gms
Set
   i 'canning plants' / seattle,  san-diego /
   j 'markets'        / new-york, chicago, topeka /;

Parameter
   a(i) 'capacity of plant i in cases'
        / seattle    350
          san-diego  600 /

   b(j) 'demand at market j in cases'
        / new-york   325
          chicago    300
          topeka     275 /;

$debug dmpUserSym

Table d(i,j) 'distance in thousands of miles'
              new-york  chicago  topeka
   seattle         2.5      1.7     1.8
   san-diego       2.5      1.8     1.4;

$debug dmpSym


$onExternalInput
Scalar f 'freight in dollars per case per thousand miles' / 90 /;
$offExternalInput

option dmpUserSym;

Parameter c(i,j) 'transport cost in thousands of dollars per case';
c(i,j) = f*d(i,j)/1000;


Variable
   x(i,j) 'shipment quantities in cases'
   z      'total transportation costs in thousands of dollars';

Positive Variable x;

Equation
   cost      'define objective function'
   supply(i) 'observe supply limit at plant i'
   demand(j) 'satisfy demand at market j';

cost..      z =e= sum((i,j), c(i,j)*x(i,j));

supply(i).. sum(j, x(i,j)) =l= a(i);

demand(j).. sum(i, x(i,j)) =g= b(j);

Model transport / all /;

solve transport using lp minimizing z;
option dmpSym;
$offEcho

$onecho > tWant.txt
SYMBOL TABLE DUMP (USER SYMBOLS ONLY), NR ENTRIES = 4
ENTRY                               ID  TYPE  DIM  DIM-OK  LENGTH DEFINED ASSIGNED DATAKNOWN ACCESS SPECVAL EXTERN TABLE DOMAIN LAGLEAD
  135                                i  SET     1    TRUE       2    TRUE    FALSE      TRUE      0                        TRUE   FALSE
  136                                j  SET     1    TRUE       3    TRUE    FALSE      TRUE      0                        TRUE   FALSE
  137                                a  PARAM   1    TRUE       2    TRUE    FALSE      TRUE      0   FALSE        FALSE
  138                                b  PARAM   1    TRUE       3    TRUE    FALSE      TRUE      0   FALSE        FALSE
END OF SYMBOL TABLE DUMP
SYMBOL TABLE DUMP, NR ENTRIES = 139
ENTRY                               ID  TYPE  DIM  DIM-OK  LENGTH DEFINED ASSIGNED DATAKNOWN ACCESS SPECVAL EXTERN TABLE DOMAIN LAGLEAD
    1                           mapval  FUNCT   0
    2                             ceil  FUNCT   1
    3                            floor  FUNCT   2
    4                            round  FUNCT   3
    5                              mod  FUNCT   4
    6                            trunc  FUNCT   5
    7                             sign  FUNCT   6
    8                              min  FUNCT   7
    9                              max  FUNCT   8
   10                              sqr  FUNCT   9
   11                              exp  FUNCT  10
   12                              log  FUNCT  11
   13                            log10  FUNCT  12
   14                             sqrt  FUNCT  13
   15                              abs  FUNCT  14
   16                              cos  FUNCT  15
   17                              sin  FUNCT  16
   18                           arctan  FUNCT  17
   19                           errorf  FUNCT  18
   20                          uniform  FUNCT  19
   21                           normal  FUNCT  20
   22                            power  FUNCT  21
   23                            jdate  FUNCT  22
   24                            jtime  FUNCT  23
   25                           jstart  FUNCT  24
   26                             jnow  FUNCT  25
   27                        execerror  FUNCT  26
   28                            gyear  FUNCT  27
   29                           gmonth  FUNCT  28
   30                             gday  FUNCT  29
   31                             gdow  FUNCT  30
   32                            gleap  FUNCT  31
   33                            ghour  FUNCT  32
   34                          gminute  FUNCT  33
   35                          gsecond  FUNCT  34
   36                         execseed  FUNCT  35
   37                        timestart  FUNCT  36
   38                         timecomp  FUNCT  37
   39                         timeexec  FUNCT  38
   40                        timeclose  FUNCT  39
   41                             frac  FUNCT  40
   42                       ErrorLevel  FUNCT  41
   43                         HeapSize  FUNCT  42
   44                             Fact  FUNCT  43
   45                       UniformInt  FUNCT  44
   46                               PI  FUNCT  45
   47                             NcpF  FUNCT  46
   48                            NcpCM  FUNCT  47
   49                          Entropy  FUNCT  48
   50                          Sigmoid  FUNCT  49
   51                             log2  FUNCT  50
   52                         bool_not  FUNCT  51
   53                         bool_and  FUNCT  52
   54                          bool_or  FUNCT  53
   55                         bool_xor  FUNCT  54
   56                         bool_imp  FUNCT  55
   57                         bool_eqv  FUNCT  56
   58                           rel_eq  FUNCT  57
   59                           rel_gt  FUNCT  58
   60                           rel_ge  FUNCT  59
   61                           rel_lt  FUNCT  60
   62                           rel_le  FUNCT  61
   63                           rel_ne  FUNCT  62
   64                           IfThen  FUNCT  63
   65                           rPower  FUNCT  64
   66                            EDist  FUNCT  65
   67                              div  FUNCT  66
   68                             div0  FUNCT  67
   69                          sllog10  FUNCT  68
   70                          sqlog10  FUNCT  69
   71                            slexp  FUNCT  70
   72                            sqexp  FUNCT  71
   73                            slrec  FUNCT  72
   74                            sqrec  FUNCT  73
   75                          cvPower  FUNCT  74
   76                          vcPower  FUNCT  75
   77                         Centropy  FUNCT  76
   78                        Gmillisec  FUNCT  77
   79                     MaxExecError  FUNCT  78
   80                      TimeElapsed  FUNCT  79
   81                            Gamma  FUNCT  80
   82                         LogGamma  FUNCT  81
   83                             Beta  FUNCT  82
   84                          LogBeta  FUNCT  83
   85                         GammaReg  FUNCT  84
   86                          BetaReg  FUNCT  85
   87                             sinh  FUNCT  86
   88                             cosh  FUNCT  87
   89                             tanh  FUNCT  88
   90                       MathLastRC  FUNCT  89
   91                       MathLastEC  FUNCT  90
   92                         MathOVal  FUNCT  91
   93                        SignPower  FUNCT  92
   94                     HandleStatus  FUNCT  93
   95                         NcpVUsin  FUNCT  94
   96                         NcpVUpow  FUNCT  95
   97                         Binomial  FUNCT  96
   98                     HandleSubmit  FUNCT  97
   99                      GamsVersion  FUNCT  98
  100                     HandleDelete  FUNCT  99
  101                              tan  FUNCT 100
  102                           arccos  FUNCT 101
  103                           arcsin  FUNCT 102
  104                          arctan2  FUNCT 103
  105                            sleep  FUNCT 104
  106                         HeapFree  FUNCT 105
  107                    HandleCollect  FUNCT 106
  108                      GamsRelease  FUNCT 107
  109                             Poly  FUNCT 108
  110                    LicenseStatus  FUNCT 109
  111                     LicenseLevel  FUNCT 110
  112                        HeapLimit  FUNCT 111
  113                       RandLinear  FUNCT 112
  114                     RandTriangle  FUNCT 113
  115                       ForceError  FUNCT 114
  116                    ForceErrorCnt  FUNCT 115
  117                     RandBinomial  FUNCT 116
  118                        JobHandle  FUNCT 117
  119                        JobStatus  FUNCT 118
  120                          JobKill  FUNCT 119
  121                     JobTerminate  FUNCT 120
  122                         NumCores  FUNCT 121
  123                   EmbeddedHandle  FUNCT 122
  124                         unknown*  FUNCT 123
  125                           SameAs  PRED    2   FALSE       0    TRUE    FALSE     FALSE      0             
  126                             Diag  PRED    2   FALSE       0    TRUE    FALSE     FALSE      0             
  127                          Solvers  PRED    1   FALSE       0    TRUE    FALSE     FALSE      0             
  128                     LicenseCodes  PRED    1   FALSE       0    TRUE    FALSE     FALSE      0             
  129               SolverCapabilities  PRED    2   FALSE       0    TRUE    FALSE     FALSE      0             
  130                       SortedUels  PRED    2   FALSE       0    TRUE    FALSE     FALSE      0             
  131                   ComponentEDate  PRED    1   FALSE       0    TRUE    FALSE     FALSE      0             
  132                   ComponentMDate  PRED    1   FALSE       0    TRUE    FALSE     FALSE      0             
  133          ComponentLicenseOptions  PRED    2   FALSE       0    TRUE    FALSE     FALSE      0             
  134                             FILE  FILE    0   FALSE       0   FALSE    FALSE     FALSE      0             

ENTRY                               ID  TYPE  DIM  DIM-OK  LENGTH DEFINED ASSIGNED DATAKNOWN ACCESS SPECVAL EXTERN TABLE DOMAIN LAGLEAD
  135                                i  SET     1    TRUE       2    TRUE    FALSE      TRUE      0                        TRUE   FALSE
  136                                j  SET     1    TRUE       3    TRUE    FALSE      TRUE      0                        TRUE   FALSE
  137                                a  PARAM   1    TRUE       2    TRUE    FALSE      TRUE      0   FALSE        FALSE
  138                                b  PARAM   1    TRUE       3    TRUE    FALSE      TRUE      0   FALSE        FALSE
  139                                d  PARAM   2    TRUE       6    TRUE    FALSE      TRUE      0   FALSE         TRUE
END OF SYMBOL TABLE DUMP
SYMBOL TABLE DUMP (USER SYMBOLS ONLY), NR ENTRIES = 13
ENTRY                               ID  TYPE  DIM  DIM-OK  LENGTH DEFINED ASSIGNED DATAKNOWN ACCESS SPECVAL EXTERN TABLE DOMAIN LAGLEAD
  135                                i  SET     1    TRUE       2    TRUE    FALSE      TRUE      0                        TRUE   FALSE
  136                                j  SET     1    TRUE       3    TRUE    FALSE      TRUE      0                        TRUE   FALSE
  137                                a  PARAM   1    TRUE       2    TRUE    FALSE      TRUE      0   FALSE        FALSE
  138                                b  PARAM   1    TRUE       3    TRUE    FALSE      TRUE      0   FALSE        FALSE
  139                                d  PARAM   2    TRUE       6    TRUE    FALSE      TRUE      0   FALSE         TRUE
  140                                f  PARAM   0    TRUE       1    TRUE    FALSE      TRUE      0   FALSE  INPUT FALSE
  141                                c  PARAM   2    TRUE       0    TRUE     TRUE     FALSE      0   FALSE        FALSE
  142                                x  VAR     2    TRUE       0   FALSE     TRUE     FALSE      0             
  143                                z  VAR     0    TRUE       0   FALSE     TRUE     FALSE      0             
  144                             cost  EQU     0    TRUE       0   FALSE     TRUE     FALSE      0             
  145                           supply  EQU     1    TRUE       0   FALSE     TRUE     FALSE      0             
  146                           demand  EQU     1    TRUE       0   FALSE     TRUE     FALSE      0             
  147                        transport  MODEL   0    TRUE       3    TRUE     TRUE      TRUE      0             
END OF SYMBOL TABLE DUMP
SYMBOL TABLE DUMP, NR ENTRIES = 147
ENTRY                               ID  TYPE  DIM  DIM-OK  LENGTH DEFINED ASSIGNED DATAKNOWN ACCESS SPECVAL EXTERN TABLE DOMAIN LAGLEAD
    1                           mapval  FUNCT   0
    2                             ceil  FUNCT   1
    3                            floor  FUNCT   2
    4                            round  FUNCT   3
    5                              mod  FUNCT   4
    6                            trunc  FUNCT   5
    7                             sign  FUNCT   6
    8                              min  FUNCT   7
    9                              max  FUNCT   8
   10                              sqr  FUNCT   9
   11                              exp  FUNCT  10
   12                              log  FUNCT  11
   13                            log10  FUNCT  12
   14                             sqrt  FUNCT  13
   15                              abs  FUNCT  14
   16                              cos  FUNCT  15
   17                              sin  FUNCT  16
   18                           arctan  FUNCT  17
   19                           errorf  FUNCT  18
   20                          uniform  FUNCT  19
   21                           normal  FUNCT  20
   22                            power  FUNCT  21
   23                            jdate  FUNCT  22
   24                            jtime  FUNCT  23
   25                           jstart  FUNCT  24
   26                             jnow  FUNCT  25
   27                        execerror  FUNCT  26
   28                            gyear  FUNCT  27
   29                           gmonth  FUNCT  28
   30                             gday  FUNCT  29
   31                             gdow  FUNCT  30
   32                            gleap  FUNCT  31
   33                            ghour  FUNCT  32
   34                          gminute  FUNCT  33
   35                          gsecond  FUNCT  34
   36                         execseed  FUNCT  35
   37                        timestart  FUNCT  36
   38                         timecomp  FUNCT  37
   39                         timeexec  FUNCT  38
   40                        timeclose  FUNCT  39
   41                             frac  FUNCT  40
   42                       ErrorLevel  FUNCT  41
   43                         HeapSize  FUNCT  42
   44                             Fact  FUNCT  43
   45                       UniformInt  FUNCT  44
   46                               PI  FUNCT  45
   47                             NcpF  FUNCT  46
   48                            NcpCM  FUNCT  47
   49                          Entropy  FUNCT  48
   50                          Sigmoid  FUNCT  49
   51                             log2  FUNCT  50
   52                         bool_not  FUNCT  51
   53                         bool_and  FUNCT  52
   54                          bool_or  FUNCT  53
   55                         bool_xor  FUNCT  54
   56                         bool_imp  FUNCT  55
   57                         bool_eqv  FUNCT  56
   58                           rel_eq  FUNCT  57
   59                           rel_gt  FUNCT  58
   60                           rel_ge  FUNCT  59
   61                           rel_lt  FUNCT  60
   62                           rel_le  FUNCT  61
   63                           rel_ne  FUNCT  62
   64                           IfThen  FUNCT  63
   65                           rPower  FUNCT  64
   66                            EDist  FUNCT  65
   67                              div  FUNCT  66
   68                             div0  FUNCT  67
   69                          sllog10  FUNCT  68
   70                          sqlog10  FUNCT  69
   71                            slexp  FUNCT  70
   72                            sqexp  FUNCT  71
   73                            slrec  FUNCT  72
   74                            sqrec  FUNCT  73
   75                          cvPower  FUNCT  74
   76                          vcPower  FUNCT  75
   77                         Centropy  FUNCT  76
   78                        Gmillisec  FUNCT  77
   79                     MaxExecError  FUNCT  78
   80                      TimeElapsed  FUNCT  79
   81                            Gamma  FUNCT  80
   82                         LogGamma  FUNCT  81
   83                             Beta  FUNCT  82
   84                          LogBeta  FUNCT  83
   85                         GammaReg  FUNCT  84
   86                          BetaReg  FUNCT  85
   87                             sinh  FUNCT  86
   88                             cosh  FUNCT  87
   89                             tanh  FUNCT  88
   90                       MathLastRC  FUNCT  89
   91                       MathLastEC  FUNCT  90
   92                         MathOVal  FUNCT  91
   93                        SignPower  FUNCT  92
   94                     HandleStatus  FUNCT  93
   95                         NcpVUsin  FUNCT  94
   96                         NcpVUpow  FUNCT  95
   97                         Binomial  FUNCT  96
   98                     HandleSubmit  FUNCT  97
   99                      GamsVersion  FUNCT  98
  100                     HandleDelete  FUNCT  99
  101                              tan  FUNCT 100
  102                           arccos  FUNCT 101
  103                           arcsin  FUNCT 102
  104                          arctan2  FUNCT 103
  105                            sleep  FUNCT 104
  106                         HeapFree  FUNCT 105
  107                    HandleCollect  FUNCT 106
  108                      GamsRelease  FUNCT 107
  109                             Poly  FUNCT 108
  110                    LicenseStatus  FUNCT 109
  111                     LicenseLevel  FUNCT 110
  112                        HeapLimit  FUNCT 111
  113                       RandLinear  FUNCT 112
  114                     RandTriangle  FUNCT 113
  115                       ForceError  FUNCT 114
  116                    ForceErrorCnt  FUNCT 115
  117                     RandBinomial  FUNCT 116
  118                        JobHandle  FUNCT 117
  119                        JobStatus  FUNCT 118
  120                          JobKill  FUNCT 119
  121                     JobTerminate  FUNCT 120
  122                         NumCores  FUNCT 121
  123                   EmbeddedHandle  FUNCT 122
  124                         unknown*  FUNCT 123
  125                           SameAs  PRED    2   FALSE       0    TRUE    FALSE     FALSE      0             
  126                             Diag  PRED    2   FALSE       0    TRUE    FALSE     FALSE      0             
  127                          Solvers  PRED    1   FALSE       0    TRUE    FALSE     FALSE      0             
  128                     LicenseCodes  PRED    1   FALSE       0    TRUE    FALSE     FALSE      0             
  129               SolverCapabilities  PRED    2   FALSE       0    TRUE    FALSE     FALSE      0             
  130                       SortedUels  PRED    2   FALSE       0    TRUE    FALSE     FALSE      0             
  131                   ComponentEDate  PRED    1   FALSE       0    TRUE    FALSE     FALSE      0             
  132                   ComponentMDate  PRED    1   FALSE       0    TRUE    FALSE     FALSE      0             
  133          ComponentLicenseOptions  PRED    2   FALSE       0    TRUE    FALSE     FALSE      0             
  134                             FILE  FILE    0   FALSE       0   FALSE    FALSE     FALSE      0             

ENTRY                               ID  TYPE  DIM  DIM-OK  LENGTH DEFINED ASSIGNED DATAKNOWN ACCESS SPECVAL EXTERN TABLE DOMAIN LAGLEAD
  135                                i  SET     1    TRUE       2    TRUE    FALSE      TRUE      0                        TRUE   FALSE
  136                                j  SET     1    TRUE       3    TRUE    FALSE      TRUE      0                        TRUE   FALSE
  137                                a  PARAM   1    TRUE       2    TRUE    FALSE      TRUE      0   FALSE        FALSE
  138                                b  PARAM   1    TRUE       3    TRUE    FALSE      TRUE      0   FALSE        FALSE
  139                                d  PARAM   2    TRUE       6    TRUE    FALSE      TRUE      0   FALSE         TRUE
  140                                f  PARAM   0    TRUE       1    TRUE    FALSE      TRUE      0   FALSE  INPUT FALSE
  141                                c  PARAM   2    TRUE       6    TRUE     TRUE     FALSE      0   FALSE        FALSE
  142                                x  VAR     2    TRUE       6   FALSE     TRUE     FALSE      0             
  143                                z  VAR     0    TRUE       0   FALSE     TRUE     FALSE      0             
  144                             cost  EQU     0    TRUE       1   FALSE     TRUE     FALSE      0             
  145                           supply  EQU     1    TRUE       2   FALSE     TRUE     FALSE      0             
  146                           demand  EQU     1    TRUE       3   FALSE     TRUE     FALSE      0             
  147                        transport  MODEL   0    TRUE       3    TRUE     TRUE      TRUE      0             
END OF SYMBOL TABLE DUMP
$offecho

$call.checkErrorLevel gams t.gms lo=%gams.lo%
$call.checkErrorLevel awk "/SYMBOL TABLE DUMP/,/END OF SYMBOL TABLE DUMP/" t.lst > tHave.txt

$call.checkErrorLevel diff -bw tHave.txt tWant.txt