dco01.gms : Test default state and switching state for dollar control options

Description

This uses the `$if [NOT] onState ...` compilation statement to check the defaul state
of certain dollar control options as well as the correct switching of these states.

Contributor: Lutz Westermann, September 2021


Small Model of Type : GAMS


Category : GAMS Test library


Main file : dco01.gms

$title Test default state and switching state for dollar control options (DCO01,SEQ=878)

$ontext
This uses the `$if [NOT] onState ...` compilation statement to check the defaul state
of certain dollar control options as well as the correct switching of these states.

Contributor: Lutz Westermann, September 2021
$offtext



* Check the expected default
$if     onState CheckErrorLevel $abort expected OFF state as default for CheckErrorLevel
$if     onState Delim           $abort expected OFF state as default for Delim
$if NOT onState Digit           $abort expected ON  state as default for Digit
$if     onState Dollar          $abort expected OFF state as default for Dollar
$if     onState DotL            $abort expected OFF state as default for DotL
$if     onState DotScale        $abort expected OFF state as default for DotScale
$if     onState double          $abort expected OFF state as default for double (meaning $single is active)
$if     onState Embedded        $abort expected OFF state as default for Embedded
$if NOT onState Empty           $abort expected ON  state as default for Empty
$if     onState End             $abort expected OFF state as default for End
$if     onState EolCom          $abort expected OFF state as default for EolCom
$if     onState Eps             $abort expected OFF state as default for Eps
$if     onState EpsToZero       $abort expected OFF state as default for EpsToZero
$if     onState ExternalInput   $abort expected OFF state as default for ExternalInput
$if     onState ExternalOutput  $abort expected OFF state as default for ExternalOutput
$if     onState Expand          $abort expected OFF state as default for Expand
$if NOT onState Filtered        $abort expected ON   state as default for Filtered
$if     onState Global          $abort expected OFF state as default for Global
$if NOT onState IDCProtect      $abort expected ON   state as default for IDCProtect
$if NOT onState Include         $abort expected ON  state as default for Include
$if     onState Inline          $abort expected OFF state as default for Inline
$if NOT onState Listing         $abort expected ON  state as default for Listing
$if NOT onState Local           $abort expected ON  state as default for Local
$if NOT onState Log             $abort expected ON  state as default for Log
$if NOT onState Macro           $abort expected ON  state as default for Macro
$if     onState Margin          $abort expected OFF state as default for Margin
$if     onState Multi           $abort expected OFF state as default for Multi
$if     onState MultiR          $abort expected OFF state as default for MultiR
$if     onState NestCom         $abort expected OFF state as default for NestCom
$if NOT onState Order           $abort expected ON  state as default for Order
$if     onState Recurse         $abort expected OFF state as default for Recurse
$if NOT onState StrictSingleton $abort expected ON  state as default for StrictSingleton
$if     onState SuffixDLVars    $abort expected OFF state as default for SuffixDLVars
$if     onState SymList         $abort expected OFF state as default for SymList
$if     onState SymXRef         $abort expected OFF state as default for SymXRef
$if     onState Troll           $abort expected OFF state as default for Troll
$if     onState UelList         $abort expected OFF state as default for UelList
$if     onState UelXRef         $abort expected OFF state as default for UelXRef
$if     onState Uni             $abort expected OFF state as default for Uni
$if     onState UNDF            $abort expected OFF state as default for UNDF
$if     onState Upper           $abort expected OFF state as default for Upper
$if     onState Warning         $abort expected OFF state as default for Warning

* Activate all isolated options and check the state
$onCheckErrorLevel
$onDelim
$onDigit
$onDollar
$double
$onEmbedded
$onEmpty
$onEnd
$onEolCom
$onEps
$onEpsToZero
$onExpand
$onFiltered
$onGlobal
$onIDCProtect
$onInclude
$onInline
$onListing
$onLocal
$onLog
$onMacro
$onMargin
$onNestCom
$onOrder
$onRecurse
$onStrictSingleton
$onSuffixDLVars
$onSymList
$onSymXRef
$onTroll
$onUelList
$onUelXRef
$onUni
$onUNDF
$onUpper
$onWarning

$if NOT onState CheckErrorLevel $abort expected ON state for CheckErrorLevel
$if NOT onState Delim           $abort expected ON state for Delim
$if NOT onState Digit           $abort expected ON state for Digit
$if NOT onState Dollar          $abort expected ON state for Dollar
$if NOT onState double          $abort expected ON state for double
$if NOT onState Embedded        $abort expected ON state for Embedded
$if NOT onState Empty           $abort expected ON state for Empty
$if NOT onState End             $abort expected ON state for End
$if NOT onState EolCom          $abort expected ON state for EolCom
$if NOT onState Eps             $abort expected ON state for Eps
$if NOT onState EpsToZero       $abort expected ON state for EpsToZero
$if NOT onState Expand          $abort expected ON state for Expand
$if NOT onState Filtered        $abort expected ON state for Filtered
$if NOT onState Global          $abort expected ON state for Global
$if NOT onState IDCProtect      $abort expected ON state for IDCProtect
$if NOT onState Include         $abort expected ON state for Include
$if NOT onState Inline          $abort expected ON state for Inline
$if NOT onState Listing         $abort expected ON state for Listing
$if NOT onState Local           $abort expected ON state for Local
$if NOT onState Log             $abort expected ON state for Log
$if NOT onState Macro           $abort expected ON state for Macro
$if NOT onState Margin          $abort expected ON state for Margin
$if NOT onState NestCom         $abort expected ON state for NestCom
$if NOT onState Order           $abort expected ON state for Order
$if NOT onState Recurse         $abort expected ON state for Recurse
$if NOT onState StrictSingleton $abort expected ON state for StrictSingleton
$if NOT onState SuffixDLVars    $abort expected ON state for SuffixDLVars
$if NOT onState SymList         $abort expected ON state for SymList
$if NOT onState SymXRef         $abort expected ON state for SymXRef
$if NOT onState Troll           $abort expected ON state for Troll
$if NOT onState UelList         $abort expected ON state for UelList
$if NOT onState UelXRef         $abort expected ON state for UelXRef
$if NOT onState Uni             $abort expected ON state for Uni
$if NOT onState UNDF            $abort expected ON state for UNDF
$if NOT onState Upper           $abort expected ON state for Upper
$if NOT onState Warning         $abort expected ON state for Warning

* Deactivate all isolated options and check the state
$offCheckErrorLevel
$offDelim
$offDigit
$offDollar
$single
$offEmbedded
$offEmpty
$offEnd
$offEolCom
$offEps
$offEpsToZero
$offExpand
$offFiltered
$offGlobal
$offIDCProtect
$offInclude
$offInline
$offListing
$offLocal
$offLog
$offMacro
$offMargin
$offNestCom
$offOrder
$offRecurse
$offStrictSingleton
$offSuffixDLVars
$offSymList
$offSymXRef
$offTroll
$offUelList
$offUelXRef
$offUni
$offUNDF
$offUpper
$offWarning

$if onState CheckErrorLevel $abort expected OFF state for CheckErrorLevel
$if onState Delim           $abort expected OFF state for Delim
$if onState Digit           $abort expected OFF state for Digit
$if onState Dollar          $abort expected OFF state for Dollar
$if onState double          $abort expected OFF state for double
$if onState Embedded        $abort expected OFF state for Embedded
$if onState Empty           $abort expected OFF state for Empty
$if onState End             $abort expected OFF state for End
$if onState EolCom          $abort expected OFF state for EolCom
$if onState Eps             $abort expected OFF state for Eps
$if onState EpsToZero       $abort expected OFF state for EpsToZero
$if onState Expand          $abort expected OFF state for Expand
$if onState Filtered        $abort expected OFF state for Filtered
$if onState Global          $abort expected OFF state for Global
$if onState IDCProtect      $abort expected OFF state for IDCProtect
$if onState Include         $abort expected OFF state for Include
$if onState Inline          $abort expected OFF state for Inline
$if onState Listing         $abort expected OFF state for Listing
$if onState Local           $abort expected OFF state for Local
$if onState Log             $abort expected OFF state for Log
$if onState Macro           $abort expected OFF state for Macro
$if onState Margin          $abort expected OFF state for Margin
$if onState NestCom         $abort expected OFF state for NestCom
$if onState Order           $abort expected OFF state for Order
$if onState Recurse         $abort expected OFF state for Recurse
$if onState StrictSingleton $abort expected OFF state for StrictSingleton
$if onState SuffixDLVars    $abort expected OFF state for SuffixDLVars
$if onState SymList         $abort expected OFF state for SymList
$if onState SymXRef         $abort expected OFF state for SymXRef
$if onState Troll           $abort expected OFF state for Troll
$if onState UelList         $abort expected OFF state for UelList
$if onState UelXRef         $abort expected OFF state for UelXRef
$if onState Uni             $abort expected OFF state for Uni
$if onState UNDF            $abort expected OFF state for UNDF
$if onState Upper           $abort expected OFF state for Upper
$if onState Warning         $abort expected OFF state for Warning

* Check state for DCOs that get set implicitly
$onDotL
$if NOT onState DotL            $abort expected ON  state for DotL
$if     onState DotScale        $abort expected OFF state for DotScale
$onDotScale
$if     onState DotL            $abort expected OFF state for DotL
$if NOT onState DotScale        $abort expected ON  state for DotScale
$offDotL
$offDotScale
$if     onState DotL            $abort expected OFF state for DotL
$if     onState DotScale        $abort expected OFF state for DotScale

$onMulti
$if NOT onState Multi           $abort expected ON  state for Multi
$if     onState MultiR          $abort expected OFF state for MultiR
$onMultiR
$if     onState Multi           $abort expected OFF state for Multi
$if NOT onState MultiR          $abort expected ON  state for MultiR
$offMulti
$if     onState Multi           $abort expected OFF state for Multi
$if     onState MultiR          $abort expected OFF state for MultiR

* The following need to come in pairs and cannot be nested
$if     onState ExternalInput   $abort expected OFF state for ExternalInput
$onExternalInput
$if NOT onState ExternalInput   $abort expected ON  state for ExternalInput
$offExternalInput
$if     onState ExternalInput   $abort expected OFF state for ExternalInput

$if     onState ExternalOutput  $abort expected OFF state for ExternalOutput
$onExternalOutput
$if NOT onState ExternalOutput  $abort expected ON  state for ExternalOutput
$offExternalOutput
$if     onState ExternalOutput  $abort expected OFF state for ExternalOutput