2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / ada / acats / tests / c4 / c45265a.ada
blob7111243585e2fea65a0f4c8d157c5394ac338539
1 -- C45265A.ADA
3 -- Grant of Unlimited Rights
4 --
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
14 -- to do so.
16 -- DISCLAIMER
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.
24 --*
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.
30 -- TBN 7/22/86
32 WITH REPORT; USE REPORT;
33 PROCEDURE C45265A IS
35 PACKAGE P IS
36 TYPE KEY IS LIMITED PRIVATE;
37 PRIVATE
38 TYPE KEY IS NEW NATURAL;
39 END P;
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);
79 ARRAY16 : CON_ARRAY4;
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);
83 ARRAY20 : CON_ARRAY5;
85 BEGIN
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
100 NULL;
101 ELSE
102 FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 1");
103 END IF;
104 IF ARRAY2 NOT IN ARRAY_SUB1 THEN
105 FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 2");
106 END IF;
108 IF ARRAY3 IN ARRAY_SUB2 THEN
109 NULL;
110 ELSE
111 FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 3");
112 END IF;
113 IF ARRAY4 NOT IN ARRAY_SUB2 THEN
114 FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 4");
115 END IF;
117 IF ARRAY5 IN ARRAY_SUB3 THEN
118 NULL;
119 ELSE
120 FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 5");
121 END IF;
122 IF ARRAY6 NOT IN ARRAY_SUB3 THEN
123 FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 6");
124 END IF;
126 IF NULL_ARRAY_1 IN ARRAY_SUB1 THEN
127 NULL;
128 ELSE
129 FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 7");
130 END IF;
131 IF NULL_ARRAY_2 NOT IN ARRAY_SUB1 THEN
132 FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 8");
133 END IF;
135 IF ARRAY7 IN CON_ARRAY1 THEN
136 FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 9");
137 END IF;
138 IF ARRAY8 NOT IN CON_ARRAY1 THEN
139 FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 10");
140 END IF;
142 IF ARRAY9 IN CON_ARRAY2 THEN
143 FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 11");
144 END IF;
145 IF ARRAY10 NOT IN CON_ARRAY2 THEN
146 FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 12");
147 END IF;
149 IF ARRAY11 IN CON_ARRAY3 THEN
150 FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 13");
151 END IF;
152 IF ARRAY12 NOT IN CON_ARRAY3 THEN
153 FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 14");
154 END IF;
156 IF ARRAY13 IN ARRAY_SUB4 THEN
157 NULL;
158 ELSE
159 FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 15");
160 END IF;
161 IF ARRAY14 NOT IN ARRAY_SUB4 THEN
162 FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 16");
163 END IF;
165 IF ARRAY15 IN CON_ARRAY4 THEN
166 FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 17");
167 END IF;
168 IF ARRAY16 NOT IN CON_ARRAY4 THEN
169 FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 18");
170 END IF;
172 IF ARRAY17 IN ARRAY_SUB5 THEN
173 NULL;
174 ELSE
175 FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 19");
176 END IF;
177 IF ARRAY18 NOT IN ARRAY_SUB5 THEN
178 FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 20");
179 END IF;
181 IF ARRAY19 IN CON_ARRAY5 THEN
182 FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 21");
183 END IF;
184 IF ARRAY20 NOT IN CON_ARRAY5 THEN
185 FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 22");
186 END IF;
188 IF NULL_ARRAY_1 IN NULL_ARRAY1 THEN
189 FAILED ("INCORRECT RESULTS FOR NULL ARRAYS - 23");
190 END IF;
191 IF NULL_ARRAY_2 NOT IN NULL_ARRAY1 THEN
192 FAILED ("INCORRECT RESULTS FOR NULL ARRAYS - 24");
193 END IF;
195 RESULT;
196 END C45265A;