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 WHEN A SIZE SPECIFICATION IS GIVEN FOR A
27 -- FIXED POINT TYPE, THEN OPERATIONS ON VALUES OF SUCH A TYPE
28 -- ARE NOT AFFECTED BY THE REPRESENTATION CLAUSE.
31 -- RJW 08/12/87 CREATED ORIGINAL TEST.
32 -- DHH 04/12/89 CHANGED EXTENSION FROM '.DEP' TO '.ADA', CHANGED
33 -- OPERATORS ON 'SIZE TESTS, AND CHANGED 'SIZE CLAUSE
34 -- SO THAT IT IS NOT A POWER OF TWO.
35 -- WMC 03/31/92 ELIMINATED TEST REDUNDANCIES.
36 -- PWN 02/02/95 REMOVED INCONSISTENCIES WITH ADA 9X.
38 WITH REPORT
; USE REPORT
;
41 BASIC_SIZE
: CONSTANT := 9;
43 TYPE BASIC_TYPE
IS DELTA 2.0 ** (-4) RANGE -4.0 .. 4.0;
45 TYPE CHECK_TYPE
IS DELTA 2.0 ** (-4) RANGE -4.0 .. 4.0;
47 FOR CHECK_TYPE
'SIZE USE BASIC_SIZE
;
49 CNEG1
: CHECK_TYPE
:= -3.5;
50 CNEG2
: CHECK_TYPE
:= CHECK_TYPE
(-1.0/3.0);
51 CPOS1
: CHECK_TYPE
:= CHECK_TYPE
(4.0/6.0);
52 CPOS2
: CHECK_TYPE
:= 3.5;
55 TYPE ARRAY_TYPE
IS ARRAY (0 .. 3) OF CHECK_TYPE
;
56 CHARRAY
: ARRAY_TYPE
:=
57 (-3.5, CHECK_TYPE
(-1.0/3.0), CHECK_TYPE
(4.0/6.0), 3.5);
59 TYPE REC_TYPE
IS RECORD
60 COMPN1
: CHECK_TYPE
:= -3.5;
61 COMPN2
: CHECK_TYPE
:= CHECK_TYPE
(-1.0/3.0);
62 COMPP1
: CHECK_TYPE
:= CHECK_TYPE
(4.0/6.0);
63 COMPP2
: CHECK_TYPE
:= 3.5;
68 FUNCTION IDENT
(FX
: CHECK_TYPE
) RETURN CHECK_TYPE
IS
77 PROCEDURE PROC
(N1_IN
, P1_IN
: CHECK_TYPE
;
78 N2_INOUT
,P2_INOUT
: IN OUT CHECK_TYPE
;
79 CZOUT
: OUT CHECK_TYPE
) IS
82 IF +IDENT
(N2_INOUT
) NOT IN -0.375 .. -0.3125 OR
83 IDENT
(-P1_IN
) NOT IN -0.6875 .. -0.625 THEN
84 FAILED
("INCORRECT RESULTS FOR " &
85 "UNARY ADDING OPERATORS - 1");
88 IF ABS IDENT
(N2_INOUT
) NOT IN 0.3125 .. 0.375 OR
89 IDENT
(ABS P1_IN
) NOT IN 0.625 .. 0.6875 THEN
90 FAILED
("INCORRECT RESULTS FOR " &
91 "ABSOLUTE VALUE OPERATORS - 1");
99 TEST
("CD2A51A", "CHECK THAT WHEN A SIZE SPECICFICATION IS " &
100 "GIVEN FOR A FIXED POINT TYPE, THEN " &
101 "OPERATIONS ON VALUES OF SUCH A TYPE ARE " &
102 "NOT AFFECTED BY THE REPRESENTATION CLAUSE");
104 PROC
(CNEG1
, CPOS1
, CNEG2
, CPOS2
, CZERO
);
106 IF IDENT
(CZERO
) /= 0.0 THEN
107 FAILED
("INCORRECT VALUE FOR OUT PARAMETER");
110 IF CHECK_TYPE
'LAST < IDENT
(3.9375) THEN
111 FAILED
("INCORRECT VALUE FOR CHECK_TYPE'LAST");
114 IF CHECK_TYPE
'SIZE /= IDENT_INT
(BASIC_SIZE
) THEN
115 FAILED
("INCORRECT VALUE FOR CHECK_TYPE'SIZE");
118 IF CHECK_TYPE
'AFT /= BASIC_TYPE
'AFT THEN
119 FAILED
("INCORRECT VALUE FOR CHECK_TYPE'AFT");
122 IF CNEG1
'SIZE < IDENT_INT
(BASIC_SIZE
) THEN
123 FAILED
("INCORRECT VALUE FOR CNEG1'SIZE");
126 IF IDENT
(CNEG1
) + CPOS1
NOT IN -2.875 .. -2.8125 OR
127 CPOS2
- IDENT
(CPOS1
) NOT IN 2.8125 .. 2.875 THEN
128 FAILED
("INCORRECT RESULTS FOR BINARY ADDING OPERATORS - 2");
131 IF CHECK_TYPE
(CNEG1
* IDENT
(CPOS1
)) NOT IN -2.4375 .. -2.1875 OR
132 CHECK_TYPE
(IDENT
(CNEG2
) / CPOS2
) NOT IN
133 -0.125 .. -0.0625 THEN
134 FAILED
("INCORRECT RESULTS FOR MULTIPLYING OPERATORS - 2");
137 IF IDENT
(CPOS1
) NOT IN 0.625 .. 0.6875 OR
138 CNEG2
IN -0.25 .. 0.0 OR
139 IDENT
(CNEG2
) IN -1.0 .. -0.4375 THEN
140 FAILED
("INCORRECT RESULTS FOR MEMBERSHIP " &
144 IF CHARRAY
(1)'SIZE < IDENT_INT
(BASIC_SIZE
) THEN
145 FAILED
("INCORRECT VALUE FOR CHARRAY (1)'SIZE");
148 IF +IDENT
(CHARRAY
(1)) NOT IN -0.375 .. -0.3125 OR
149 IDENT
(-CHARRAY
(2)) NOT IN -0.6875 .. -0.625 THEN
150 FAILED
("INCORRECT RESULTS FOR UNARY ADDING OPERATORS - 3");
153 IF ABS IDENT
(CHARRAY
(1)) NOT IN 0.3125 .. 0.375 OR
154 IDENT
(ABS CHARRAY
(2)) NOT IN 0.625 .. 0.6875 THEN
155 FAILED
("INCORRECT RESULTS FOR ABSOLUTE VALUE " &
159 IF IDENT
(CHARRAY
(2)) NOT IN 0.625 .. 0.6875 OR
160 CHARRAY
(1) IN -0.25 .. 0.0 OR
161 IDENT
(CHARRAY
(1)) IN -1.0 .. -0.4375 THEN
162 FAILED
("INCORRECT RESULTS FOR MEMBERSHIP " &
166 IF CHREC
.COMPP1
'SIZE < IDENT_INT
(BASIC_SIZE
) THEN
167 FAILED
("INCORRECT VALUE FOR CHREC.COMPP1'SIZE");
170 IF IDENT
(CHREC
.COMPN1
) + CHREC
.COMPP1
NOT IN
172 CHREC
.COMPP2
- IDENT
(CHREC
.COMPP1
) NOT IN
174 FAILED
("INCORRECT RESULTS FOR BINARY ADDING OPERATORS - 4");
177 IF CHECK_TYPE
(CHREC
.COMPN1
* IDENT
(CHREC
.COMPP1
)) NOT IN
178 -2.4375 .. -2.1875 OR
179 CHECK_TYPE
(IDENT
(CHREC
.COMPN2
) / CHREC
.COMPP2
) NOT IN
180 -0.125 .. -0.0625 THEN
181 FAILED
("INCORRECT RESULTS FOR MULTIPLYING OPERATORS - 4");
184 IF IDENT
(CHREC
.COMPP1
) NOT IN 0.625 .. 0.6875 OR
185 CHREC
.COMPN2
IN -0.25 .. 0.0 OR
186 IDENT
(CHREC
.COMPN2
) IN -1.0 .. -0.4375 THEN
187 FAILED
("INCORRECT RESULTS FOR MEMBERSHIP " &