load18.gms : gdxLoad 테스트

설명

테스트 실행 시간 함수 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;