1-- C96006A.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 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. 31 32-- CPP 8/16/84 33 34WITH CALENDAR; USE CALENDAR; 35WITH REPORT; USE REPORT; 36PROCEDURE C96006A IS 37 38BEGIN 39 TEST ("C96006A", "CHECK THAT RELATIONAL OPERATORS WORK " & 40 "CORRECTLY IN THE PACKAGE CALENDAR"); 41 42 -------------------------------------------- 43 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); 50 51 IF NOW < LATER THEN 52 COMMENT ("< OPERATOR OK - (A)"); 53 ELSE 54 FAILED ("< OPERATOR INCORRECT - (A)"); 55 END IF; 56 57 IF NOW <= LATER THEN 58 COMMENT ("<= OPERATOR OK - (A)"); 59 ELSE 60 FAILED ("<= OPERATOR INCORRECT - (A)"); 61 END IF; 62 63 IF NOW <= NOW THEN 64 COMMENT ("<= OPERATOR OK - (A)2"); 65 ELSE 66 FAILED ("<= OPERATOR INCORRECT - (A)2"); 67 END IF; 68 69 IF LATER > NOW THEN 70 COMMENT ("> OPERATOR OK - (A)"); 71 ELSE 72 FAILED ("> OPERATOR INCORRECT - (A)"); 73 END IF; 74 75 IF LATER >= NOW THEN 76 COMMENT (">= OPERATOR OK - (A)"); 77 ELSE 78 FAILED (">= OPERATOR INCORRECT - (A)"); 79 END IF; 80 81 IF LATER >= LATER THEN 82 COMMENT (">= OPERATOR OK - (A)2"); 83 ELSE 84 FAILED (">= OPERATOR INCORRECT - (A)2"); 85 END IF; 86 87 END; -- (A) 88 89 -------------------------------------------- 90 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); 97 98 IF NOW < LATER THEN 99 COMMENT ("< OPERATOR OK - (B)"); 100 ELSE 101 FAILED ("< OPERATOR INCORRECT - (B)"); 102 END IF; 103 104 IF NOW <= LATER THEN 105 COMMENT ("<= OPERATOR OK - (B)"); 106 ELSE 107 FAILED ("<= OPERATOR INCORRECT - (B)"); 108 END IF; 109 110 IF NOW <= NOW THEN 111 COMMENT ("<= OPERATOR OK - (B)2"); 112 ELSE 113 FAILED ("<= OPERATOR INCORRECT - (B)2"); 114 END IF; 115 116 IF LATER > NOW THEN 117 COMMENT ("> OPERATOR OK - (B)"); 118 ELSE 119 FAILED ("> OPERATOR INCORRECT - (B)"); 120 END IF; 121 122 IF LATER >= NOW THEN 123 COMMENT (">= OPERATOR OK - (B)"); 124 ELSE 125 FAILED (">= OPERATOR INCORRECT - (B)"); 126 END IF; 127 128 IF LATER >= LATER THEN 129 COMMENT (">= OPERATOR OK - (B)2"); 130 ELSE 131 FAILED (">= OPERATOR INCORRECT - (B)2"); 132 END IF; 133 134 IF NOW = NOW THEN 135 COMMENT ("= OPERATOR OK - (B)"); 136 ELSE 137 FAILED ("= OPERATOR INCORRECT - (B)"); 138 END IF; 139 140 IF LATER /= NOW THEN 141 COMMENT ("/= OPERATOR OK - (B)"); 142 ELSE 143 FAILED ("/= OPERATOR INCORRECT - (B)"); 144 END IF; 145 146 END; -- (B) 147 148 -------------------------------------------- 149 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; 157 158 IF NOW < LATER THEN 159 COMMENT ("< OPERATOR OK - (C)"); 160 ELSE 161 FAILED ("< OPERATOR INCORRECT - (C)"); 162 END IF; 163 164 IF NOW <= LATER THEN 165 COMMENT ("<= OPERATOR OK - (C)"); 166 ELSE 167 FAILED ("<= OPERATOR INCORRECT - (C)"); 168 END IF; 169 170 IF NOW <= NOW THEN 171 COMMENT ("<= OPERATOR OK - (C)2"); 172 ELSE 173 FAILED ("<= OPERATOR INCORRECT - (C)2"); 174 END IF; 175 176 IF LATER > NOW THEN 177 COMMENT ("> OPERATOR OK - (C)"); 178 ELSE 179 FAILED ("> OPERATOR INCORRECT - (C)"); 180 END IF; 181 182 IF LATER >= NOW THEN 183 COMMENT (">= OPERATOR OK - (C)"); 184 ELSE 185 FAILED (">= OPERATOR INCORRECT - (C)"); 186 END IF; 187 188 IF LATER >= LATER THEN 189 COMMENT (">= OPERATOR OK - (C)2"); 190 ELSE 191 FAILED (">= OPERATOR INCORRECT - (C)2"); 192 END IF; 193 194 IF LATER = LATER THEN 195 COMMENT ("= OPERATOR OK - (C)"); 196 ELSE 197 FAILED ("= OPERATOR INCORRECT - (C)"); 198 END IF; 199 200 IF NOW /= LATER THEN 201 COMMENT ("/= OPERATOR OK - (C)"); 202 ELSE 203 FAILED ("/= OPERATOR INCORRECT - (C)"); 204 END IF; 205 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; 225 226 END; -- (C) 227 228 -------------------------------------------- 229 230 DECLARE -- (D) 231 232 NOW, WAY_BACK_THEN : TIME; 233 234 BEGIN -- (D) 235 236 NOW := TIME_OF (2099, 12, 31); 237 WAY_BACK_THEN := TIME_OF (1901, 1, 1); 238 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; 247 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; 256 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; 265 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; 274 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; 283 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; 292 293 END; -- (D) 294 295 -------------------------------------------- 296 297 RESULT; 298END C96006A; 299