설명
기고자: Michael Bussieck, 2023년 1월
소형 모델 유형 :메가 슬롯
카테고리 : 메가 슬롯 테스트 라이브러리
메인 파일 : embgms03.gms
$title '임베디드 코드에서 데이터를 로드할 때 투영 연산자 테스트' (EMBGMS03,SEQ=927)
$onText
기고자: Michael Bussieck, 2023년 1월
$offText
매개변수 ud1dataUniverse;
d1Want / i1 / 설정
d2원함 / j1, j2 /
d3원하다 / k1, k3 /
ud1d1, ud1d2, ud1d3;
$macro checkIfAinB(a,b,Error) 오류 설정; 오류(a) = b(a)가 아님; 중단$카드(오류) 오류;
* 매개변수 자체가 아닌 매개변수의 지정된 치수에서 세트 요소를 가져옵니다.
$offECImplicitLoad
$onEmbeddedCode 메가 슬롯:
매개변수 ud1dataUniverse / i1.j1.k1 11.9, i1.j2.k3 9.11 /;
$offEmbeddedCode ud1d1<ud1dataUniverse.dim1 ud1d2<ud1dataUniverse.dim2 ud1d3<ud1dataUniverse.dim3
checkIfAinB(ud1d1,d1Want,ud1Error1a)
checkIfAinB(ud1d2,d2Want,ud1Error2a)
checkIfAinB(ud1d3,d3Want,ud1Error3a)
checkIfAinB(d1Want,ud1d1,ud1Error1b)
checkIfAinB(d2Want,ud1d2,ud1Error2b)
checkIfAinB(d3Want,ud1d3,ud1Error3b)
$if 정의된 ud1dataUniverse $abort ud1dataUniverse의 데이터가 로드되지 않을 것으로 예상됩니다.
$if errorFree $abbor 이전 컴파일 오류
$if 차원 20 ud1dataUniverse $log 우리는 ud1dataUniverse의 차원에 액세스할 수 없어 이 줄이 컴파일 오류를 유발합니다.
$if errorFree $abort ud1dataUniverse의 차원에 접근할 수 없어야 합니다.
$오류가 아닌 경우Free $clearErrors
매개변수 dataUniverse(*,*,*);
d1(*), d2(*), d3(*)을 설정합니다.
* 매개변수의 지정된 치수에서 세트 요소를 가져옵니다.
$onEmbeddedCode 메가 슬롯:
매개변수 dataUniverse / i1.j1.k1 11.9, i1.j2.k3 9.11 /;
$offEmbeddedCode d1<dataUniverse.dim1 d2<dataUniverse.dim2 d3<dataUniverse.dim3
checkIfAinB(d1,d1Want,Error1a)
checkIfAinB(d2,d2Want,Error2a)
checkIfAinB(d3,d3Want,Error3a)
checkIfAinB(d1Want,d1,Error1b)
checkIfAinB(d2Want,d2,Error2b)
checkIfAinB(d3Want,d3,Error3b)
$if 정의된 dataUniverse $abort dataUniverse의 데이터가 로드되지 않을 것으로 예상됩니다.
e1(*), e2(*), e3(*)을 설정합니다.
매개변수 dataDomain(e1,e2,e3);
* 매개변수의 도메인 일치로 세트 요소 가져오기
$onEmbeddedCode 메가 슬롯:
매개변수 dataDomain / i1.j1.k1 11.9, i1.j2.k3 9.11 /;
$offEmbeddedCode e1<dataDomain e2<dataDomain e3<dataDomain
checkIfAinB(e1,d1Want,Error1c)
checkIfAinB(e2,d2Want,Error2c)
checkIfAinB(e3,d3Want,Error3c)
checkIfAinB(d1Want,e1,Error1d)
checkIfAinB(d2Want,e2,Error2d)
checkIfAinB(d3Want,e3,Error3d)
$if 정의된 dataDomain $abort dataUniverse의 데이터가 로드되지 않을 것으로 예상됩니다.
f1(*)을 설정합니다.
매개변수 데이터DomainF1(f1,f1,f1);
* 매개변수의 도메인 일치로 설정된 요소를 가져오고 왼쪽부터 검색을 시작합니다.
$onEmbeddedCode 메가 슬롯:
매개변수 dataDomainF1 / i1.j1.k1 11.9, i1.j2.k3 9.11 /;
$offEmbeddedCode f1<=dataDomainF1
checkIfAinB(f1,d1Want,Error1e)
checkIfAinB(d1Want,f1,Error1f)
$ 정의된 경우 dataDomainF1 $abort dataDomainF1의 데이터가 로드되지 않을 것으로 예상됩니다.
f2(*)를 설정합니다.
매개변수 dataDomainF2(f2,f2,f2);
* 매개변수의 도메인 일치로 설정된 요소를 가져오고 오른쪽부터 검색을 시작합니다.
$onEmbeddedCode 메가 슬롯:
매개변수 dataDomainF2 / i1.j1.k1 11.9, i1.j2.k3 9.11 /;
$offEmbeddedCode f2<dataDomainF2
checkIfAinB(f2,d3Want,Error3e)
checkIfAinB(d3Want,f2,Error3f)
$ 정의된 경우 dataDomainF2 $abort dataDomainF2의 데이터가 로드되지 않을 것으로 예상됩니다.
* 필터링된 데이터 로드
코드 설정, labId, rr(code,labId);
매개변수 raw(*,*,*);
$onEmbeddedCode 메가 슬롯:
매개변수 원시; rr을 설정;
$gdxIn getdata.gdx
$로드 원시 rr
$offEmbeddedCode 코드<raw.dim1 labId<raw.dim2 rr
Execute_unload 'dd.gdx' rr;
$if errorFree $abort 현재까지는 오류가 없을 것으로 예상됩니다.
* 다음 작업에서는 실패가 예상됩니다.
$onEcho > noDomMatch.gms
매개변수 dataUniverse(*,*,*);
d1(*), d2(*), d3(*)을 설정합니다.
$onEmbeddedCode 메가 슬롯:
매개변수 dataUniverse / i1.j1.k1 11.9, i1.j2.k3 9.11 /;
$offEmbeddedCode d1<dataUniverse d2<dataUniverse d3<dataUniverse
$offEcho
$call 게임 noDomMatch.gms lo=%메가 슬롯lo%
$errorlevel 1이 아닌 경우 $abort noDomMatch.gms에서 예상되는 오류
$onEcho > noParameter.gms
매개변수 dataUniverse(*,*,*);
매개변수 d1(*), d2(*), d3(*);
$onEmbeddedCode 메가 슬롯:
매개변수 dataUniverse / i1.j1.k1 11.9, i1.j2.k3 9.11 /;
$offEmbeddedCode d1<dataUniverse.dim1 d2<dataUniverse.dim2 d3<dataUniverse.dim3
$offEcho
$call 메가 슬롯 noParameter.gms lo=%메가 슬롯lo%
$if errorlevel 1 $abort noParameter.gms에서 예상되는 오류
$onEcho >잘못Dim.gms
매개변수 dataUniverse(*,*,*);
d1(*,*), d2(*,*,*), d3(*,*,*)를 설정합니다.
$onEmbeddedCode 메가 슬롯:
매개변수 dataUniverse / i1.j1.k1 11.9, i1.j2.k3 9.11 /;
$offEmbeddedCode d1<dataUniverse.dim1 d2<dataUniverse.dim2 d3<dataUniverse.dim3
$offEcho
$call gamswrongDim.gms lo=%메가 슬롯lo%
$errorlevel 1이 아닌 경우 $abortwrongDim.gms에서 예상되는 오류
$onEcho >잘못Dim.gms
매개변수 dataUniverse;
d1, d2, d3을 설정합니다.
$onEmbeddedCode 메가 슬롯:
매개변수 dataUniverse / i1.j1.k1 11.9, i1.j2.k3 9.11 /;
$offEmbeddedCode d1<dataUniverse.dim1 d2<dataUniverse.dim2 d3<dataUniverse.dim7
$offEcho
$call gamswrongDim.gms lo=%메가 슬롯lo%
$errorlevel 1이 아닌 경우 $abortwrongDim.gms에서 예상되는 오류