load8.gms : 도메인 프로젝션 로드 테스트

설명

기고자: M. Bussick, 2013년 10월

소형 모델 유형 :슬롯 무료체험


카테고리 : 슬롯 무료체험 테스트 라이브러리


메인 파일 : load8.gms

$title '도메인 프로젝션 로드 테스트' (LOAD8,SEQ=631)

$onText
기고자: M. Bussick, 2013년 10월
$offText

$call gamslib -q 1
$echo set use(i,j); use(i,j) = x.l(i,j) gt 0.5; >> trnsport.gms
$echo set ii(i,i) / seattle.san-diego /;        >> trnsport.gms
$call gams tnsport 슬롯 무료체험=0 gdx=t.gdx
$if errorlevel 1 $abort trnsport를 실행할 수 없습니다. trnsport.lst를 확인하세요.

set rset1 / 시애틀, 샌디에고 /
    rset2 / 뉴욕, 시카고, 토피카 /
    rset3 / #rset1, #rset2 /
    fset1 / 1*5 /
    fset2 / 시애틀 /
    fset3 / 시카고 /;

$macro sameset(i,j) (card(i)=card(j) 및 sum((i,j)$sameas(i,j),1)=card(i))

$gdxInt

i, ii, il, ir, j, ij, yy(i,j)를 설정합니다. 별칭(i,ip);
매개변수 xxx(i);

* 컴파일 오류를 발생시키는 몇 가지 간단한 테스트

* 매개변수를 로드할 수 없습니다.
$로드xxx<a
$if errorfree $abort '$load xxx<a'는 컴파일 오류를 유발해야 합니다.
$clearError

* 2차원 세트는 로드할 수 없습니다.
$loadyy<a
$if errorfree $abort '$load yy<a'는 컴파일 오류를 유발해야 합니다.
$clearError

* 별칭을 로드할 수 없습니다
$로드 IP<a
$if errorfree $abort '$load ip<a'는 컴파일 오류를 유발해야 합니다.
$clearError

* GDX 기호에 알려지지 않은 도메인을 로드할 수 없습니다.
$로드 j<a
$if errorfree $abort '$load j<a'는 컴파일 오류를 유발해야 합니다.
$clearError

* GDX 기호 치수보다 큰 도메인 위치를 로드할 수 없습니다.
$로드 j<a.dim2
$if errorfree $abort '$load j<a.dim2'는 컴파일 오류를 유발해야 합니다.
$clearError

* 자동 도메인 인식
$로드 i<d
$if not errorfree $abort '$load i<d'는 컴파일 오류를 유발해서는 안 됩니다.
abort$(not sameset(i,rset1)) 'i와 rset1은 동일해야 합니다.', i, rset1;

* 다차원 세트에서 로딩
$load ii<use.dim1
$if not errorfree $abort '$load ii<use.dim1'은 컴파일 오류를 유발해서는 안 됩니다.
abort$(not sameset(ii,rset1)) 'ii와 rset1은 동일해야 합니다.', ii, rset1;

* 강제 도메인 위치 인식
$로드 j<d.dim2
$if not errorfree $abort '$load j<d.dim2'는 컴파일 오류를 유발해서는 안 됩니다.
abort$(not sameset(j,rset2)) 'j와 rset2는 동일해야 합니다.', j, rset2;

* 도메인 가입
$load ij<d.dim1
$if not errorfree $abort '$load ij<d.dim1'은 컴파일 오류를 유발해서는 안 됩니다.
$loadMij<d.dim2
$if not errorfree $abort '$load ij<d.dim2'는 컴파일 오류를 유발해서는 안 됩니다.
abort$(not sameset(ij,rset3)) 'ij와 rset3은 동일해야 합니다.', ij, rset3;

resf1(fset1), resf2(fset2), resf3(fset3) 필터링된 결과 세트를 설정합니다.

* 오류 없이 필터링된 읽기
$load resf1<d.dim1
$if not errorfree $abort '$load resf1<d.dim1'은 컴파일 오류를 유발해서는 안 됩니다.
abort$card(resf1) 'fset1의 도메인 확인으로 인해 resf1은 비어 있어야 합니다.', resf1, fset1;

* 오류가 있는 필터링된 읽기
$loadDCM resf1<d.dim1
$if errorfree $abort '$loadMDC resf1<d.dim1'은 컴파일 오류를 유발해야 합니다.
$clearError

* 일부 결과를 포함하여 필터링된 읽기
$load resf2<d.dim1
$if errorfree $abort '$load resf2<d.dim1'은 컴파일 오류를 유발해서는 안 됩니다.
abort$(not sameset(resf2,fset2)) 'resf2와 fset2는 동일해야 합니다.', resf2, fset2;

* 일부 결과를 포함하여 필터링된 읽기
$load resf3<d.dim2
$if errorfree $abort '$load resf3<d.dim2'는 컴파일 오류를 유발해서는 안 됩니다.
abort$(not sameset(resf3,fset3)) 'resf3과 fset3은 동일해야 합니다.', resf3, fset3

$gdxOut;