3 -- Grant of Unlimited Rights
5 -- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
6 -- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
7 -- unlimited rights in the software and documentation contained herein.
8 -- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
9 -- this public release, the Government intends to confer upon all
10 -- recipients unlimited rights equal to those held by the Government.
11 -- These rights include rights to use, duplicate, release or disclose the
12 -- released technical data and computer software in whole or in part, in
13 -- any manner and for any purpose whatsoever, and to have or permit others
18 -- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
19 -- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
20 -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
21 -- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
22 -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
23 -- PARTICULAR PURPOSE OF SAID MATERIAL.
25 -- FOR AN AGGREGATE OF THE FORM:
26 -- (B..C => (D..E => (F..G => (H..I => J))))
27 -- WHOSE TYPE IS A TWO-DIMENSIONAL ARRAY TYPE THAT HAS A TWO-
28 -- DIMENSIONAL ARRAY COMPONENT TYPE, CHECK THAT:
30 -- A) IF B..C OR D..E IS A NULL RANGE, THEN F, G, H, I, AND J
33 -- B) IF B..C AND D..E ARE NON-NULL RANGES, THEN F, G, H AND I
34 -- ARE EVALUATED (C-B+1)*(E-D+1) TIMES, AND J IS EVALUATED
35 -- (C-B+1)*(E-D+1)*(G-F+1)*(I-H+1) TIMES IF F..G AND H..I
48 TEST
("C43208B", "CHECK THAT THE EVALUATION OF A MULTI" &
49 "DIMENSIONAL ARRAY TYPE THAT HAS AN " &
50 "ARRAY COMPONENT TYPE IS PERFORMED " &
55 TYPE CHOICE_INDEX
IS (B
, C
, D
, E
, F
, G
, H
, I
, J
);
56 TYPE CHOICE_CNTR
IS ARRAY(CHOICE_INDEX
) OF INTEGER;
58 CNTR
: CHOICE_CNTR
:= (CHOICE_INDEX
=> 0);
60 TYPE T1
IS ARRAY(INTEGER RANGE <>, INTEGER RANGE <>)
63 FUNCTION CALC
(A
: CHOICE_INDEX
; B
: INTEGER)
66 CNTR
(A
) := CNTR
(A
) + 1;
75 A1
: ARRAY(4 .. 3, 3 .. 4) OF T1
(2 .. 3, 1 .. 2);
77 CNTR
:= (CHOICE_INDEX
=> 0);
78 A1
:= (4 .. 3 => (3 .. 4 =>
79 (CALC
(F
,2) .. CALC
(G
,3) =>
80 (CALC
(H
,1) .. CALC
(I
,2) => CALC
(J
,2)))));
82 FAILED
("CASE A1 : F WAS EVALUATED");
85 FAILED
("CASE A1 : G WAS EVALUATED");
88 FAILED
("CASE A1 : H WAS EVALUATED");
91 FAILED
("CASE A1 : I WAS EVALUATED");
94 FAILED
("CASE A1 : J WAS EVALUATED");
98 FAILED
("CASE A1 : EXCEPTION RAISED");
102 A2
: ARRAY(3 .. 4, 4 .. 3) OF T1
(2 .. 3, 1 .. 2);
104 CNTR
:= (CHOICE_INDEX
=> 0);
105 A2
:= (CALC
(B
,3) .. CALC
(C
,4) =>
106 (CALC
(D
,4) .. CALC
(E
,3) =>
107 (CALC
(F
,2) .. CALC
(G
,3) =>
108 (CALC
(H
,1) .. CALC
(I
,2) => CALC
(J
,2)))));
110 FAILED
("CASE A2 : F WAS EVALUATED");
113 FAILED
("CASE A2 : G WAS EVALUATED");
116 FAILED
("CASE A2 : H WAS EVALUATED");
119 FAILED
("CASE A2 : I WAS EVALUATED");
122 FAILED
("CASE A2 : J WAS EVALUATED");
126 FAILED
("CASE A2 : EXCEPTION RAISED");
134 B1
: ARRAY(2 .. 3, 1 .. 2) OF T1
(1 .. 2, 9 .. 10);
136 CNTR
:= (CHOICE_INDEX
=> 0);
137 B1
:= (2 .. 3 => (1 .. 2 =>
138 (CALC
(F
,1) .. CALC
(G
,2) =>
139 (CALC
(H
,9) .. CALC
(I
,10) => CALC
(J
,2)))));
141 FAILED
("CASE B1 : F NOT EVALUATED (C-B+1)*" &
145 FAILED
("CASE B1 : G NOT EVALUATED (C-B+1)*" &
149 FAILED
("CASE B1 : H NOT EVALUATED (C-B+1)*" &
153 FAILED
("CASE B1 : I NOT EVALUATED (C-B+1)*" &
156 IF CNTR
(J
) /= 16 THEN
157 FAILED
("CASE B1 : J NOT EVALUATED (C-B+1)*" &
158 "(E-D+1)*(G-F+1)*(I-H+1) TIMES");
162 FAILED
("CASE B1 : EXECEPTION RAISED");
166 B2
: ARRAY(2 .. 3, 1 .. 2) OF T1
(1 .. 2, 9 .. 10);
168 CNTR
:= (CHOICE_INDEX
=> 0);
169 B2
:= (CALC
(B
,2) .. CALC
(C
,3) =>
170 (CALC
(D
,1) .. CALC
(E
,2) =>
171 (CALC
(F
,1) .. CALC
(G
,2) =>
172 (CALC
(H
,9) .. CALC
(I
,10) => CALC
(J
,2)))));
174 FAILED
("CASE B2 : F NOT EVALUATED (C-B+1)*" &
178 FAILED
("CASE B2 : G NOT EVALUATED (C-B+1)*" &
182 FAILED
("CASE B2 : H NOT EVALUATED (C-B+1)*" &
186 FAILED
("CASE B2 : I NOT EVALUATED (C-B+1)*" &
189 IF CNTR
(J
) /= 16 THEN
190 FAILED
("CASE B2 : J NOT EVALUATED (C-B+1)*" &
191 "(E-D+1)*(G-F+1)*(I-H+1) TIMES");
195 FAILED
("CASE B2 : EXECEPTION RAISED");
199 B3
: ARRAY(2 .. 3, 1 .. 2) OF T1
(1 .. 2, 2 .. 1);
201 CNTR
:= (CHOICE_INDEX
=> 0);
202 B3
:= (2 .. 3 => (1 .. 2 =>
203 (CALC
(F
,1) .. CALC
(G
,2) =>
204 (CALC
(H
,2) .. CALC
(I
,1) => CALC
(J
,2)))));
206 FAILED
("CASE B3 : F NOT EVALUATED (C-B+1)*" &
210 FAILED
("CASE B3 : G NOT EVALUATED (C-B+1)*" &
214 FAILED
("CASE B3 : H NOT EVALUATED (C-B+1)*" &
218 FAILED
("CASE B3 : I NOT EVALUATED (C-B+1)*" &
222 FAILED
("CASE B3 : J NOT EVALUATED ZERO TIMES");
226 FAILED
("CASE B3 : EXECEPTION RAISED");
230 B4
: ARRAY(2 .. 3, 1 .. 2) OF T1
(2 .. 1, 1 .. 2);
232 CNTR
:= (CHOICE_INDEX
=> 0);
233 B4
:= (CALC
(B
,2) .. CALC
(C
,3) =>
234 (CALC
(D
,1) .. CALC
(E
,2) =>
235 (CALC
(F
,2) .. CALC
(G
,1) =>
236 (CALC
(H
,1) .. CALC
(I
,2) => CALC
(J
,2)))));
238 FAILED
("CASE B4 : F NOT EVALUATED (C-B+1)*" &
242 FAILED
("CASE B4 : G NOT EVALUATED (C-B+1)*" &
246 FAILED
("CASE B4 : H NOT EVALUATED (C-B+1)*" &
250 FAILED
("CASE B4 : I NOT EVALUATED (C-B+1)*" &
254 FAILED
("CASE B4 : J NOT EVALUATED ZERO TIMES");
258 FAILED
("CASE B4 : EXECEPTION RAISED");