설명
GUSS의 초기 구현에는 미묘한 부작용이 있었습니다. 그러므로, 크레이지 슬롯 컴파일러는 GUSS 사용에 대해 엄격한 규칙을 시행합니다. 이 테스트 이러한 테스트를 많이 수집합니다. 기여자: Michael Bussieck
소형 모델 유형 :크레이지 슬롯
카테고리 : 크레이지 슬롯 테스트 라이브러리
메인 파일 : 크레이지 슬롯.gms
$title Gather-Update-Solve-Scatter(GUSS)에 대한 컴파일 시간 테스트(SCEN01, SEQ=516)
$onText
GUSS의 초기 구현에는 미묘한 부작용이 있었습니다. 그러므로,
크레이지 슬롯 컴파일러는 GUSS 사용에 대해 엄격한 규칙을 시행합니다. 이 테스트
이러한 테스트를 많이 수집합니다.
기여자: Michael Bussieck
$offText
$call gamslib -q trnsport
$if errorlevel 1 $abort 'trnsport.gms를 검색할 수 없습니다.'
$onEchoV >> trnsport.gms
z 시나리오 dict를 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '알 수 없으면 컴파일 오류가 발생합니다'
$clearError
dict1을 설정하십시오;
z 시나리오 dict1을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '컴파일 오류를 유발하는 데이터가 없어야 합니다.'
$clearError
dict2 /x/ 설정;
z 시나리오 dict2를 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '다른 Dim이 컴파일 오류를 유발해야 함'
$clearError
dict3 /x.x.x/ 설정;
z 시나리오 dict3을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '알 수 없는 키워드가 컴파일 오류를 유발해야 합니다'
$clearError
dict4 /xxx.scenario.x/를 설정합니다.
z 시나리오 dict4를 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '위치 1의 알 수 없는 기호가 컴파일 오류를 유발해야 합니다'
$clearError
dict5 /x.scenario.x/를 설정합니다.
z 시나리오 dict5를 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '세트가 아닌 pos 1의 기호는 컴파일 오류를 유발해야 합니다'
$clearError
dict6 /i.scenario.x/를 설정합니다.
z 시나리오 dict6을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '위치 3의 기호가 비어 있지 않으면 컴파일 오류가 발생합니다'
$clearError
dict7 /i.scenario.'', j.scenario.''/를 설정합니다.
z 시나리오 dict7을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '위치 3의 기호가 비어 있지 않으면 컴파일 오류가 발생합니다'
$clearError
dict8 /i.scenario.''/ 설정;
z 시나리오 dict8을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '어떤 업데이트 프로그램도 컴파일 오류를 발생시키지 않아야 합니다.'
$clearError
세트 s;
dict9 /s.scenario.''/를 설정합니다.
z 시나리오 dict9를 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '빈 시나리오 세트가 컴파일 오류를 유발해야 합니다'
$clearError
$onMulti
dict9 /x.x.x/ 설정;
$off멀티
$if errorfree $abort '컴파일 시간에 보호된 dict에 쓰면 컴파일 오류가 발생해야 합니다'
$clearError
dict9('x','x','x') = 예;
$if errorfree $abort '보호된 dict에 쓰는 실행 시간은 컴파일 오류를 유발해야 합니다'
$clearError
s /s1/을 설정합니다;
매개변수 as(s,i) /s1.#i 1/, bs(s,j);
dict10 /s.scenario.'', a.param.as/를 설정합니다.
dict10('b','param','bs') = 예;
z 시나리오 dict10을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort 'dict에 쓰는 실행 시간은 컴파일 오류를 유발해야 합니다'
$clearError
dict11 /s.scenario.'', a.param.as, b.param.bs/를 설정합니다.
z 시나리오 dict11을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort 'pos 3의 기호에 데이터가 없으면 컴파일 오류가 발생합니다'
$clearError
bs(s,j)=1;
$죽여라
z 시나리오 dict11을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '위치 1의 기호에 데이터가 없으면 컴파일 오류가 발생합니다'
$clearError
a(i) = 1;
dict12 /s.scenario.'', Supply.param.as/ 설정;
z 시나리오 dict12를 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '매개변수가 아닌 pos 1의 기호는 컴파일 오류를 유발해야 합니다.'
$clearError
bs_set(s,j) / s1.#j /를 설정합니다.
dict13 /s.scenario.'', b.param.bs_set/ 설정;
z 시나리오 dict13을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '매개변수가 아닌 pos 3의 기호는 컴파일 오류를 유발해야 합니다.'
$clearError
매개변수 bsX(s,i,j) / s1.#i.#j 1 /;
dict14 /s.scenario.'', b.param.bsX/ 설정;
z 시나리오 dict14를 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '기호 크기 불일치로 인해 컴파일 오류가 발생합니다'
$clearError
매개변수 xfix(s,i,j);
dict15 /s.scenario.'', x.fixed.xfix/ 설정;
z 시나리오 dict15를 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort 'pos 3의 기호에 데이터가 없으면 컴파일 오류가 발생합니다'
$clearError
xfix(s,i,j) = 1;
dict16 /s.scenario.'', c.fixed.xfix/ 설정;
z 시나리오 dict16을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '변수가 아닌 pos 1의 기호는 컴파일 오류를 유발해야 합니다'
$clearError
xfix_set(s,i,j) /s1.#i.#j/ 설정;
dict17 /s.scenario.'', x.fixed.xfix_set/ 설정;
z 시나리오 dict17을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '매개변수 유형이 아닌 pos 3의 기호는 컴파일 오류를 유발해야 합니다.'
$clearError
매개변수 xfixX(s,i) / s1.#i 1 /;
dict18 /s.scenario.'', x.fixed.xfixX/를 설정합니다.
z 시나리오 dict18을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '기호 크기 불일치로 인해 컴파일 오류가 발생합니다'
$clearError
변수 y(i,j);
dict19 /s.scenario.'', y.fixed.xfix/ 설정;
z 시나리오 dict19를 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '모델에서 사용되지 않은 pos 1의 기호는 컴파일 오류를 유발해야 합니다.'
$clearError
매개변수 ds(s,i,j) / s1.#i.#j 1 /;
dict20 /s.scenario.'', d.param.ds/를 설정합니다.
z 시나리오 dict20을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '모델에서 사용되지 않은 pos 1의 기호는 컴파일 오류를 유발해야 합니다.'
$clearError
매개변수 xfixp(i,s,j) / #i.s1.#j 1 /;
dict21 /s.scenario.'', x.fixed.xfixp/ 설정;
z 시나리오 dict21을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort 'pos 3의 기호에 일관성 없는 도메인이 있으면 컴파일 오류가 발생해야 합니다.'
$clearError
방정식 e1; e1..sum((i,j)$c(i,j), x(i,j)) =e= 1;
모델 t1 / 운송, e1 /;
dict22 /s.scenario.'', c.param.ds/를 설정합니다.
z 시나리오 dict22를 최소화하는 lp를 사용하여 t1을 해결합니다.
$if errorfree $abort '$ 조건에 사용된 varparms는 컴파일 오류를 유발해야 합니다'
$clearError
방정식 e2; e2..sum((i,j), power(x(i,j),c(i,j))) =e= 1;
모델 t2 / 운송, e2 /;
dict23 /s.scenario.'', c.param.ds/를 설정합니다.
z 시나리오 dict23을 최소화하는 lp를 사용하여 t2를 해결합니다.
$if errorfree $abort '외생 함수 인수에 사용된 varparms는 컴파일 오류를 유발해야 합니다.'
$clearError
방정식 e3; e3$(sum((i,j),c(i,j))>5).. z =e= 4;
모델 t3 / 운송, e3 /;
dict24 /s.scenario.'', c.param.ds/를 설정합니다.
z 시나리오 dict24를 최소화하는 lp를 사용하여 t3을 해결합니다.
$if errorfree $abort '$ 조건에 사용된 varparms는 컴파일 오류를 유발해야 합니다'
$clearError
dict25 /s.scenario.'', c.param.ds, c.param.xfix/를 설정합니다.
z 시나리오 dict25를 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort 'pos 1의 매개변수 기호가 두 번 이상 제어되면 컴파일 오류가 발생해야 합니다.'
$clearError
dict26 /s.scenario.'', x.upper.ds, x.upper.xfix/를 설정합니다.
z 시나리오 dict26을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort 'pos 1의 변수 기호를 두 번 이상 제어하면 컴파일 오류가 발생해야 합니다.'
$clearError
dict27 /s.scenario.'', x.upper.ds, x.fixed.xfix/를 설정합니다.
z 시나리오 dict27을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort 'pos 1의 변수 기호를 두 번 이상 제어하면 컴파일 오류가 발생해야 합니다.'
$clearError
dict28 /s.scenario.'', x.fixed.xfix, x.lower.ds/를 설정합니다.
z 시나리오 dict28을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort 'pos 1의 변수 기호를 두 번 이상 제어하면 컴파일 오류가 발생해야 합니다.'
$clearError
dict29 /s.scenario.'', x.level.ds, x.marginal.ds/를 설정합니다.
z 시나리오 dict29를 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort '쓰기 섹션에서 pos 4의 변수 기호가 두 번 이상 컴파일 오류를 유발해야 합니다.'
$clearError
sattrib30 / XXX / 설정; 매개변수 srep30(s,sattrib30);
dict30 /s.scenario.'', x.level.ds, ''.opt.srep30/ 설정;
z 시나리오 dict30을 최소화하는 lp를 사용하여 전송을 해결합니다.
$if errorfree $abort 'GUSS 모델 속성 세트의 알 수 없는 라벨 XXX로 인해 컴파일 오류가 발생해야 합니다.'
$clearError
$offEcho
$call "크레이지 슬롯 trnsport a=c lo=%크레이지 슬롯lo%"
$if errorlevel 1 $abort '테스트에 실패했습니다. 자세한 내용은 trnsport.lst를 확인하세요.'