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 -- CHECK THAT LENGTHS MUST MATCH IN ARRAY AND SLICE ASSIGNMENTS.
26 -- MORE SPECIFICALLY, TEST THAT ARRAY ASSIGNMENTS WITH MATCHING
27 -- LENGTHS DO NOT CAUSE CONSTRAINT_ERROR TO BE RAISED AND
28 -- ARE PERFORMED CORRECTLY.
29 -- (OVERLAPS BETWEEN THE OPERANDS OF THE ASSIGNMENT STATEMENT
30 -- ARE TREATED ELSEWHERE.)
32 -- DIVISION C : NON-NULL ARRAYS WHOSE LENGTHS ARE NOT DETERMINABLE
47 TEST
( "C52103K" , "CHECK THAT IN ARRAY ASSIGNMENTS AND IN SLICE" &
48 " ASSIGNMENTS THE LENGTHS MUST MATCH" );
51 -- IN THIS TEST WE CAN'T USE AGGREGATE ASSIGNMENT (EXCEPT WHEN
52 -- THE AGGREGATES ARE STRING LITERALS); THEREFORE:
54 -- (1) ARRAYS WILL BE INITIALIZED BY INDIVIDUAL ASSIGNMENTS;
55 -- (2) CAN'T USE NON-NULL CONSTANT ARRAYS.
58 -- WE ASSUME THAT IN AN ARRAY_TYPE_DEFINITION THE INDEX PORTION
59 -- AND THE COMPONENT_TYPE PORTION ARE FUNCTIONALLY ORTHOGONAL
60 -- ALSO AT THE IMPLEMENTATION LEVEL, I.E. THAT THE CORRECTNESS
61 -- OF THE ACCESSING MECHANISM FOR ARRAYS DOES NOT DEPEND ON
62 -- COMPONENT_TYPE. ACCORDINGLY WE ARE TESTING FOR SOME BUT
63 -- NOT ALL KINDS OF COMPONENT_TYPE. (COMPONENT_TYPES INCLUDED:
64 -- INTEGER , CHARACTER , BOOLEAN .)
67 -- CASES DISTINGUISHED: ( 8 SELECTED CASES ARE IMPLEMENTED)
69 -- ( THE SELECTIONS ARE 7 , 8 , 9 ,
70 -- AND PRECISELY 5 CASES FROM THE
71 -- TWO 5-CASE SERIES 2-3-4-5-6 AND
74 -- ( IN THE CURRENT DIVISION, THE 5
75 -- FLOATING SELECTIONS ARE 2-11-4-
76 -- -13-6 ; THUS THE 8 SELECTIONS ARE
77 -- 2-11-4-13-6-7-8-9 (IN THIS ORDER)
81 -- ( EACH DIVISION COMPRISES 3 FILES,
82 -- COVERING RESPECTIVELY THE FIRST
83 -- 3 , NEXT 2 , AND LAST 3 OF THE 8
84 -- SELECTIONS FOR THE DIVISION.)
87 -- (1) ARRAY OBJECTS DECLARED IN THE SAME DECLARATION.
88 -- (TWO-DIMENSIONAL; NON-CONSTRAINABLE TYPEMARK.)
90 -- (THIS WILL BE THE ONLY CASE INVOLVING OBJECTS DECLARED
91 -- IN THE SAME DECLARATION.)
94 -- (2) MULTIDIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS WERE
95 -- DEFINED WITHOUT EVER USING THE "BOX" COMPOUND SYMBOL.
96 -- (TWO-DIMENSIONAL ARRAYS OF INTEGERS.)
98 -- (SLICING IS ILLEGAL; SINCE IN THIS TEST WE ARE NEVER
100 -- (EXCEPT FOR ONE-DIMENSIONAL ARRAYS OF CHARACTERS;
102 -- AND WE ARE NOT USING CONVERSION-TO-CONSTRAINED-TYPEMARKS
103 -- (AS IN T1(ARR) , WHERE ARR IS AN ARRAY
104 -- OBJECT AND T1 IS AN ARRAY TYPEMARK SIMILAR
105 -- -- AS MORE PRECISELY SPECIFIED IN RM 4.6(B) --
106 -- TO THE TYPEMARK OF ARR ),
107 -- THE ARRAY ASSIGNMENT CANNOT INVOLVE ANY SLIDING,
108 -- AND THE TYPEMARKS ARE ESSENTIALLY THE SAME.)
111 -- (3) UNSLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
112 -- WERE DEFINED WITHOUT EVER USING THE "BOX" SYMBOL
113 -- AND FOR WHICH THE COMPONENT TYPE IS NOT 'CHARACTER' .
114 -- ((ONE-DIMENSIONAL) ARRAYS OF INTEGERS.)
116 -- (SINCE WE ARE NOT USING AGGREGATES
117 -- AND WE ARE NOT USING CONVERSION-TO-CONSTRAINED-TYPEMARKS,
118 -- THE ARRAY ASSIGNMENT CANNOT INVOLVE ANY SLIDING,
119 -- AND THE TYPEMARKS ARE ESSENTIALLY THE SAME.)
122 -- (4) SLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
123 -- WERE DEFINED WITHOUT EVER USING THE "BOX" SYMBOL
124 -- AND FOR WHICH THE COMPONENT TYPE IS NOT 'CHARACTER' .
125 -- ((ONE-DIMENSIONAL) ARRAYS OF INTEGERS.)
127 -- (THE ASSIGNMENT MAY REQUIRE SLIDING.)
129 -- (MOST SUBSEQUENT SUBCASES IN THIS TEST (OTHER THAN NULL
130 -- ASSIGNMENTS) WILL INVOLVE SLIDING; WE ASSUME THAT
131 -- SUBCASES WHICH WORK IN CONJUNCTION WITH SLIDING WORK
132 -- ALSO WHEN NO SLIDING IS INVOLVED.)
135 -- (5) UNSLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
136 -- WERE DEFINED WITHOUT EVER USING THE "BOX" SYMBOL
137 -- AND FOR WHICH THE COMPONENT TYPE IS 'CHARACTER' .
139 -- (STRING LITERALS ARE THE ONLY AGGREGATES WE ARE USING
140 -- IN THIS TEST. TO FORCE SLIDING, THE LOWER LIMIT IMPLIED
141 -- BY THE TYPEMARK WILL NOT BE 1 .)
144 -- (6) SLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
145 -- WERE DEFINED WITHOUT EVER USING THE "BOX" SYMBOL
146 -- AND FOR WHICH THE COMPONENT TYPE IS 'CHARACTER' .
149 -- (7) UNSLICED OBJECTS OF THE PREDEFINED TYPE 'STRING' (BY
153 -- (8) SLICED OBJECTS OF THE PREDEFINED TYPE 'STRING' , WITH
157 -- (9) SLICED OBJECTS OF THE PREDEFINED TYPE 'STRING' (BY
161 -- (-) CONSTRAINABLE TYPES: ONLY SUBTESTS 2, 3, 4, 5, 6
162 -- WILL BE REPLICATED -- AS SUBTESTS 10, 11, 12, 13, 14 .
165 -- (10) MULTIDIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS WERE
166 -- DEFINED USING THE "BOX" COMPOUND SYMBOL.
167 -- (TWO-DIMENSIONAL ARRAYS OF INTEGERS.)
170 -- (11) UNSLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
171 -- WERE DEFINED USING THE "BOX" SYMBOL
172 -- AND FOR WHICH THE COMPONENT TYPE IS NOT 'CHARACTER' .
173 -- ((ONE-DIMENSIONAL) ARRAYS OF INTEGERS.)
176 -- (12) SLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
177 -- WERE DEFINED USING THE "BOX" SYMBOL
178 -- AND FOR WHICH THE COMPONENT TYPE IS NOT 'CHARACTER' .
179 -- ((ONE-DIMENSIONAL) ARRAYS OF BOOLEANS.)
182 -- (13) UNSLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
183 -- WERE DEFINED USING THE "BOX" SYMBOL
184 -- AND FOR WHICH THE COMPONENT TYPE IS 'CHARACTER' .
186 -- (STRING LITERALS ARE THE ONLY AGGREGATES WE ARE USING
187 -- IN THIS TEST. TO FORCE SLIDING, THE LOWER LIMIT IMPLIED
188 -- BY THE TYPEMARK WILL NOT BE 1 .)
191 -- (14) SLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
192 -- WERE DEFINED USING THE "BOX" SYMBOL
193 -- AND FOR WHICH THE COMPONENT TYPE IS 'CHARACTER' .
197 -- (-) SPECIAL CASES: NULL ARRAYS....... TREATED IN DIVISION B.
198 -- SUPERLONG ARRAYS.. (TREATED FOR DYNAMIC
200 -- DIVISIONS C AND D .)
203 -- (-) THE DYNAMIC-ARRAY COUNTERPARTS OF THESE TESTS ARE IN DI-
204 -- VISIONS C (FOR NON-NULL ARRAYS) AND D (FOR NULL ARRAYS).
209 -------------------------------------------------------------------
211 -- (2) MULTIDIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS WERE
212 -- DEFINED WITHOUT EVER USING THE "BOX" COMPOUND SYMBOL.
213 -- (TWO-DIMENSIONAL ARRAYS OF INTEGERS.)
218 INTEGER RANGE IDENT_INT
(1)..IDENT_INT
(5) ,
219 INTEGER RANGE IDENT_INT
(0)..IDENT_INT
(7)
222 SUBTYPE TA22
IS TA21
;
229 -- INITIALIZATION OF RHS ARRAY:
231 FOR I
IN IDENT_INT
(1)..IDENT_INT
(5) LOOP
233 FOR J
IN IDENT_INT
(0)..IDENT_INT
(7) LOOP
234 ARR21
( I
, J
) := I
* I
* J
;
244 -- CHECKING THE VALUES AFTER THE ARRAY ASSIGNMENT:
246 FOR I
IN IDENT_INT
(1)..IDENT_INT
(5) LOOP
248 FOR J
IN IDENT_INT
(0)..IDENT_INT
(7) LOOP
250 IF ARR22
( I
, J
) /= ( I
-0 ) * ( I
-0 ) * ( J
-0 )
252 FAILED
( "ARRAY ASSIGNMENT NOT CORRECT" );
263 FAILED
( "EXCEPTION RAISED - SUBTEST 2" );
268 -------------------------------------------------------------------
270 -- (11) UNSLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
271 -- WERE DEFINED USING THE "BOX" SYMBOL
272 -- AND FOR WHICH THE COMPONENT TYPE IS NOT 'CHARACTER' .
273 -- ((ONE-DIMENSIONAL) ARRAYS OF INTEGERS.)
277 TYPE TABOX1
IS ARRAY( INTEGER RANGE <> ) OF INTEGER ;
279 SUBTYPE TABOX11
IS TABOX1
( IDENT_INT
(1)..IDENT_INT
(5) ) ;
282 ARRX12
: TABOX1
( IDENT_INT
(5)..IDENT_INT
(9) );
286 -- INITIALIZATION OF RHS ARRAY:
288 FOR I
IN IDENT_INT
(1)..IDENT_INT
(5) LOOP
289 ARRX11
( I
) := I
* I
;
297 -- CHECKING THE VALUES AFTER THE ARRAY ASSIGNMENT:
299 FOR I
IN IDENT_INT
(5)..IDENT_INT
(9) LOOP
301 IF ARRX12
( I
) /= ( I
-4 ) * ( I
-4 )
303 FAILED
( "ARRAY ASSIGNMENT NOT CORRECT (11)" );
312 FAILED
( "EXCEPTION RAISED - SUBTEST 11" );
317 -------------------------------------------------------------------
319 -- (4) SLICED ONE-DIMENSIONAL ARRAY OBJECTS WHOSE TYPEMARKS
320 -- WERE DEFINED WITHOUT EVER USING THE "BOX" SYMBOL
321 -- AND FOR WHICH THE COMPONENT TYPE IS NOT 'CHARACTER' .
322 -- ((ONE-DIMENSIONAL) ARRAYS OF BOOLEANS.)
327 INTEGER RANGE IDENT_INT
(1)..IDENT_INT
(5)
330 SUBTYPE TA41
IS TA42
;
337 -- INITIALIZATION OF RHS ARRAY:
339 FOR I
IN IDENT_INT
(1)..IDENT_INT
(5) LOOP
340 ARR41
( I
) := FALSE ; -- VALUES WILL BE: F T F F T
345 ARR41
(5) := TRUE ; -- RHS VALUES ARE: F T F F T
348 -- INITIALIZATION OF UNUSED COMPONENT OF LHS ARRAY:
355 ARR42
( IDENT_INT
(2)..IDENT_INT
(5) ) :=
357 IDENT_INT
(1)..IDENT_INT
(4) ) ;
360 -- CHECKING THE VALUES AFTER THE SLICE ASSIGNMENT:
362 FOR I
IN IDENT_INT
(2)..IDENT_INT
(5) LOOP
364 IF ARR42
( I
) /= FALSE AND I
/= 3
366 FAILED
( "SLICE ASSIGNMENT NOT CORRECT (VALUES)" );
367 ELSIF ARR42
( I
) /= TRUE AND I
= 3
369 FAILED
( "SLICE ASSIGNMENT NOT CORRECT (VALUES)" );
374 IF ARR42
( 1 ) /= TRUE
376 FAILED
( "SLICE ASSIGNMENT NOT CORRECT (SLIDING)" );
382 FAILED
( "EXCEPTION RAISED - SUBTEST 4" );
387 -------------------------------------------------------------------