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.
26 -- CHECK THAT IF A SMALL SPECIFICATION IS GIVEN FOR A
27 -- FIXED POINT TYPE, THEN ARITHMETIC OPERATIONS ON VALUES OF THE
28 -- TYPE ARE NOT AFFECTED BY THE REPRESENTATION CLAUSE.
31 -- BCB 09/01/87 CREATED ORIGINAL TEST.
32 -- PWB 05/11/89 CHANGED EXTENSION FROM '.DEP' TO '.ADA'.
34 WITH REPORT
; USE REPORT
;
37 BASIC_SMALL
: CONSTANT := 2.0 ** (-4);
39 TYPE BASIC_TYPE
IS DELTA 2.0 ** (-4) RANGE -4.0 .. 4.0;
41 TYPE CHECK_TYPE
IS DELTA 1.0 RANGE -4.0 .. 4.0;
43 FOR CHECK_TYPE
'SMALL USE BASIC_SMALL
;
45 CNEG1
: CHECK_TYPE
:= -3.5;
46 CNEG2
: CHECK_TYPE
:= CHECK_TYPE
(-1.0/3.0);
47 CPOS1
: CHECK_TYPE
:= CHECK_TYPE
(4.0/6.0);
48 CPOS2
: CHECK_TYPE
:= 3.5;
51 TYPE ARRAY_TYPE
IS ARRAY (0 .. 3) OF CHECK_TYPE
;
52 CHARRAY
: ARRAY_TYPE
:=
53 (-3.5, CHECK_TYPE
(-1.0/3.0), CHECK_TYPE
(4.0/6.0), 3.5);
55 TYPE REC_TYPE
IS RECORD
56 COMPN1
: CHECK_TYPE
:= -3.5;
57 COMPN2
: CHECK_TYPE
:= CHECK_TYPE
(-1.0/3.0);
58 COMPP1
: CHECK_TYPE
:= CHECK_TYPE
(4.0/6.0);
59 COMPP2
: CHECK_TYPE
:= 3.5;
64 FUNCTION IDENT
(FX
: CHECK_TYPE
) RETURN CHECK_TYPE
IS
73 PROCEDURE PROC
(N1_IN
, P1_IN
: CHECK_TYPE
;
74 N2_INOUT
,P2_INOUT
: IN OUT CHECK_TYPE
;
75 CZOUT
: OUT CHECK_TYPE
) IS
78 IF IDENT
(N1_IN
) + P1_IN
NOT IN
80 P2_INOUT
- IDENT
(P1_IN
) NOT IN
82 FAILED
("INCORRECT RESULTS FOR " &
83 "BINARY ADDING OPERATORS - 1");
86 IF +IDENT
(N2_INOUT
) NOT IN -0.375 .. -0.3125 OR
87 IDENT
(-P1_IN
) NOT IN -0.6875 .. -0.625 THEN
88 FAILED
("INCORRECT RESULTS FOR " &
89 "UNARY ADDING OPERATORS - 1");
92 IF CHECK_TYPE
(N1_IN
* IDENT
(P1_IN
)) NOT IN
94 CHECK_TYPE
(IDENT
(N2_INOUT
) / P2_INOUT
) NOT IN
95 -0.125 .. -0.0625 THEN
96 FAILED
("INCORRECT RESULTS FOR " &
97 "MULTIPLYING OPERATORS - 1");
100 IF ABS IDENT
(N2_INOUT
) NOT IN 0.3125 .. 0.375 OR
101 IDENT
(ABS P1_IN
) NOT IN 0.625 .. 0.6875 THEN
102 FAILED
("INCORRECT RESULTS FOR " &
103 "ABSOLUTE VALUE OPERATORS - 1");
111 TEST
("CD2D11A", "CHECK THAT IF A SMALL SPECIFICATION IS " &
112 "GIVEN FOR AN FIXED POINT TYPE, THEN " &
113 "ARITHMETIC OPERATIONS ON VALUES OF THE " &
114 "TYPE ARE NOT AFFECTED BY THE REPRESENTATION " &
117 PROC
(CNEG1
, CPOS1
, CNEG2
, CPOS2
, CZERO
);
119 IF IDENT
(CZERO
) /= 0.0 THEN
120 FAILED
("INCORRECT VALUE FOR OUT PARAMETER");
123 IF IDENT
(CNEG1
) + CPOS1
NOT IN -2.875 .. -2.8125 OR
124 CPOS2
- IDENT
(CPOS1
) NOT IN 2.8125 .. 2.875 THEN
125 FAILED
("INCORRECT RESULTS FOR BINARY ADDING OPERATORS - 2");
128 IF +IDENT
(CNEG2
) NOT IN -0.375 .. -0.3125 OR
129 IDENT
(-CPOS1
) NOT IN -0.6875 .. -0.625 THEN
130 FAILED
("INCORRECT RESULTS FOR UNARY ADDING OPERATORS - 2");
133 IF CHECK_TYPE
(CNEG1
* IDENT
(CPOS1
)) NOT IN -2.4375 .. -2.1875 OR
134 CHECK_TYPE
(IDENT
(CNEG2
) / CPOS2
) NOT IN
135 -0.125 .. -0.0625 THEN
136 FAILED
("INCORRECT RESULTS FOR MULTIPLYING OPERATORS - 2");
139 IF ABS IDENT
(CNEG2
) NOT IN 0.3125 .. 0.375 OR
140 IDENT
(ABS CPOS1
) NOT IN 0.625 .. 0.6875 THEN
141 FAILED
("INCORRECT RESULTS FOR ABSOLUTE VALUE " &
145 IF IDENT
(CPOS1
) NOT IN 0.625 .. 0.6875 OR
146 CNEG2
IN -0.25 .. 0.0 OR
147 IDENT
(CNEG2
) IN -1.0 .. -0.4375 THEN
148 FAILED
("INCORRECT RESULTS FOR MEMBERSHIP OPERATORS - 2");
151 IF IDENT
(CHARRAY
(0)) + CHARRAY
(2) NOT IN
153 CHARRAY
(3) - IDENT
(CHARRAY
(2)) NOT IN
155 FAILED
("INCORRECT RESULTS FOR BINARY ADDING OPERATORS - 3");
158 IF +IDENT
(CHARRAY
(1)) NOT IN -0.375 .. -0.3125 OR
159 IDENT
(-CHARRAY
(2)) NOT IN -0.6875 .. -0.625 THEN
160 FAILED
("INCORRECT RESULTS FOR UNARY ADDING OPERATORS - 3");
163 IF CHECK_TYPE
(CHARRAY
(0) * IDENT
(CHARRAY
(2))) NOT IN
164 -2.4375 .. -2.1875 OR
165 CHECK_TYPE
(IDENT
(CHARRAY
(1)) / CHARRAY
(3)) NOT IN
166 -0.125 .. -0.0625 THEN
167 FAILED
("INCORRECT RESULTS FOR MULTIPLYING OPERATORS - 3");
170 IF ABS IDENT
(CHARRAY
(1)) NOT IN 0.3125 .. 0.375 OR
171 IDENT
(ABS CHARRAY
(2)) NOT IN 0.625 .. 0.6875 THEN
172 FAILED
("INCORRECT RESULTS FOR ABSOLUTE VALUE " &
176 IF IDENT
(CHARRAY
(2)) NOT IN 0.625 .. 0.6875 OR
177 CHARRAY
(1) IN -0.25 .. 0.0 OR
178 IDENT
(CHARRAY
(1)) IN -1.0 .. -0.4375 THEN
179 FAILED
("INCORRECT RESULTS FOR MEMBERSHIP OPERATORS - 3");
182 IF IDENT
(CHREC
.COMPN1
) + CHREC
.COMPP1
NOT IN
184 CHREC
.COMPP2
- IDENT
(CHREC
.COMPP1
) NOT IN
186 FAILED
("INCORRECT RESULTS FOR BINARY ADDING OPERATORS - 4");
189 IF +IDENT
(CHREC
.COMPN2
) NOT IN -0.375 .. -0.3125 OR
190 IDENT
(-CHREC
.COMPP1
) NOT IN -0.6875 .. -0.625 THEN
191 FAILED
("INCORRECT RESULTS FOR UNARY ADDING OPERATORS - 4");
194 IF CHECK_TYPE
(CHREC
.COMPN1
* IDENT
(CHREC
.COMPP1
)) NOT IN
195 -2.4375 .. -2.1875 OR
196 CHECK_TYPE
(IDENT
(CHREC
.COMPN2
) / CHREC
.COMPP2
) NOT IN
197 -0.125 .. -0.0625 THEN
198 FAILED
("INCORRECT RESULTS FOR MULTIPLYING OPERATORS - 4");
201 IF ABS IDENT
(CHREC
.COMPN2
) NOT IN 0.3125 .. 0.375 OR
202 IDENT
(ABS CHREC
.COMPP1
) NOT IN 0.625 .. 0.6875 THEN
203 FAILED
("INCORRECT RESULTS FOR ABSOLUTE VALUE " &
207 IF IDENT
(CHREC
.COMPP1
) NOT IN 0.625 .. 0.6875 OR
208 CHREC
.COMPN2
IN -0.25 .. 0.0 OR
209 IDENT
(CHREC
.COMPN2
) IN -1.0 .. -0.4375 THEN
210 FAILED
("INCORRECT RESULTS FOR MEMBERSHIP OPERATORS - 4");