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 MEMBERSHIP TESTS YIELD THE CORRECT RESULTS FOR ONE
26 -- DIMENSIONAL AND MULTI-DIMENSIONAL ARRAY TYPES WHEN:
27 -- A) THE SUBTYPE INDICATION DENOTES AN UNCONSTRAINED ARRAY.
28 -- B) THE SUBTYPE INDICATION DENOTES A CONSTRAINED ARRAY.
32 WITH REPORT
; USE REPORT
;
36 TYPE KEY
IS LIMITED PRIVATE;
38 TYPE KEY
IS NEW NATURAL;
41 SUBTYPE INT
IS INTEGER RANGE 1 .. 20;
42 TYPE ARRAY_TYPE_1
IS ARRAY (INT
RANGE <>) OF INTEGER;
43 TYPE ARRAY_TYPE_2
IS ARRAY (INT
RANGE <>, INT
RANGE <>) OF INTEGER;
44 TYPE ARRAY_TYPE_3
IS ARRAY (INT
RANGE <>, INT
RANGE <>,
45 INT
RANGE <>) OF INTEGER;
46 TYPE ARRAY_TYPE_4
IS ARRAY (INT
RANGE <>) OF P
.KEY
;
47 TYPE ARRAY_TYPE_5
IS ARRAY (INT
RANGE <>, INT
RANGE <>) OF P
.KEY
;
49 SUBTYPE ARRAY_SUB1
IS ARRAY_TYPE_1
;
50 SUBTYPE ARRAY_SUB2
IS ARRAY_TYPE_2
;
51 SUBTYPE ARRAY_SUB3
IS ARRAY_TYPE_3
;
52 SUBTYPE ARRAY_SUB4
IS ARRAY_TYPE_4
;
53 SUBTYPE ARRAY_SUB5
IS ARRAY_TYPE_5
;
54 SUBTYPE CON_ARRAY1
IS ARRAY_TYPE_1
(1..5);
55 SUBTYPE CON_ARRAY2
IS ARRAY_TYPE_2
(1..2, 1..2);
56 SUBTYPE CON_ARRAY3
IS ARRAY_TYPE_3
(1..2, 1..3, 1..4);
57 SUBTYPE CON_ARRAY4
IS ARRAY_TYPE_4
(1..4);
58 SUBTYPE CON_ARRAY5
IS ARRAY_TYPE_5
(1..2, 1..3);
59 SUBTYPE NULL_ARRAY1
IS ARRAY_TYPE_1
(2 .. 1);
61 ARRAY1
: ARRAY_TYPE_1
(1..10);
62 ARRAY2
: ARRAY_SUB1
(11..20);
63 ARRAY3
: ARRAY_TYPE_2
(1..4, 1..3);
64 ARRAY4
: ARRAY_SUB2
(5..7, 5..8);
65 ARRAY5
: ARRAY_TYPE_3
(1..2, 1..3, 1..4);
66 ARRAY6
: ARRAY_SUB3
(1..3, 1..2, 1..4);
67 NULL_ARRAY_1
: ARRAY_TYPE_1
(3..2);
68 NULL_ARRAY_2
: ARRAY_SUB1
(2..1);
69 ARRAY7
: ARRAY_TYPE_1
(1..10) := (1..10 => 7);
70 ARRAY8
: CON_ARRAY1
:= (1..5 => 8);
71 ARRAY9
: ARRAY_TYPE_2
(1..10, 1..10) := (1..10 => (1..10 => 9));
72 ARRAY10
: CON_ARRAY2
:= (1..2 => (1..2 => 10));
73 ARRAY11
: ARRAY_TYPE_3
(1..10, 1..10, 1..10) := (1..10 =>
74 (1..10 => (1..10 => 11)));
75 ARRAY12
: CON_ARRAY3
:= (1..2 => (1..3 => (1..4 => 12)));
76 ARRAY13
: ARRAY_TYPE_4
(1..2);
77 ARRAY14
: ARRAY_SUB4
(1..5);
78 ARRAY15
: ARRAY_TYPE_4
(1..6);
80 ARRAY17
: ARRAY_TYPE_5
(1..3, 1..2);
81 ARRAY18
: ARRAY_SUB5
(1..2, 1..3);
82 ARRAY19
: ARRAY_TYPE_5
(1..4, 1..3);
86 TEST
("C45265A", "CHECK THAT MEMBERSHIP TESTS YIELD THE CORRECT " &
87 "RESULTS FOR ONE DIMENSIONAL AND MULTI-" &
88 "DIMENSIONAL ARRAY TYPES");
90 ARRAY1
:= (ARRAY1
'RANGE => 1);
91 ARRAY2
:= (ARRAY2
'RANGE => 2);
92 ARRAY3
:= (ARRAY3
'RANGE(1) => (ARRAY3
'RANGE(2) => 3));
93 ARRAY4
:= (ARRAY4
'RANGE(1) => (ARRAY4
'RANGE(2) => 4));
94 ARRAY5
:= (ARRAY5
'RANGE(1) => (ARRAY5
'RANGE(2) =>
95 (ARRAY5
'RANGE(3) => 5)));
96 ARRAY6
:= (ARRAY6
'RANGE(1) => (ARRAY6
'RANGE(2) =>
97 (ARRAY6
'RANGE(3) => 6)));
99 IF ARRAY1
IN ARRAY_SUB1
THEN
102 FAILED
("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 1");
104 IF ARRAY2
NOT IN ARRAY_SUB1
THEN
105 FAILED
("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 2");
108 IF ARRAY3
IN ARRAY_SUB2
THEN
111 FAILED
("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 3");
113 IF ARRAY4
NOT IN ARRAY_SUB2
THEN
114 FAILED
("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 4");
117 IF ARRAY5
IN ARRAY_SUB3
THEN
120 FAILED
("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 5");
122 IF ARRAY6
NOT IN ARRAY_SUB3
THEN
123 FAILED
("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 6");
126 IF NULL_ARRAY_1
IN ARRAY_SUB1
THEN
129 FAILED
("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 7");
131 IF NULL_ARRAY_2
NOT IN ARRAY_SUB1
THEN
132 FAILED
("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 8");
135 IF ARRAY7
IN CON_ARRAY1
THEN
136 FAILED
("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 9");
138 IF ARRAY8
NOT IN CON_ARRAY1
THEN
139 FAILED
("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 10");
142 IF ARRAY9
IN CON_ARRAY2
THEN
143 FAILED
("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 11");
145 IF ARRAY10
NOT IN CON_ARRAY2
THEN
146 FAILED
("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 12");
149 IF ARRAY11
IN CON_ARRAY3
THEN
150 FAILED
("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 13");
152 IF ARRAY12
NOT IN CON_ARRAY3
THEN
153 FAILED
("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 14");
156 IF ARRAY13
IN ARRAY_SUB4
THEN
159 FAILED
("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 15");
161 IF ARRAY14
NOT IN ARRAY_SUB4
THEN
162 FAILED
("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 16");
165 IF ARRAY15
IN CON_ARRAY4
THEN
166 FAILED
("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 17");
168 IF ARRAY16
NOT IN CON_ARRAY4
THEN
169 FAILED
("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 18");
172 IF ARRAY17
IN ARRAY_SUB5
THEN
175 FAILED
("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 19");
177 IF ARRAY18
NOT IN ARRAY_SUB5
THEN
178 FAILED
("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 20");
181 IF ARRAY19
IN CON_ARRAY5
THEN
182 FAILED
("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 21");
184 IF ARRAY20
NOT IN CON_ARRAY5
THEN
185 FAILED
("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 22");
188 IF NULL_ARRAY_1
IN NULL_ARRAY1
THEN
189 FAILED
("INCORRECT RESULTS FOR NULL ARRAYS - 23");
191 IF NULL_ARRAY_2
NOT IN NULL_ARRAY1
THEN
192 FAILED
("INCORRECT RESULTS FOR NULL ARRAYS - 24");