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 THE ATTRIBUTES 'IMAGE' AND 'VALUE' YIELD THE CORRECT
26 -- RESULTS WHEN THE PREFIX IS AN ENUMERATION TYPE OTHER THAN A BOOLEAN
27 -- OR A CHARACTER TYPE.
29 -- PART (A). TESTS FOR IMAGE.
30 -- PART (B). TESTS FOR VALUE.
34 WITH REPORT
; USE REPORT
;
38 TYPE ENUM
IS (A
, BC
, ABC
, A_B_C
, abcd
);
39 SUBTYPE SUBENUM
IS ENUM
RANGE A
.. BC
;
41 TYPE NEWENUM
IS NEW ENUM
;
43 FUNCTION IDENT
(X
: ENUM
) RETURN ENUM
IS
45 IF EQUAL
(ENUM
'POS (X
), ENUM
'POS(X
)) THEN
53 TEST
( "C35502C" , "CHECK THAT THE ATTRIBUTES 'IMAGE' AND " &
54 "'VALUE' YIELD THE CORRECT RESULTS " &
55 "WHEN THE PREFIX IS AN ENUMERATION TYPE " &
56 "OTHER THAN A BOOLEAN OR A CHARACTER TYPE" );
62 IF ENUM
'IMAGE ( IDENT
(ABC
) ) /= "ABC" THEN
63 FAILED
( "INCORRECT ENUM'IMAGE FOR ABC" );
65 IF ENUM
'IMAGE ( IDENT
(ABC
) )'FIRST /= 1 THEN
66 FAILED
( "INCORRECT LOWER BOUND FOR ABC IN ENUM" );
69 IF ENUM
'IMAGE ( IDENT
(A_B_C
) ) /= "A_B_C" THEN
70 FAILED
( "INCORRECT ENUM'IMAGE FOR A_B_C" );
72 IF ENUM
'IMAGE ( IDENT
(A_B_C
) )'FIRST /= 1 THEN
73 FAILED
( "INCORRECT LOWER BOUND FOR A_B_C IN ENUM" );
76 IF SUBENUM
'IMAGE ( IDENT
(A_B_C
) ) /= "A_B_C" THEN
77 FAILED
( "INCORRECT SUBENUM'IMAGE FOR A_B_C" );
79 IF SUBENUM
'IMAGE ( IDENT
(ABC
) )'FIRST /= 1 THEN
80 FAILED
( "INCORRECT LOWER BOUND FOR ABC " &
84 IF NEWENUM
'IMAGE ( ABC
) /= IDENT_STR
("ABC") THEN
85 FAILED
( "INCORRECT NEWENUM'IMAGE FOR ABC" );
87 IF NEWENUM
'IMAGE ( ABC
)'FIRST /= IDENT_INT
(1) THEN
88 FAILED
( "INCORRECT LOWER BOUND FOR ABC" &
92 IF ENUM
'IMAGE ( IDENT
(abcd
) ) /= "ABCD" THEN
93 FAILED
( "INCORRECT ENUM'IMAGE FOR abcd" );
95 IF ENUM
'IMAGE ( IDENT
(abcd
) )'FIRST /= 1 THEN
96 FAILED
( "INCORRECT LOWER BOUND FOR abcd IN ENUM" );
101 -----------------------------------------------------------------------
106 IF ENUM
'VALUE (IDENT_STR
("ABC")) /= ABC
THEN
107 FAILED
( "INCORRECT VALUE FOR ""ABC""" );
111 FAILED
( "EXCEPTION RAISED - VALUE FOR ""ABC""" );
115 IF ENUM
'VALUE (IDENT_STR
("abc")) /= abc
THEN
116 FAILED
( "INCORRECT VALUE FOR ""abc""" );
120 FAILED
( "EXCEPTION RAISED - VALUE FOR ""abc""" );
124 IF ENUM
'VALUE ("ABC") /= ABC
THEN
125 FAILED
( "INCORRECT VALUE FOR ABC" );
129 FAILED
( "EXCEPTION RAISED - VALUE FOR ABC" );
133 IF NEWENUM
'VALUE (IDENT_STR
("abcd")) /= abcd
THEN
134 FAILED
( "INCORRECT VALUE FOR ""abcd""" );
138 FAILED
( "EXCEPTION RAISED - VALUE FOR ""abcd""" );
142 IF NEWENUM
'VALUE (IDENT_STR
("ABCD")) /= abcd
THEN
143 FAILED
( "INCORRECT VALUE FOR ""ABCD""" );
147 FAILED
( "EXCEPTION RAISED - VALUE FOR ""ABCD""" );
151 IF NEWENUM
'VALUE ("abcd") /= abcd
THEN
152 FAILED
( "INCORRECT VALUE FOR abcd" );
156 FAILED
( "EXCEPTION RAISED - VALUE FOR abcd" );
160 IF SUBENUM
'VALUE (IDENT_STR
("A_B_C")) /= A_B_C
THEN
161 FAILED
( "INCORRECT VALUE FOR ""A_B_C""" );
165 FAILED
( "EXCEPTION RAISED - VALUE FOR ""A_B_C""" );
169 IF ENUM
'VALUE (IDENT_STR
("ABC ")) /= ABC
THEN
170 FAILED
( "INCORRECT VALUE WITH TRAILING BLANKS" );
174 FAILED
( "EXCEPTION RAISED - VALUE WITH " &
179 IF NEWENUM
'VALUE (IDENT_STR
(" A_B_C")) /= A_B_C
THEN
180 FAILED
( "INCORRECT VALUE WITH LEADING BLANKS" );
184 FAILED
( "EXCEPTION RAISED - VALUE WITH LEADING " &
189 IF ENUM
'VALUE (IDENT_STR
("A_BC")) /= ABC
THEN
190 FAILED
( "NO EXCEPTION RAISED - ""A_BC"" - 1" );
192 FAILED
( "NO EXCEPTION RAISED - ""A_BC"" - 2" );
195 WHEN CONSTRAINT_ERROR
=>
198 FAILED
( "WRONG EXCEPTION RAISED - ""A_BC""" );
202 IF ENUM
'VALUE (IDENT_STR
("A BC")) /= ABC
THEN
203 FAILED
( "NO EXCEPTION RAISED - ""A BC"" - 1" );
205 FAILED
( "NO EXCEPTION RAISED - ""A BC"" - 2" );
208 WHEN CONSTRAINT_ERROR
=>
211 FAILED
( "WRONG EXCEPTION RAISED - ""A BC""" );
215 IF ENUM
'VALUE (IDENT_STR
("A&BC")) /= ABC
THEN
216 FAILED
( "NO EXCEPTION RAISED - ""A&BC"" - 1" );
218 FAILED
( "NO EXCEPTION RAISED - ""A&BC"" - 2" );
221 WHEN CONSTRAINT_ERROR
=>
224 FAILED
( "WRONG EXCEPTION RAISED - ""A&BC""" );
228 IF ENUM
'VALUE (IDENT_CHAR
(ASCII
.HT
) & "BC") /= BC
THEN
229 FAILED
( "NO EXCEPTION RAISED - LEADING 'HT' - 1" );
231 FAILED
( "NO EXCEPTION RAISED - LEADING 'HT' - 2" );
234 WHEN CONSTRAINT_ERROR
=>
237 FAILED
( "WRONG EXCEPTION RAISED - LEADING 'HT'" );
241 IF NEWENUM
'VALUE ("A" & (IDENT_CHAR
(ASCII
.HT
))) /= A
THEN
242 FAILED
( "NO EXCEPTION RAISED - TRAILING 'HT' - 1" );
244 FAILED
( "NO EXCEPTION RAISED - TRAILING 'HT' - 2" );
247 WHEN CONSTRAINT_ERROR
=>
250 FAILED
( "WRONG EXCEPTION RAISED - TRAILING 'HT'" );
254 IF ENUM
'VALUE (IDENT_STR
("B__C")) /= BC
THEN
255 FAILED
( "NO EXCEPTION RAISED - " &
256 "CONSECUTIVE UNDERSCORES - 1" );
258 FAILED
( "NO EXCEPTION RAISED - " &
259 "CONSECUTIVE UNDERSCORES - 2" );
262 WHEN CONSTRAINT_ERROR
=>
265 FAILED
( "WRONG EXCEPTION RAISED - " &
266 "CONSECUTIVE UNDERSCORES" );
270 IF NEWENUM
'VALUE (IDENT_STR
("BC_")) /= BC
THEN
271 FAILED
( "NO EXCEPTION RAISED - " &
272 "TRAILING UNDERSCORE - 1" );
274 FAILED
( "NO EXCEPTION RAISED - " &
275 "TRAILING UNDERSCORE - 2" );
278 WHEN CONSTRAINT_ERROR
=>
281 FAILED
( "WRONG EXCEPTION RAISED - " &
282 "TRAILING UNDERSCORE" );
286 IF SUBENUM
'VALUE (IDENT_STR
("_BC")) /= BC
THEN
287 FAILED
( "NO EXCEPTION RAISED - " &
288 "LEADING UNDERSCORE - 1" );
290 FAILED
( "NO EXCEPTION RAISED - " &
291 "LEADING UNDERSCORE - 2" );
294 WHEN CONSTRAINT_ERROR
=>
297 FAILED
( "WRONG EXCEPTION RAISED - " &
298 "LEADING UNDERSCORE" );
302 IF SUBENUM
'VALUE (IDENT_STR
("0BC")) /= BC
THEN
303 FAILED
( "NO EXCEPTION RAISED - " &
304 "FIRST CHARACTER IS A DIGIT - 1" );
306 FAILED
( "NO EXCEPTION RAISED - " &
307 "FIRST CHARACTER IS A DIGIT - 2" );
310 WHEN CONSTRAINT_ERROR
=>
313 FAILED
( "WRONG EXCEPTION RAISED - " &
314 "FIRST CHARACTER IS A DIGIT" );