2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / ada / acats / tests / c4 / c46021a.ada
blob198fc7ca6e3d92df0f9f8480eb43f397c039e019
1 -- C46021A.ADA
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.
16 -- DISCLAIMER
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 -- OBJECTIVE:
26 -- CHECK THAT FLOATING POINT CONVERSIONS ARE PERFORMED CORRECTLY
27 -- WHEN THE OPERAND TYPE IS AN INTEGER TYPE, FOR 5-DIGIT PRECISION.
29 -- HISTORY:
30 -- JET 02/12/88 CREATED ORIGINAL TEST.
32 WITH REPORT; USE REPORT;
34 PROCEDURE C46021A IS
36 TYPE FLOAT5 IS DIGITS 5;
37 TYPE INT IS RANGE -32768..32767;
39 TYPE NFLOAT5 IS NEW FLOAT5;
41 FUNCTION IDENT (A : FLOAT5) RETURN FLOAT5 IS
42 BEGIN
43 IF EQUAL(3,3) THEN
44 RETURN A;
45 ELSE
46 RETURN 0.0;
47 END IF;
48 END IDENT;
50 FUNCTION IDENT (A : NFLOAT5) RETURN NFLOAT5 IS
51 BEGIN
52 IF EQUAL(3,3) THEN
53 RETURN A;
54 ELSE
55 RETURN 0.0;
56 END IF;
57 END IDENT;
59 BEGIN
60 TEST ("C46021A", "CHECK THAT FLOATING POINT CONVERSIONS ARE " &
61 "PERFORMED CORRECTLY WHEN THE OPERAND TYPE " &
62 "IS AN INTEGER TYPE, FOR 5-DIGIT PRECISION");
64 IF FLOAT5(IDENT_INT(-7)) /= -7.0 THEN
65 FAILED ("INCORRECT VALUE (1)");
66 END IF;
68 IF FLOAT5(IDENT_INT(3)) /= 3.0 THEN
69 FAILED ("INCORRECT VALUE (2)");
70 END IF;
72 IF FLOAT5(IDENT_INT(-999)) /= -999.0 THEN
73 FAILED ("INCORRECT VALUE (3)");
74 END IF;
76 IF FLOAT5(IDENT_INT(101)) /= 101.0 THEN
77 FAILED ("INCORRECT VALUE (4)");
78 END IF;
80 IF FLOAT5(IDENT_INT(-32767)) /= -32767.0 THEN
81 FAILED ("INCORRECT VALUE (5)");
82 END IF;
84 IF FLOAT5(IDENT_INT(32767)) /= 32767.0 THEN
85 FAILED ("INCORRECT VALUE (6)");
86 END IF;
88 IF FLOAT5(-7) /= IDENT(-7.0) THEN
89 FAILED ("INCORRECT VALUE (7)");
90 END IF;
92 IF FLOAT5(3) /= IDENT(3.0) THEN
93 FAILED ("INCORRECT VALUE (8)");
94 END IF;
96 IF FLOAT5(-999) /= IDENT(-999.0) THEN
97 FAILED ("INCORRECT VALUE (9)");
98 END IF;
100 IF FLOAT5(101) /= IDENT(101.0) THEN
101 FAILED ("INCORRECT VALUE (10)");
102 END IF;
104 IF FLOAT5(-32767) /= IDENT(-32767.0) THEN
105 FAILED ("INCORRECT VALUE (11)");
106 END IF;
108 IF FLOAT5(32767) /= IDENT(32767.0) THEN
109 FAILED ("INCORRECT VALUE (12)");
110 END IF;
112 IF FLOAT5(INT'(-7)) /= IDENT(-7.0) THEN
113 FAILED ("INCORRECT VALUE (13)");
114 END IF;
116 IF FLOAT5(INT'(3)) /= IDENT(3.0) THEN
117 FAILED ("INCORRECT VALUE (14)");
118 END IF;
120 IF FLOAT5(INT'(-999)) /= IDENT(-999.0) THEN
121 FAILED ("INCORRECT VALUE (15)");
122 END IF;
124 IF FLOAT5(INT'(101)) /= IDENT(101.0) THEN
125 FAILED ("INCORRECT VALUE (16)");
126 END IF;
128 IF FLOAT5(INT'(-32767)) /= IDENT(-32767.0) THEN
129 FAILED ("INCORRECT VALUE (17)");
130 END IF;
132 IF FLOAT5(INT'(32767)) /= IDENT(32767.0) THEN
133 FAILED ("INCORRECT VALUE (18)");
134 END IF;
136 IF NFLOAT5(IDENT_INT(-7)) /= -7.0 THEN
137 FAILED ("INCORRECT VALUE (19)");
138 END IF;
140 IF NFLOAT5(IDENT_INT(3)) /= 3.0 THEN
141 FAILED ("INCORRECT VALUE (20)");
142 END IF;
144 IF NFLOAT5(IDENT_INT(-999)) /= -999.0 THEN
145 FAILED ("INCORRECT VALUE (21)");
146 END IF;
148 IF NFLOAT5(IDENT_INT(101)) /= 101.0 THEN
149 FAILED ("INCORRECT VALUE (22)");
150 END IF;
152 IF NFLOAT5(IDENT_INT(-32767)) /= -32767.0 THEN
153 FAILED ("INCORRECT VALUE (23)");
154 END IF;
156 IF NFLOAT5(IDENT_INT(32767)) /= 32767.0 THEN
157 FAILED ("INCORRECT VALUE (24)");
158 END IF;
160 IF NFLOAT5(-7) /= IDENT(-7.0) THEN
161 FAILED ("INCORRECT VALUE (25)");
162 END IF;
164 IF NFLOAT5(3) /= IDENT(3.0) THEN
165 FAILED ("INCORRECT VALUE (26)");
166 END IF;
168 IF NFLOAT5(-999) /= IDENT(-999.0) THEN
169 FAILED ("INCORRECT VALUE (27)");
170 END IF;
172 IF NFLOAT5(101) /= IDENT(101.0) THEN
173 FAILED ("INCORRECT VALUE (28)");
174 END IF;
176 IF NFLOAT5(-32767) /= IDENT(-32767.0) THEN
177 FAILED ("INCORRECT VALUE (29)");
178 END IF;
180 IF NFLOAT5(32767) /= IDENT(32767.0) THEN
181 FAILED ("INCORRECT VALUE (30)");
182 END IF;
184 IF NFLOAT5(INT'(-7)) /= IDENT(-7.0) THEN
185 FAILED ("INCORRECT VALUE (31)");
186 END IF;
188 IF NFLOAT5(INT'(3)) /= IDENT(3.0) THEN
189 FAILED ("INCORRECT VALUE (32)");
190 END IF;
192 IF NFLOAT5(INT'(-999)) /= IDENT(-999.0) THEN
193 FAILED ("INCORRECT VALUE (33)");
194 END IF;
196 IF NFLOAT5(INT'(101)) /= IDENT(101.0) THEN
197 FAILED ("INCORRECT VALUE (34)");
198 END IF;
200 IF NFLOAT5(INT'(-32767)) /= IDENT(-32767.0) THEN
201 FAILED ("INCORRECT VALUE (35)");
202 END IF;
204 IF NFLOAT5(INT'(32767)) /= IDENT(32767.0) THEN
205 FAILED ("INCORRECT VALUE (36)");
206 END IF;
208 RESULT;
210 END C46021A;