설명
변수에서 특수 값을 덤프할 때 결과를 확인하기 위한 간단한 검사- GDXDUMP 및 CSVAllFields 옵션을 사용하여 하위 필드를 CSV 파일로 변환합니다. 또한, EpsOut, NaOut, pInfOut 등의 옵션을 사용하여 특수 출력 문자열을 사용자 정의 값이 확인됩니다. 기고자: Jan-Erik Justkowiak, 2018년 9월 하위 필드에 특수 값이 포함된 변수를 덤프할 때 결과 확인
소형 모델 유형 :메가 슬롯
카테고리 : 메가 슬롯 테스트 라이브러리
메인 파일 : gdxdump4.gms
$title GDXDUMP - 메가 슬롯에서 변수 하위 필드의 특수 값 덤프(GDXDUMP4,SEQ=786)
$onText
변수에서 특수 값을 덤프할 때 결과를 확인하는 간단한 확인 -
GDXDUMP 및 CSVAllFields 옵션을 사용하여 하위 필드를 CSV 파일로 변환합니다. 또한,
EpsOut, NaOut, pInfOut 등의 옵션을 사용하여 특수 출력 문자열을 사용자 정의
값이 확인됩니다.
기고자: Jan-Erik Justkowiak, 2018년 9월
$offText
* 서브필드에 특수한 값을 갖는 변수를 덤프할 때 결과 확인
$onEcho > testDefault.gms
세트
희미한1 / i1*i6 /
Dim2 / Eps, NA, '+Inf', '-Inf', Undf, 0 /;
별칭(dim2, 희미한3, 희미한4, 희미한5, 희미한6);
$onUNDF
변수 x(*) /
i1.l EPS, i2.l NA, i3.l INF, i4.l -INF, i5.l UNDF, i6.l 0
i1.m EPS, i2.m NA, i3.m INF, i4.m -INF, i5.m UNDF, i6.m 0
i1.lo EPS, i2.lo NA, i3.lo INF, i4.lo -INF, i5.lo UNDF, i6.lo 0
i1.up EPS, i2.up NA, i3.up INF, i4.up -INF, i5.up UNDF, i6.up 0
i1.scale EPS, i2.scale NA, i3.scale INF, i4.scale -INF, i5.scale UNDF, i6.scale 0
/;
$gdxOut varX.메가 슬롯
$언로드x
$메가 슬롯아웃
$call gdxdump varX.메가 슬롯 format=csv Symb=x CSVAllFields > dumpedX.csv
$ifE errorLevel<>0 $abort dumpedX.csv에 쓰는 동안 오류가 발생했습니다!
* CSV를 세트로 읽는 것이 가장 좋으므로 뭔가를 놓치지 않을 것입니다. 제로
$call gamstool csvread dumpedX.csv gdxOut=dumpedX.메가 슬롯 id=dumpedX 인덱스=1..lastCol useHeader=y 추적=0
$ifE errorLevel<>0 $abort dumpedX.csv에서 읽는 동안 오류가 발생했습니다!
* 예상되는 결과
dumpedX(*,*,*,*,*,*) 설정 /
i1.Eps.Eps.Eps.Eps.Eps
i2.NA.NA.NA.NA.NA
i3.'+Inf'.'+Inf'.'+Inf'.'+Inf'.'+Inf'
i4.'-Inf'.'-Inf'.'-Inf'.'-Inf'.'-Inf'
i5.Undf.Undf.Undf.Undf.Undf
i6.0.0.0.0.0
/;
$gdxOut 제어데이터.메가 슬롯
$unLoaddim1dim2dim3dim4dim5dim6dumpedX
$메가 슬롯아웃
* 결과 확인
$call gdxdiff controlData.메가 슬롯 dumpedX.메가 슬롯 > %system.nullfile%
$ifE errorLevel<>0 $abort 특수 값을 가진 변수의 하위 필드를 덤프할 때 결과 확인에 실패했습니다!
$offEcho
$call gams testDefault.gms lo=%gams.lo%
$ifE errorLevel<>0 $abort testDefault.gms 실행 중 오류 발생
*------------------------------------------------------------------
* 서브필드에 특수한 값을 갖는 변수를 덤프할 때 결과 확인
* EpsOut, NaOut 등의 옵션을 추가하여 특수 값으로 작성된 문자열을 변경합니다.
$onEcho > testNonDefault.gms
세트
희미한1 / i1*i6 /
Dim2 / Epsilon, '사용할 수 없음', '큰 숫자', '작은 숫자', '정의되지 않음', '0' /;
별칭(dim2, 희미한3, 희미한4, 희미한5, 희미한6);
$call gdxdump varX.메가 슬롯 format=csv Symb=x CSVAllFields EpsOut=Epsilon NaOut="사용할 수 없음" pInfOut="큰 숫자" mInfOut="작은 숫자" UndfOut=정의되지 않음 ZeroOut=0 > dumpedXmod.csv
$ifE errorLevel<>0 $abort dumpedXmod.csv에 쓰는 동안 오류가 발생했습니다!
* CSVRead 호출에 지정된 식별자는 매개변수 또는 집합이 됩니다. 이후
* 위에 지정된 문자열은 CSVRead에서 읽을 수 없으므로 생략합니다.
* 값을 지정하고 인덱스 옵션을 사용하여 설정된 대로 데이터를 읽습니다.
$call gamstool csvread dumpedXmod.csv gdxOut=dumpedXmod.메가 슬롯 id=dumpedXmod 인덱스=1..lastCol useHeader=y 추적=0
$ifE errorLevel<>0 $abort dumpedXmod.csv에서 읽는 동안 오류가 발생했습니다!
* 결과를 비교하기 위해 예상 데이터도 세트로 정의합니다.
dumpedXmod(*,*,*,*,*,*) 설정 /
i1.Epsilon.Epsilon.Epsilon.Epsilon.Epsilon
i2."사용할 수 없음"."사용할 수 없음"."사용할 수 없음"."사용할 수 없음"."사용할 수 없음"
i3."큰 숫자"."큰 숫자"."큰 숫자"."큰 숫자"."큰 숫자"
i4."작은 수"."작은 수"."작은 수"."작은 수"."작은 수"
i5.정의되지 않음.정의되지 않음.정의되지 않음.정의되지 않음.정의되지 않음
i6.제로.제로.제로.제로.제로
/;
$gdxOut 제어데이터.메가 슬롯
$unLoaddim1dim2dim3dim4dim5dim6dumpedXmod
$메가 슬롯아웃
* 결과 확인
$call gdxdiff controlData.메가 슬롯 dumpedXmod.메가 슬롯 > %system.nullfile%
$ifE errorLevel<>0 $abort 특수 값을 가진 변수의 하위 필드를 덤프할 때 결과 확인에 실패했습니다!
$offEcho
$call gams testNonDefault.gms lo=%gams.lo%
$ifE errorLevel<>0 $abort testNonDefault.gms 실행 중 오류 발생
*------------------------------------------------------------------