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 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.
34 WITH CALENDAR
; USE CALENDAR
;
35 WITH REPORT
; USE REPORT
;
39 TEST
("C96006A", "CHECK THAT RELATIONAL OPERATORS WORK " &
40 "CORRECTLY IN THE PACKAGE CALENDAR");
42 --------------------------------------------
45 -- RELATIONS BASED ON YEARS.
48 NOW
:= TIME_OF
(1984, 8, 12, 500.0);
49 LATER
:= TIME_OF
(1985, 8, 12, 500.0);
52 COMMENT
("< OPERATOR OK - (A)");
54 FAILED
("< OPERATOR INCORRECT - (A)");
58 COMMENT
("<= OPERATOR OK - (A)");
60 FAILED
("<= OPERATOR INCORRECT - (A)");
64 COMMENT
("<= OPERATOR OK - (A)2");
66 FAILED
("<= OPERATOR INCORRECT - (A)2");
70 COMMENT
("> OPERATOR OK - (A)");
72 FAILED
("> OPERATOR INCORRECT - (A)");
76 COMMENT
(">= OPERATOR OK - (A)");
78 FAILED
(">= OPERATOR INCORRECT - (A)");
81 IF LATER
>= LATER
THEN
82 COMMENT
(">= OPERATOR OK - (A)2");
84 FAILED
(">= OPERATOR INCORRECT - (A)2");
89 --------------------------------------------
92 -- RELATIONS BASED ON MONTH.
95 NOW
:= TIME_OF
(1984, 8, 12, 500.0);
96 LATER
:= TIME_OF
(1984, 9, 12, 500.0);
99 COMMENT
("< OPERATOR OK - (B)");
101 FAILED
("< OPERATOR INCORRECT - (B)");
105 COMMENT
("<= OPERATOR OK - (B)");
107 FAILED
("<= OPERATOR INCORRECT - (B)");
111 COMMENT
("<= OPERATOR OK - (B)2");
113 FAILED
("<= OPERATOR INCORRECT - (B)2");
117 COMMENT
("> OPERATOR OK - (B)");
119 FAILED
("> OPERATOR INCORRECT - (B)");
123 COMMENT
(">= OPERATOR OK - (B)");
125 FAILED
(">= OPERATOR INCORRECT - (B)");
128 IF LATER
>= LATER
THEN
129 COMMENT
(">= OPERATOR OK - (B)2");
131 FAILED
(">= OPERATOR INCORRECT - (B)2");
135 COMMENT
("= OPERATOR OK - (B)");
137 FAILED
("= OPERATOR INCORRECT - (B)");
141 COMMENT
("/= OPERATOR OK - (B)");
143 FAILED
("/= OPERATOR INCORRECT - (B)");
148 --------------------------------------------
151 -- RELATIONS BASED ON SECONDS.
153 INCREMENT
: DURATION := 99.9;
155 NOW
:= TIME_OF
(1984, 8, 12, 500.0);
156 LATER
:= NOW
+ INCREMENT
;
159 COMMENT
("< OPERATOR OK - (C)");
161 FAILED
("< OPERATOR INCORRECT - (C)");
165 COMMENT
("<= OPERATOR OK - (C)");
167 FAILED
("<= OPERATOR INCORRECT - (C)");
171 COMMENT
("<= OPERATOR OK - (C)2");
173 FAILED
("<= OPERATOR INCORRECT - (C)2");
177 COMMENT
("> OPERATOR OK - (C)");
179 FAILED
("> OPERATOR INCORRECT - (C)");
183 COMMENT
(">= OPERATOR OK - (C)");
185 FAILED
(">= OPERATOR INCORRECT - (C)");
188 IF LATER
>= LATER
THEN
189 COMMENT
(">= OPERATOR OK - (C)2");
191 FAILED
(">= OPERATOR INCORRECT - (C)2");
194 IF LATER
= LATER
THEN
195 COMMENT
("= OPERATOR OK - (C)");
197 FAILED
("= OPERATOR INCORRECT - (C)");
201 COMMENT
("/= OPERATOR OK - (C)");
203 FAILED
("/= OPERATOR INCORRECT - (C)");
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)");
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)");
228 --------------------------------------------
232 NOW
, WAY_BACK_THEN
: TIME
;
236 NOW
:= TIME_OF
(2099, 12, 31);
237 WAY_BACK_THEN
:= TIME_OF
(1901, 1, 1);
240 IF NOW
< WAY_BACK_THEN
THEN
241 FAILED
("TEST < AT EXTREMES INCORRECT - (D)");
245 FAILED
("< AT EXTREMES RAISED EXCEPTION - (D)");
249 IF NOW
<= WAY_BACK_THEN
THEN
250 FAILED
("TEST <= AT EXTREMES INCORRECT - (D)");
254 FAILED
("<= AT EXTREMES RAISED EXCEPTION - (D)");
258 IF WAY_BACK_THEN
> NOW
THEN
259 FAILED
("TEST > AT EXTREMES INCORRECT - (D)");
263 FAILED
("> AT EXTREMES RAISED EXCEPTION - (D)");
267 IF WAY_BACK_THEN
>= NOW
THEN
268 FAILED
("TEST >= AT EXTREMES INCORRECT - (D)");
272 FAILED
(">= AT EXTREMES RAISED EXCEPTION - (D)");
276 IF WAY_BACK_THEN
/= WAY_BACK_THEN
THEN
277 FAILED
("TEST /= AT EXTREMES INCORRECT - (D)");
281 FAILED
("/= AT EXTREMES RAISED EXCEPTION - (D)");
285 IF NOW
= WAY_BACK_THEN
THEN
286 FAILED
("TEST = AT EXTREMES INCORRECT - (D)");
290 FAILED
("= AT EXTREMES RAISED EXCEPTION - (D)");
295 --------------------------------------------