idxoper1.gms : 색인 작업 테스트

설명

이 테스트는 빈 세트에 대한 색인 작업이 예상대로 작동하는지 확인합니다.

기고자: Lutz Westermann, 2014년 4월

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


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


메인 파일 : idxoper1.gms

$title '인덱스 작업 테스트' (idxoper1,SEQ=661)

$onText
이 테스트는 빈 세트에 대한 인덱싱된 작업이 예상대로 작동하는지 확인합니다.

기고자: Lutz Westermann, 2014년 4월
$offText

r / 1 / 설정;
s / 1, 2 / 설정;
rs(r,s) / 1.1 / 설정;
하위 설정(r,s) / 1.2 /;
스칼라 x;

x = prod(subrs(rs), 2);
abort$(x<>1) 'prod 문에 오류가 있습니다.';
x = prod(rs, prod(subrs(rs), 2));
abort$(x<>1) 'prod-prod 문에 오류가 있습니다.';
x = sum(rs, prod(subrs(rs), 2));
abort$(x<>1) 'sum-prod 문에 오류가 있습니다.';
x = smin(rs, prod(subrs(rs), 2));
abort$(x<>1) 'smin-prod 문에 오류가 있습니다.';
x = smax(rs, prod(subrs(rs), 2));
abort$(x<>1) 'smax-prod 문에 오류가 있습니다.';
x = 모래(rs, prod(subrs(rs), 2));
abort$(x<>1) 'sand-prod 문에 오류가 있습니다.';
x = sor(rs, prod(subrs(rs), 2));
abort$(x<>1) 'sor-prod 문에 오류가 있습니다.';

x = smin(subrs(rs), 2);
abort$(x<>+inf) 'smin 문에 오류가 있습니다.';
x = prod(rs, smin(subrs(rs), 2));
abort$(x<>+inf) 'prod-smin 문에 오류가 있습니다.';
x = 합계(rs, smin(subrs(rs), 2));
abort$(x<>+inf) 'sum-smin 문에 오류가 있습니다.';
x = smin(rs, smin(subrs(rs), 2));
abort$(x<>+inf) 'smin-smin 문에 오류가 있습니다.';
x = smax(rs, smin(subrs(rs), 2));
abort$(x<>+inf) 'smax-smin 문에 오류가 있습니다.';
x = 모래(rs, smin(subrs(rs), 2));
abort$(x<>1) 'sand-smin 문에 오류가 있습니다.';
x = sor(rs, smin(subrs(rs), 2));
abort$(x<>1) 'sor-smin 문에 오류가 있습니다.';

x = smax(subrs(rs), 2);
abort$(x<>-inf) 'smax 문에 오류가 있습니다.';
x = prod(rs, smax(subrs(rs), 2));
abort$(x<>-inf) 'prod-smax 문에 오류가 있습니다.';
x = 합계(rs, smax(subrs(rs), 2));
abort$(x<>-inf) 'sum-smax 문에 오류가 있습니다.';
x = smin(rs, smax(subrs(rs), 2));
abort$(x<>-inf) 'smin-smax 문에 오류가 있습니다.';
x = smax(rs, smax(subrs(rs), 2));
abort$(x<>-inf) 'smax-smax 문에 오류가 있습니다.';
x = 모래(rs, smax(subrs(rs), 2));
abort$(x<>1) 'sand-smax 문에 오류가 있습니다.';
x = sor(rs, smax(subrs(rs), 2));
abort$(x<>1) 'sor-smax 문에 오류가 있습니다.';

x = 합(subrs(rs), 2);
abort$(x<>0) 'sum 문에 오류가 있습니다.';
x = prod(rs, sum(subrs(rs), 2));
abort$(x<>0) 'prod-sum 문에 오류가 있습니다.';
x = 합(rs, sum(subrs(rs), 2));
abort$(x<>0) '합계문 오류';
x = smin(rs, sum(subrs(rs), 2));
abort$(x<>0) 'smin-sum 문에 오류가 있습니다.';
x = smax(rs, sum(subrs(rs), 2));
abort$(x<>0) 'smax-sum 문에 오류가 있습니다.';
x = 모래(rs, sum(subrs(rs), 2));
abort$(x<>0) 'sandsum 문에 오류가 있습니다.';
x = sor(rs, sum(subrs(rs), 2));
abort$(x<>0) 'sor-sum 문에 오류가 있습니다.';

x = 모래(subrs(rs), 2);
abort$(x<>1) 'sand 문에 오류가 있습니다.';
x = prod(rs, sand(subrs(rs), 2));
abort$(x<>1) 'prod-sand 문에 오류가 있습니다.';
x = 합계(rs, sand(subrs(rs), 2));
abort$(x<>1) 'sum-sand 문에 오류가 있습니다.';
x = smin(rs, sand(subrs(rs), 2));
abort$(x<>1) 'smin-sand 문에 오류가 있습니다.';
x = smax(rs, sand(subrs(rs), 2));
abort$(x<>1) 'smax-sand 문에 오류가 있습니다.';
x = 모래(rs, sand(subrs(rs), 2));
abort$(x<>1) 'sand-sand 문에 오류가 있습니다.';
x = sor(rs, sand(subrs(rs), 2));
abort$(x<>1) '정의문 오류';

x = sor(subrs(rs), 2);
abort$(x<>0) '정렬문에 오류가 있습니다.';
x = prod(rs, sor(subrs(rs), 2));
abort$(x<>0) 'prod-sor 문에 오류가 있습니다.';
x = 합계(rs, sor(subrs(rs), 2));
abort$(x<>0) 'sum-sor 문에 오류가 있습니다.';
x = smin(rs, sor(subrs(rs), 2));
abort$(x<>0) 'smin-sor 문에 오류가 있습니다.';
x = smax(rs, sor(subrs(rs), 2));
abort$(x<>0) 'smax-sor 문에 오류가 있습니다.';
x = 모래(rs, sor(subrs(rs), 2));
abort$(x<>0) 'sand-sor 문에 오류가 있습니다.';
x = sor(rs, sor(subrs(rs), 2));
abort$(x<>0) 'sor-sor 문에 오류가 있습니다.';

* smin 값이 정확한지 확인
매개변수 p(s) / 1 1, 2 0.01 /;
스칼라 pmin, ords /-1/;
pmin = smin(s, p(s));
loop(s$(pmin=p(s)), ords = ord(s));
abort$(ords=-1) '루프에 들어가지 않았습니다.';