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 VARIABLE OR CONSTANT HAVING AN ENUMERATION,
27 -- INTEGER, FLOAT OR FIXED TYPE IS DECLARED WITH AN INITIAL VALUE,
28 -- CONSTRAINT_ERROR IS RAISED IF THE INITIAL VALUE LIES OUTSIDE THE
29 -- RANGE OF THE SUBTYPE.
32 -- RJW 07/20/86 CREATED ORIGINAL TEST.
33 -- JET 08/04/87 IMPROVED DEFEAT OF COMPILER OPTIMIZATION.
35 WITH REPORT
; USE REPORT
;
39 TYPE WEEKDAY
IS (MON
, TUES
, WED
, THURS
, FRI
);
40 SUBTYPE MIDWEEK
IS WEEKDAY
RANGE WED
.. WED
;
42 SUBTYPE DIGIT
IS CHARACTER RANGE '0' .. '9';
44 SUBTYPE SHORT
IS INTEGER RANGE -100 .. 100;
46 TYPE INT
IS RANGE -10 .. 10;
47 SUBTYPE PINT
IS INT
RANGE 1 .. 10;
49 TYPE FLT
IS DIGITS 3 RANGE -5.0 .. 5.0;
50 SUBTYPE SFLT
IS FLT
RANGE -5.0 .. 0.0;
52 TYPE FIXED
IS DELTA 0.5 RANGE -5.0 .. 5.0;
53 SUBTYPE SFIXED
IS FIXED
RANGE 0.0 .. 5.0;
56 TEST
("C32111A", "CHECK THAT WHEN A VARIABLE OR CONSTANT " &
57 "HAVING AN ENUMERATION, INTEGER, FLOAT OR " &
58 "FIXED TYPE IS DECLARED WITH AN INITIAL " &
59 "VALUE, CONSTRAINT_ERROR IS RAISED IF THE " &
60 "INITIAL VALUE LIES OUTSIDE THE RANGE OF THE " &
65 D
: MIDWEEK
:= WEEKDAY
'VAL (IDENT_INT
(1));
67 FAILED
( "NO EXCEPTION RAISED FOR INITIALIZATION " &
70 COMMENT
("VARIABLE 'D' INITIALIZED");
74 WHEN CONSTRAINT_ERROR
=>
77 FAILED
( "WRONG EXCEPTION RAISED FOR INITIALIZATION " &
83 D
: CONSTANT WEEKDAY
RANGE WED
.. WED
:=
84 WEEKDAY
'VAL (IDENT_INT
(3));
86 FAILED
( "NO EXCEPTION RAISED FOR INITIALIZATION " &
89 COMMENT
("INITIALIZE VARIABLE 'D'");
93 WHEN CONSTRAINT_ERROR
=>
96 FAILED
( "WRONG EXCEPTION RAISED FOR INITIALIZATION " &
102 P
: CONSTANT DIGIT
:= IDENT_CHAR
('/');
104 FAILED
( "NO EXCEPTION RAISED FOR INITIALIZATION " &
107 COMMENT
("VARIABLE 'P' INITIALIZED");
111 WHEN CONSTRAINT_ERROR
=>
114 FAILED
( "WRONG EXCEPTION RAISED FOR INITIALIZATION " &
120 Q
: CHARACTER RANGE 'A' .. 'E' := IDENT_CHAR
('F');
122 FAILED
( "NO EXCEPTION RAISED FOR INITIALIZATION " &
125 COMMENT
("VARIABLE 'Q' INITIALIZED");
129 WHEN CONSTRAINT_ERROR
=>
132 FAILED
( "WRONG EXCEPTION RAISED FOR INITIALIZATION " &
138 I
: SHORT
:= IDENT_INT
(-101);
140 FAILED
( "NO EXCEPTION RAISED FOR INITIALIZATION " &
143 COMMENT
("VARIABLE 'I' INITIALIZED");
147 WHEN CONSTRAINT_ERROR
=>
150 FAILED
( "WRONG EXCEPTION RAISED FOR INITIALIZATION " &
156 J
: CONSTANT INTEGER RANGE 0 .. 100 := IDENT_INT
(101);
158 FAILED
( "NO EXCEPTION RAISED FOR INITIALIZATION " &
161 COMMENT
("VARIABLE 'J' INITIALIZED");
165 WHEN CONSTRAINT_ERROR
=>
168 FAILED
( "WRONG EXCEPTION RAISED FOR INITIALIZATION " &
174 K
: INT
RANGE 0 .. 1 := INT
(IDENT_INT
(2));
176 FAILED
( "NO EXCEPTION RAISED FOR INITIALIZATION " &
179 COMMENT
("VARIABLE 'K' INITIALIZED");
183 WHEN CONSTRAINT_ERROR
=>
186 FAILED
( "WRONG EXCEPTION RAISED FOR INITIALIZATION " &
192 L
: CONSTANT PINT
:= INT
(IDENT_INT
(0));
194 FAILED
( "NO EXCEPTION RAISED FOR INITIALIZATION " &
197 COMMENT
("VARIABLE 'L' INITIALIZED");
201 WHEN CONSTRAINT_ERROR
=>
204 FAILED
( "WRONG EXCEPTION RAISED FOR INITIALIZATION " &
210 FL
: SFLT
:= FLT
(IDENT_INT
(1));
212 FAILED
( "NO EXCEPTION RAISED FOR INITIALIZATION " &
213 "OF VARIABLE 'FL'" );
215 COMMENT
("VARIABLE 'FL' INITIALIZED");
219 WHEN CONSTRAINT_ERROR
=>
222 FAILED
( "WRONG EXCEPTION RAISED FOR INITIALIZATION " &
223 "OF VARIABLE 'FL'" );
228 FL1
: CONSTANT FLT
RANGE 0.0 .. 0.0 :=
229 FLT
(IDENT_INT
(-1));
231 FAILED
( "NO EXCEPTION RAISED FOR INITIALIZATION " &
232 "OF CONSTANT 'FL1'" );
234 COMMENT
("VARIABLE 'FL1' INITIALIZED");
238 WHEN CONSTRAINT_ERROR
=>
241 FAILED
( "WRONG EXCEPTION RAISED FOR INITIALIZATION " &
242 "OF CONSTANT 'FL1'" );
247 FI
: FIXED
RANGE 0.0 .. 0.0 := IDENT_INT
(1) * 0.5;
249 FAILED
( "NO EXCEPTION RAISED FOR INITIALIZATION " &
250 "OF VARIABLE 'FI'" );
252 COMMENT
("VARIABLE 'FI' INITIALIZED");
256 WHEN CONSTRAINT_ERROR
=>
259 FAILED
( "WRONG EXCEPTION RAISED FOR INITIALIZATION " &
260 "OF VARIABLE 'FI'" );
265 FI1
: CONSTANT SFIXED
:= IDENT_INT
(-1) * 0.5;
267 FAILED
( "NO EXCEPTION RAISED FOR INITIALIZATION " &
268 "OF CONSTANT 'FI1'" );
270 COMMENT
("VARIABLE 'FI1' INITIALIZED");
274 WHEN CONSTRAINT_ERROR
=>
277 FAILED
( "WRONG EXCEPTION RAISED FOR INITIALIZATION " &
278 "OF CONSTANT 'FI1'" );