1-- C45262C.ADA
2
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.
15--
16--                                    DISCLAIMER
17--
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 ORDERING COMPARISONS YIELD CORRECT RESULTS FOR
26-- ONE-DIMENSIONAL DISCRETE ARRAY TYPES.  THIS TEST CHECKS ARRAYS OF
27-- AN ENUMERATION TYPE.
28
29-- JWC 8/19/85
30-- JRK 6/24/86   FIXED SPELLING IN FAILURE MESSAGE.
31
32WITH REPORT; USE REPORT;
33
34PROCEDURE C45262C IS
35BEGIN
36     TEST ("C45262C", "ORDERING COMPARISONS OF ONE-DIMENSIONAL " &
37                      "DISCRETE ARRAY TYPES - ENUMERATED COMPONENTS");
38
39     DECLARE
40
41          SUBTYPE SUBINT IS INTEGER RANGE 0 .. 5;
42          TYPE ENUM IS (E0, E1);
43          TYPE ARR IS ARRAY( SUBINT RANGE <> ) OF ENUM;
44          ARR1 : ARR(1 .. IDENT_INT(0));
45          ARR2 : ARR(2 .. IDENT_INT(0));
46          ARR3 : ARR(1 .. IDENT_INT(1)) := (IDENT_INT(1) => E0);
47          ARR4 : ARR(0 .. IDENT_INT(0)) := (IDENT_INT(0) => E0);
48          ARR5 : ARR(0 .. IDENT_INT(0)) := (IDENT_INT(0) => E1);
49          ARR6 : ARR(1 .. IDENT_INT(5)) := (1 .. IDENT_INT(5) => E0);
50          ARR7 : ARR(0 .. 4) := (0 .. 3 => E0, 4 => E1);
51          ARR8 : ARR(0 .. IDENT_INT(4)) := (0 .. IDENT_INT(4) => E0);
52          ARR9 : ARR(0 .. IDENT_INT(3)) := (0 .. IDENT_INT(3) => E0);
53          ARRA : ARR(0 .. IDENT_INT(3)) := (0 .. IDENT_INT(3) => E1);
54
55     BEGIN
56          IF ARR1 < ARR2 THEN
57               FAILED ("NULL ARRAYS ARR1 AND ARR2 NOT EQUAL - <");
58          END IF;
59
60          IF NOT (ARR1 <= ARR2) THEN
61               FAILED ("NULL ARRAYS ARR1 AND ARR2 NOT EQUAL - <=");
62          END IF;
63
64          IF ARR1 > ARR2 THEN
65               FAILED ("NULL ARRAYS ARR1 AND ARR2 NOT EQUAL - >");
66          END IF;
67
68          IF NOT ( ">=" (ARR1, ARR2) ) THEN
69               FAILED ("NULL ARRAYS ARR1 AND ARR2 NOT EQUAL - >=");
70          END IF;
71
72          IF ARR3 < ARR1 THEN
73               FAILED ("NON-NULL ARRAY ARR3 LESS THAN NULL ARR1");
74          END IF;
75
76          IF ARR3 <= ARR1 THEN
77               FAILED ("NON-NULL ARRAY ARR3 LESS THAN EQUAL NULL ARR1");
78          END IF;
79
80          IF NOT ( ">" (ARR3, ARR1) ) THEN
81               FAILED ("NON-NULL ARRAY ARR3 NOT GREATER THAN NULL " &
82                       "ARR1");
83          END IF;
84
85          IF NOT (ARR3 >= ARR1) THEN
86               FAILED ("NON-NULL ARRAY ARR3 NOT GREATER THAN EQUAL " &
87                       "NULL ARR1");
88          END IF;
89
90          IF ARR3 < ARR4 THEN
91               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
92                       "COMPONENTS EQUAL - <");
93          END IF;
94
95          IF NOT ( "<=" (ARR3, ARR4) ) THEN
96               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
97                       "COMPONENTS EQUAL - <=");
98          END IF;
99
100          IF ARR3 > ARR4 THEN
101               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
102                       "COMPONENTS EQUAL - >");
103          END IF;
104
105          IF NOT (ARR3 >= ARR4) THEN
106               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
107                       "COMPONENTS EQUAL - >=");
108          END IF;
109
110          IF NOT ( "<" (ARR3, ARR5) ) THEN
111               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
112                       "COMPONENTS NOT EQUAL - <");
113          END IF;
114
115          IF NOT (ARR3 <= ARR5) THEN
116               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
117                       "COMPONENTS NOT EQUAL - <=");
118          END IF;
119
120          IF ARR3 > ARR5 THEN
121               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
122                       "COMPONENTS NOT EQUAL - >");
123          END IF;
124
125          IF ARR3 >= ARR5 THEN
126               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
127                       "COMPONENTS NOT EQUAL - >=");
128          END IF;
129
130          IF NOT (ARR6 < ARR7) THEN
131               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
132                       "MULTIPLE COMPONENTS, COMPONENTS NOT EQUAL - <");
133          END IF;
134
135          IF NOT (ARR6 <= ARR7) THEN
136               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
137                       "MULTIPLE COMPONENTS, COMPONENTS NOT EQUAL - " &
138                       "<=");
139          END IF;
140
141          IF ARR6 > ARR7 THEN
142               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
143                       "MULTIPLE COMPONENTS, COMPONENTS NOT EQUAL - >");
144          END IF;
145
146          IF ">=" (LEFT => ARR6, RIGHT => ARR7) THEN
147               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
148                       "MULTIPLE COMPONENTS, COMPONENTS NOT EQUAL - " &
149                       ">=");
150          END IF;
151
152          IF ARR6 < ARR8 THEN
153               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
154                       "MULTIPLE COMPONENTS, COMPONENTS EQUAL - <");
155          END IF;
156
157          IF NOT (ARR6 <= ARR8) THEN
158               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
159                       "MULTIPLE COMPONENTS, COMPONENTS EQUAL - <=");
160          END IF;
161
162          IF ">" (RIGHT => ARR8, LEFT => ARR6) THEN
163               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
164                       "MULTIPLE COMPONENTS, COMPONENTS EQUAL - >");
165          END IF;
166
167          IF NOT (ARR6 >= ARR8) THEN
168               FAILED ("DIFFERENT BOUNDS, SAME NUMBER OF COMPONENTS, " &
169                       "MULTIPLE COMPONENTS, COMPONENTS EQUAL - >=");
170          END IF;
171
172          IF ARR8 < ARR9 THEN
173               FAILED ("DIFFERENT NUMBER OF COMPONENTS, " &
174                       "COMPONENTS EQUAL - <");
175          END IF;
176
177          IF ARR8 <= ARR9 THEN
178               FAILED ("DIFFERENT NUMBER OF COMPONENTS, " &
179                       "COMPONENTS EQUAL - <=");
180          END IF;
181
182          IF NOT (ARR8 > ARR9) THEN
183               FAILED ("DIFFERENT NUMBER OF COMPONENTS, " &
184                       "COMPONENTS EQUAL - >");
185          END IF;
186
187          IF NOT (ARR8 >= ARR9) THEN
188               FAILED ("DIFFERENT NUMBER OF COMPONENTS, " &
189                       "COMPONENTS EQUAL - >=");
190          END IF;
191
192          IF NOT (ARR8 < ARRA) THEN
193               FAILED ("DIFFERENT NUMBER OF COMPONENTS, " &
194                       "COMPONENTS NOT EQUAL - <");
195          END IF;
196
197          IF NOT (ARR8 <= ARRA) THEN
198               FAILED ("DIFFERENT NUMBER OF COMPONENTS, " &
199                       "COMPONENTS NOT EQUAL - <=");
200          END IF;
201
202          IF ARR8 > ARRA THEN
203               FAILED ("DIFFERENT NUMBER OF COMPONENTS, " &
204                       "COMPONENTS NOT EQUAL - >");
205          END IF;
206
207          IF ARR8 >= ARRA THEN
208               FAILED ("DIFFERENT NUMBER OF COMPONENTS, " &
209                       "COMPONENTS NOT EQUAL - >=");
210          END IF;
211
212     END;
213
214     RESULT;
215
216END C45262C;
217