alias01.gms : 다차원 별칭 처리 확인

설명

이 테스트는 별칭 문이 다차원 집합에 사용될 수 있는지 확인합니다
뿐만 아니라.

기고자: Lutz Westermann, 2013년 11월

소형 모델 유형 :메가 슬롯


카테고리 : 메가 슬롯 테스트 라이브러리


메인 파일 : alias01.gms

$title '다차원 별칭 처리 확인' (ALIAS01,SEQ=637)

$onText
이 테스트는 별칭 문이 다차원 집합에 사용될 수 있는지 확인합니다.
뿐만 아니라.

기고자: Lutz Westermann, 2013년 11월
$offText

i / i0*i9 / 설정
    j / j0*j9 /
    k / k0*k9 /
    ijk (i,j,k) / #i.#j.#k /
    ijkC(i,j,k)
    ijkL(i,j,k);
별칭(ijk, ijkA, ijkA2)

abort$(card(ijkA) <> card(ijk) ) 'ijkA와 ijk의 카드가 다릅니다.';

$gdxOut testComp.gdx
$unLoad
$gdx아웃

$gdxIn testComp.gdx
$load ijkC=ijkA
$gdx아웃

abort$(card(ijkC) <> card(ijk) ) 'ijkC와 ijk의 카드가 다릅니다.';

체크 설정(i,j,k);
check(ijk) = ijkA(ijk)가 아님;
abort$card(check) 'ijk의 모든 요소가 ijkA에 있는 것은 아닙니다.', check;

check(ijkA) = ijk(ijkA)가 아님;
abort$card(check) 'ijkA의 모든 요소가 ijk에 있는 것은 아닙니다.', check;

Execute_unload '테스트' ijkA,ijk;
Execute_load '테스트' ijkL=ijkA;

abort$(card(ijkL) <> card(ijk) ) 'ijkL과 ijk의 카드가 다릅니다.';

check(ijk) = ijkL(ijk)이 아님;
abort$card(check) 'ijk의 모든 요소가 ijkL에 있는 것은 아닙니다.', check;

check(ijkL) = ijk(ijkL)이 아님;
abort$card(check) 'ijkL의 모든 요소가 ijk에 있는 것은 아닙니다.', check;

* 계산을 해보세요
스칼라 x, xA, xAL /0/;
x = sum(ijk (i,j,k), ord(i) + 2*ord(j) + 3*ord(k));
xA = sum(ijkA(i,j,k), ord(i) + 2*ord(j) + 3*ord(k));

루프(ijkA(i,j,k),
  xAL = xAL + ord(i) + 2*ord(j) + 3*ord(k);
);

abort$(xA <> x ) '별칭을 사용한 합산은 집합을 사용한 합산과 다른 결과를 가져옵니다.', xA, x;
abort$(xAL <> x ) '별칭을 사용하는 루프는 집합을 사용하는 합계와 다른 결과를 초래합니다.', xAL, x;