maxima.gms : Cmex의 여러 최대값 테스트

설명

최대값인지 확인하세요...
- 식별자 길이
- 설명 텍스트 길이
- 인덱스 수
- 입력 라인 길이
- 루프 깊이
- 중첩된 포함 파일 깊이
예상대로입니다.

기여자: M. Bussieck

소형 모델 유형 :크레이지 슬롯


카테고리 : 크레이지 슬롯 테스트 라이브러리


메인 파일 : maxima.gms

$title Cmex의 여러 최대값 테스트(MAXIMA,SEQ=509)

$onText
최대인지 확인하세요..
- 식별자 길이
- 설명 텍스트 길이
- 인덱스 수
- 입력 라인 길이
- 루프 깊이
- 중첩된 포함 파일 깊이
예상대로입니다.

기여자: M. Bussieck
$offText

$maxGoTo 1000
$세트 ID x
$세트컨트 1
$label 시작 ID
$eval cnt %cnt%+1
$eval cntmod 모드(%cnt%,10)
$세트 ID %id%%cntmod%
스칼라 %id%;
$if errorfree $goTo startid
$clearError
$eval 최대 ID 길이 %cnt%-1

$세트 ID
$세트컨텐트 0
$label 시작
$eval cnt %cnt%+1
$eval cntmod 모드(%cnt%,10)
$세트 ID %id%%cntmod%
$ 정의된 경우 y $kill y
스칼라 y %id% /1/;
$if errorfree $goTo startet
$clearError
$eval 최대 길이 %cnt%-1

나는 /1/로 설정;
$세트 ID x
$set idx i
$세트컨트 1
$라벨 시작 IDx
$eval cnt %cnt%+1
$set idx %idx%,i
$세트 ID %id%x
매개변수 %id%(%idx%);
$if errorfree $goTo startidx
$clearError
$eval maxidxlength %cnt%-1

* put은 한 줄에 32768자까지만 쓰기 때문에 awk가 필요합니다.
$echo 'printf("*"); for(i=1;i<maxd;i++) printf("x");' > il.awk
$세트컨텐트 0
$set 1000 추가
$label 시작
$eval cnt %cnt%+%add%
$call 에코 x | awk -v maxd=%cnt% -f il.awk > ilx.gms && 크레이지 슬롯 ilx.gms lo=0
$if 오류 수준 1 $goTo stopil
$goTo 시작
$label 중지
$clearError
$ifE %add%=1 $goTo 완료일
$eval cnt %cnt%-%add%
$eval 추가 라운드(%add%/10)
$goTo 시작
$label 도네일
$eval 최대 길이 %cnt%-2

$onEchoV > if.gms
d /1*%maxd%/ 설정
파일 FX /ifx.gms/; fx '스칼라 i /1/'을 넣습니다.
loop(d, put 'if(i,' /);
'디스플레이 i;'를 넣어 /;
loop(d, put ')' /);
$offEcho

$세트컨텐트 0
$set 10 추가
$label 시작 루프
$eval cnt %cnt%+%add%
$call 게임 if.gms --maxd=%cnt% lo=0 && 게임 ifx.gms lo=0
$if 오류 수준 1 $goTo stoploop
$goTo 시작 루프
$label 스톱루프
$clearError
$ifE %add%=1 $goTo doneloop
$eval cnt %cnt%-%add%
$eval 추가 라운드(%add%/10)
$goTo 시작 루프
$label 완료루프
$eval 최대 루프 깊이 %cnt%-1

$onEchoV > inc.gms
i /1*%maxi%/를 설정합니다. 별칭(i,ii);
파일 fx /incx.gms/;
fx '$echo set i를 넣습니다. > i1.inc ' /;
loop((i,ii)$sameas(i,ii-1), put '$echo $include i'i.tl:0'.inc > i'ii.tl:0'.inc' /);
putclose '$include i%maxi%.inc';
$offEcho

$세트컨텐트 0
$label 시작inc
$eval cnt %cnt%+1
$call 크레이지 슬롯 inc.gms --maxi=%cnt% lo=0 && 크레이지 슬롯 incx.gms lo=0
$if 오류 수준 1 $goTo stopinc
$goTo 시작inc
$label 중지
$clearError
$eval 최대 깊이 %cnt%+1-1

$log '최대 식별자 길이: ' %maxidlength%
$log '최대 설명 텍스트 길이: ' %maxetlength%
$log '최대 인덱스 수: ' %maxidxlength%
$log '최대 입력 줄 길이: ' %maxillength%
$log '최대 루프 깊이: ' %maxlooplength%
$log '최대 중첩 포함 파일 깊이:' %maxinclength%

$set 유효 길이 63
$set 길이 255
$set expidxlength 20
$set 만료 길이 80000
$set 폭발 깊이 299
$set expinclength 40

Abort$(%maxidlength%<>%expidlength%) '최대 식별자 길이는 %expidlength%여야 합니다.'
Abort$(%maxetlength%<>%expetlength%) '최대 설명 텍스트 길이는 %expetlength%여야 합니다.'
Abort$(%maxidxlength%<>%expidxlength%) '최대 인덱스 수는 %expidxlength%입니다.'
Abort$(%maxillength%<>%expillength%) '최대 입력 줄 길이는 %expillength%여야 합니다.'
Abort$(%maxlooplength%<>%explooplength%) '최대 루프 깊이는 %explooplength%여야 합니다.'
Abort$(%maxinclength%<>%expinclength%) '최대 중첩 포함 파일 깊이는 %expinclength%여야 합니다.'