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 RELATIONAL OPERATIONS ON FIXED POINT TYPES THE
27 -- (A) A /= B IS THE SAME AS NOT (A = B).
28 -- (B) A < B IS THE SAME AS NOT (A >= B).
29 -- (C) A > B IS THE SAME AS NOT (A <= B).
30 -- (D) ADJACENT MODEL NUMBERS GIVE CORRECT RESULTS.
31 -- (E) NON-MODEL NUMBERS WITH DISTINCT MODEL INTERVALS GIVE
33 -- (F) CASE WHERE MODEL INTERVALS INTERSECT IN A SINGLE MODEL
34 -- NUMBER GIVES CORRECT RESULT.
36 -- CASE A: BASIC TYPES THAT FIT THE CHARACTERISTICS OF DURATION'BASE.
40 WITH REPORT
; USE REPORT
;
43 -- THE NAME OF EACH TYPE OR SUBTYPE ENDS WITH THAT TYPE'S
46 TYPE LIKE_DURATION_M23
IS DELTA 0.020 RANGE -86_400
.0
.. 86_400
.0
;
47 TYPE DECIMAL_M4
IS DELTA 100.0 RANGE -1000.0 .. 1000.0;
51 TEST
("C45251A", "CHECK RELATIONAL OPERATIONS FOR FIXED POINT " &
52 "TYPES - BASIC TYPES");
54 -------------------------------------------------------------------
57 A
, B
: LIKE_DURATION_M23
:= 0.0;
58 C
, D
: DECIMAL_M4
:= 0.0;
61 A
:= 2#
0.0000_0011#
; -- JUST BELOW LIKE_DURATION'SMALL.
62 B
:= 2#
0.0000_0101#
; -- JUST ABOVE LIKE_DURATION'SMALL.
66 IF A
/= B
XOR NOT (A
= B
) THEN
67 FAILED
("A /= B IS NOT THE SAME AS NOT (A = B)");
71 IF A
< B
XOR NOT (A
>= B
) THEN
72 FAILED
("A < B IS NOT THE SAME AS NOT (A >= B)");
76 IF A
> B
XOR NOT (A
<= B
) THEN
77 FAILED
("A > B IS NOT THE SAME AS NOT (A <= B)");
82 A
:= -(16#
1_5180
.00#
); -- (-86_400.0)
83 B
:= -(16#
1_517F
.FC#
); -- (-86_400.0 + 1.0/64)
85 C
:= 64.0; -- DECIMAL_M4'SMALL.
86 D
:= 128.0; -- 2 * DECIMAL_M4'SMALL.
88 IF "=" (LEFT
=> A
, RIGHT
=> B
) THEN
89 FAILED
("ADJACENT MODEL NUMBERS GIVE INCORRECT RESULT " &
92 IF NOT "/=" (LEFT
=> C
, RIGHT
=> D
) THEN
93 FAILED
("ADJACENT MODEL NUMBERS GIVE INCORRECT RESULT " &
96 IF "<" (LEFT
=> B
, RIGHT
=> A
) THEN
97 FAILED
("ADJACENT MODEL NUMBERS GIVE INCORRECT RESULT " &
100 IF ">" (LEFT
=> C
, RIGHT
=> D
) THEN
101 FAILED
("ADJACENT MODEL NUMBERS GIVE INCORRECT RESULT " &
104 IF ">=" (LEFT
=> A
, RIGHT
=> B
) THEN
105 FAILED
("ADJACENT MODEL NUMBERS GIVE INCORRECT RESULT " &
108 IF "<=" (LEFT
=> D
, RIGHT
=> C
) THEN
109 FAILED
("ADJACENT MODEL NUMBERS GIVE INCORRECT RESULT " &
115 A
:= 0.02; -- INTERVAL IS 1.0/64 .. 2.0/64.
116 B
:= -0.02; -- INTERVAL IS -2.0/64 .. -1.0/64.
118 C
:= 800.0; -- INTERVAL IS 768.0 .. 832.0.
119 D
:= 900.0; -- INTERVAL IS 896.0 .. 960.0.
122 FAILED
("NON-MODEL NUMBERS WITH DISTINCT MODEL " &
123 "INTERVALS GIVE INCORRECT RESULT - (A = B)");
126 FAILED
("NON-MODEL NUMBERS WITH DISTINCT MODEL " &
127 "INTERVALS GIVE INCORRECT RESULT - (C /= D)");
130 FAILED
("NON-MODEL NUMBERS WITH DISTINCT MODEL " &
131 "INTERVALS GIVE INCORRECT RESULT - (A < B)");
134 FAILED
("NON-MODEL NUMBERS WITH DISTINCT MODEL " &
135 "INTERVALS GIVE INCORRECT RESULT - (C > D)");
138 FAILED
("NON-MODEL NUMBERS WITH DISTINCT MODEL " &
139 "INTERVALS GIVE INCORRECT RESULT - (B >= A)");
142 FAILED
("NON-MODEL NUMBERS WITH DISTINCT MODEL " &
143 "INTERVALS GIVE INCORRECT RESULT - (D <= C)");
148 B
:= 0.035; -- INTERVAL IS 2.0/64 .. 3.0/64.
150 C
:= 850.0; -- INTERVAL IS 832.0 .. 896.0.
153 FAILED
("COMPARISON OF NON-MODEL NUMBERS WITH ONE " &
154 "COMMON MODEL INTERVAL END-POINT GIVES " &
155 "INCORRECT RESULT - (A <= B)");
158 FAILED
("COMPARISON OF NON-MODEL NUMBERS WITH ONE " &
159 "COMMON MODEL INTERVAL END-POINT GIVES " &
160 "INCORRECT RESULT - (A > B)");
163 FAILED
("COMPARISON OF NON-MODEL NUMBERS WITH ONE " &
164 "COMMON MODEL INTERVAL END-POINT GIVES " &
165 "INCORRECT RESULT - (D >= C)");
168 FAILED
("COMPARISON OF NON-MODEL NUMBERS WITH ONE " &
169 "COMMON MODEL INTERVAL END-POINT GIVES " &
170 "INCORRECT RESULT - (D < C)");
174 -------------------------------------------------------------------