설명
테스트 실행 시간 함수 gdxLoad. 기고자: Lutz Westermann, 2023년 6월
소형 모델 유형 :메가 슬롯
카테고리 : 메가 슬롯 테스트 라이브러리
메인 파일 : load18.gms
$title 'gdxLoad 테스트' (LOAD18,SEQ=940)
$onText
테스트 실행 시간 함수 gdxLoad.
기고자: Lutz Westermann, 2023년 6월
$offText
$onEcho > data.gms
i / i1*i3 / 설정;
매개변수 p(i) / i2 2, i3 3 /
오류(i,i) / #i.#i 22 /
q(i) / #i 11 /;
$offEcho
$call.checkErrorLevel 메가 슬롯 data.gms gdx=데이터 lo=%메가 슬롯lo%
i / i1*i2 / 설정
오류(i);
매개변수 pInit(i) / i1 1 /
피원트(i)
피(나),
q(i);
* 기본적으로 gdxLoad는 기존 데이터를 대체합니다.
p(i) = pInit(i);
gdxLoad 'data.gdx', p;
pWant('i2') = 2;
err(i) = p(i)<>pWant(i);
abort$card(err) '예기치 않은 p', p, pWant;
* 이제 교체 대신 병합
p(i) = pInit(i);
옵션 교체=끄기;
gdxLoad 'data.gdx', p;
pWant('i1') = 1;
pWant('i2') = 2;
err(i) = p(i)<>pWant(i);
abort$card(err) '예기치 않은 p', p, pWant;
* 기본값은 필터링된 읽기입니다. 이제 도메인 확인을 시도해 보세요.
p(i) = pInit(i);
옵션 필터링=꺼짐;
gdxLoad 'data.gdx', p;
abort$(execError=0) '도메인 위반이 예상됩니다';
exec오류 = 0;
* 이제 일치하는 모든 것을 시도해보세요
* - p와 q가 로드되어야 합니다.
* - 도메인 세트로 사용되므로 무시해야 합니다.
* - 선언에 불일치가 있으므로 오류는 무시되어야 합니다.
* $onImplicitAssign은 q가 명시적으로 할당되지 않았기 때문에 오류를 방지합니다.
매개변수 qWant(i) / #i 11 /;
p(i) = pInit(i);
옵션 필터링=켜짐;
$onImplicitAssign
gdxLoad 'data.gdx';
err(i) = p(i)<>pWant(i);
abort$card(err) '예기치 않은 p', p, pWant;
err(i) = q(i)<>qWant(i);
abort$card(err) '예기치 않은 q', q, qWant;