2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / ada / acats / tests / c9 / c96006a.ada
blob0f6448bd2f953b97446199507561c670f12366a1
1 -- C96006A.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 FOR THE PACKAGE CALENDAR, THE RELATIONAL OPERATORS WORK
26 -- CORRECTLY FOR OPERANDS OF TYPE TIME AND TYPE DURATION. PARTICULARLY,
27 -- (A) RELATIONS BASED ON YEARS.
28 -- (B) RELATIONS BASED ON MONTH.
29 -- (C) RELATIONS BASED ON SECONDS.
30 -- (D) RELATIONS AT EXTREMES OF THE PERMITTED RANGE OF TIME.
32 -- CPP 8/16/84
34 WITH CALENDAR; USE CALENDAR;
35 WITH REPORT; USE REPORT;
36 PROCEDURE C96006A IS
38 BEGIN
39 TEST ("C96006A", "CHECK THAT RELATIONAL OPERATORS WORK " &
40 "CORRECTLY IN THE PACKAGE CALENDAR");
42 --------------------------------------------
44 DECLARE -- (A)
45 -- RELATIONS BASED ON YEARS.
46 NOW, LATER : TIME;
47 BEGIN -- (A)
48 NOW := TIME_OF (1984, 8, 12, 500.0);
49 LATER := TIME_OF (1985, 8, 12, 500.0);
51 IF NOW < LATER THEN
52 COMMENT ("< OPERATOR OK - (A)");
53 ELSE
54 FAILED ("< OPERATOR INCORRECT - (A)");
55 END IF;
57 IF NOW <= LATER THEN
58 COMMENT ("<= OPERATOR OK - (A)");
59 ELSE
60 FAILED ("<= OPERATOR INCORRECT - (A)");
61 END IF;
63 IF NOW <= NOW THEN
64 COMMENT ("<= OPERATOR OK - (A)2");
65 ELSE
66 FAILED ("<= OPERATOR INCORRECT - (A)2");
67 END IF;
69 IF LATER > NOW THEN
70 COMMENT ("> OPERATOR OK - (A)");
71 ELSE
72 FAILED ("> OPERATOR INCORRECT - (A)");
73 END IF;
75 IF LATER >= NOW THEN
76 COMMENT (">= OPERATOR OK - (A)");
77 ELSE
78 FAILED (">= OPERATOR INCORRECT - (A)");
79 END IF;
81 IF LATER >= LATER THEN
82 COMMENT (">= OPERATOR OK - (A)2");
83 ELSE
84 FAILED (">= OPERATOR INCORRECT - (A)2");
85 END IF;
87 END; -- (A)
89 --------------------------------------------
91 DECLARE -- (B)
92 -- RELATIONS BASED ON MONTH.
93 NOW, LATER : TIME;
94 BEGIN -- (B)
95 NOW := TIME_OF (1984, 8, 12, 500.0);
96 LATER := TIME_OF (1984, 9, 12, 500.0);
98 IF NOW < LATER THEN
99 COMMENT ("< OPERATOR OK - (B)");
100 ELSE
101 FAILED ("< OPERATOR INCORRECT - (B)");
102 END IF;
104 IF NOW <= LATER THEN
105 COMMENT ("<= OPERATOR OK - (B)");
106 ELSE
107 FAILED ("<= OPERATOR INCORRECT - (B)");
108 END IF;
110 IF NOW <= NOW THEN
111 COMMENT ("<= OPERATOR OK - (B)2");
112 ELSE
113 FAILED ("<= OPERATOR INCORRECT - (B)2");
114 END IF;
116 IF LATER > NOW THEN
117 COMMENT ("> OPERATOR OK - (B)");
118 ELSE
119 FAILED ("> OPERATOR INCORRECT - (B)");
120 END IF;
122 IF LATER >= NOW THEN
123 COMMENT (">= OPERATOR OK - (B)");
124 ELSE
125 FAILED (">= OPERATOR INCORRECT - (B)");
126 END IF;
128 IF LATER >= LATER THEN
129 COMMENT (">= OPERATOR OK - (B)2");
130 ELSE
131 FAILED (">= OPERATOR INCORRECT - (B)2");
132 END IF;
134 IF NOW = NOW THEN
135 COMMENT ("= OPERATOR OK - (B)");
136 ELSE
137 FAILED ("= OPERATOR INCORRECT - (B)");
138 END IF;
140 IF LATER /= NOW THEN
141 COMMENT ("/= OPERATOR OK - (B)");
142 ELSE
143 FAILED ("/= OPERATOR INCORRECT - (B)");
144 END IF;
146 END; -- (B)
148 --------------------------------------------
150 DECLARE -- (C)
151 -- RELATIONS BASED ON SECONDS.
152 NOW, LATER : TIME;
153 INCREMENT : DURATION := 99.9;
154 BEGIN -- (C)
155 NOW := TIME_OF (1984, 8, 12, 500.0);
156 LATER := NOW + INCREMENT;
158 IF NOW < LATER THEN
159 COMMENT ("< OPERATOR OK - (C)");
160 ELSE
161 FAILED ("< OPERATOR INCORRECT - (C)");
162 END IF;
164 IF NOW <= LATER THEN
165 COMMENT ("<= OPERATOR OK - (C)");
166 ELSE
167 FAILED ("<= OPERATOR INCORRECT - (C)");
168 END IF;
170 IF NOW <= NOW THEN
171 COMMENT ("<= OPERATOR OK - (C)2");
172 ELSE
173 FAILED ("<= OPERATOR INCORRECT - (C)2");
174 END IF;
176 IF LATER > NOW THEN
177 COMMENT ("> OPERATOR OK - (C)");
178 ELSE
179 FAILED ("> OPERATOR INCORRECT - (C)");
180 END IF;
182 IF LATER >= NOW THEN
183 COMMENT (">= OPERATOR OK - (C)");
184 ELSE
185 FAILED (">= OPERATOR INCORRECT - (C)");
186 END IF;
188 IF LATER >= LATER THEN
189 COMMENT (">= OPERATOR OK - (C)2");
190 ELSE
191 FAILED (">= OPERATOR INCORRECT - (C)2");
192 END IF;
194 IF LATER = LATER THEN
195 COMMENT ("= OPERATOR OK - (C)");
196 ELSE
197 FAILED ("= OPERATOR INCORRECT - (C)");
198 END IF;
200 IF NOW /= LATER THEN
201 COMMENT ("/= OPERATOR OK - (C)");
202 ELSE
203 FAILED ("/= OPERATOR INCORRECT - (C)");
204 END IF;
206 IF NOW < NOW THEN
207 FAILED ("NOW < NOW INCORRECT - (C)");
208 ELSIF NOW /= NOW THEN
209 FAILED ("NOW = NOW INCORRECT - (C)");
210 ELSIF LATER < NOW THEN
211 FAILED ("LATER < NOW INCORRECT - (C)");
212 ELSIF LATER <= NOW THEN
213 FAILED ("LATER <= NOW INCORRECT - (C)");
214 ELSIF LATER = NOW THEN
215 FAILED ("NOW = LATER INCORRECT - (C)");
216 ELSIF NOW > LATER THEN
217 FAILED ("NOW > LATER INCORRECT - (C)");
218 ELSIF NOW > NOW THEN
219 FAILED ("NOW > NOW INCORRECT - (C)");
220 ELSIF NOW >= LATER THEN
221 FAILED ("NOW >= LATER INCORRECT - (C)");
222 ELSIF NOW = LATER THEN
223 FAILED ("NOW = LATER INCORRECT - (C)");
224 END IF;
226 END; -- (C)
228 --------------------------------------------
230 DECLARE -- (D)
232 NOW, WAY_BACK_THEN : TIME;
234 BEGIN -- (D)
236 NOW := TIME_OF (2099, 12, 31);
237 WAY_BACK_THEN := TIME_OF (1901, 1, 1);
239 BEGIN
240 IF NOW < WAY_BACK_THEN THEN
241 FAILED ("TEST < AT EXTREMES INCORRECT - (D)");
242 END IF;
243 EXCEPTION
244 WHEN OTHERS =>
245 FAILED ("< AT EXTREMES RAISED EXCEPTION - (D)");
246 END;
248 BEGIN
249 IF NOW <= WAY_BACK_THEN THEN
250 FAILED ("TEST <= AT EXTREMES INCORRECT - (D)");
251 END IF;
252 EXCEPTION
253 WHEN OTHERS =>
254 FAILED ("<= AT EXTREMES RAISED EXCEPTION - (D)");
255 END;
257 BEGIN
258 IF WAY_BACK_THEN > NOW THEN
259 FAILED ("TEST > AT EXTREMES INCORRECT - (D)");
260 END IF;
261 EXCEPTION
262 WHEN OTHERS =>
263 FAILED ("> AT EXTREMES RAISED EXCEPTION - (D)");
264 END;
266 BEGIN
267 IF WAY_BACK_THEN >= NOW THEN
268 FAILED ("TEST >= AT EXTREMES INCORRECT - (D)");
269 END IF;
270 EXCEPTION
271 WHEN OTHERS =>
272 FAILED (">= AT EXTREMES RAISED EXCEPTION - (D)");
273 END;
275 BEGIN
276 IF WAY_BACK_THEN /= WAY_BACK_THEN THEN
277 FAILED ("TEST /= AT EXTREMES INCORRECT - (D)");
278 END IF;
279 EXCEPTION
280 WHEN OTHERS =>
281 FAILED ("/= AT EXTREMES RAISED EXCEPTION - (D)");
282 END;
284 BEGIN
285 IF NOW = WAY_BACK_THEN THEN
286 FAILED ("TEST = AT EXTREMES INCORRECT - (D)");
287 END IF;
288 EXCEPTION
289 WHEN OTHERS =>
290 FAILED ("= AT EXTREMES RAISED EXCEPTION - (D)");
291 END;
293 END; -- (D)
295 --------------------------------------------
297 RESULT;
298 END C96006A;