1-- C35508O.ADA
2
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.
15--
16--                                    DISCLAIMER
17--
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 'FIRST' AND 'LAST' YIELD THE CORRECT RESULTS WHEN THE
27--     PREFIX IS A BOOLEAN TYPE.
28
29-- HISTORY:
30--     RJW 03/19/86 CREATED ORIGINAL TEST.
31--     DHH 10/19/87 SHORTENED LINES CONTAINING MORE THAN 72 CHARACTERS.
32
33WITH REPORT; USE REPORT;
34
35PROCEDURE C35508O IS
36
37BEGIN
38     TEST ("C35508O", "CHECK THAT 'FIRST' AND 'LAST' YIELD THE " &
39                      "CORRECT RESULTS WHEN THE PREFIX IS A " &
40                      "BOOLEAN TYPE" );
41
42     DECLARE
43          SUBTYPE TBOOL IS BOOLEAN RANGE IDENT_BOOL(TRUE) ..
44                                                     IDENT_BOOL(TRUE);
45          SUBTYPE FBOOL IS BOOLEAN
46               RANGE IDENT_BOOL(FALSE) .. IDENT_BOOL(FALSE);
47          SUBTYPE NOBOOL IS BOOLEAN
48               RANGE IDENT_BOOL(TRUE) .. IDENT_BOOL(FALSE);
49          TYPE NEWBOOL IS NEW BOOLEAN;
50          TYPE NIL IS NEW BOOLEAN RANGE IDENT_BOOL(TRUE) ..
51                                                    IDENT_BOOL(FALSE);
52
53     BEGIN
54          IF IDENT_BOOL(BOOLEAN'FIRST) /= FALSE THEN
55               FAILED ( "WRONG VALUE FOR BOOLEAN'FIRST" );
56          END IF;
57          IF IDENT_BOOL(BOOLEAN'LAST) /= TRUE THEN
58               FAILED ( "WRONG VALUE FOR BOOLEAN'LAST" );
59          END IF;
60
61          IF TBOOL'FIRST /= TRUE THEN
62               FAILED ( "WRONG VALUE FOR TBOOL'FIRST" );
63          END IF;
64          IF TBOOL'LAST /= TRUE THEN
65               FAILED ( "WRONG VALUE FOR TBOOL'LAST" );
66          END IF;
67
68          IF FBOOL'FIRST /= FALSE THEN
69               FAILED ( "WRONG VALUE FOR FBOOL'FIRST" );
70          END IF;
71          IF FBOOL'LAST /= FALSE THEN
72               FAILED ( "WRONG VALUE FOR FBOOL'LAST" );
73          END IF;
74
75          IF NOBOOL'FIRST /= TRUE THEN
76               FAILED ( "WRONG VALUE FOR NOBOOL'FIRST" );
77          END IF;
78          IF NOBOOL'LAST /= FALSE THEN
79               FAILED ( "WRONG VALUE FOR NOBOOL'LAST" );
80          END IF;
81
82          IF NEWBOOL'FIRST /= FALSE THEN
83               FAILED ( "WRONG VALUE FOR NEWBOOL'FIRST" );
84          END IF;
85          IF NEWBOOL'LAST /= TRUE THEN
86               FAILED ( "WRONG VALUE FOR NEWBOOL'LAST" );
87          END IF;
88          IF NIL'FIRST /= TRUE THEN
89               FAILED ( "WRONG VALUE FOR NIL'FIRST" );
90          END IF;
91          IF NIL'LAST /= FALSE THEN
92               FAILED ( "WRONG VALUE FOR NIL'LAST" );
93          END IF;
94
95     END;
96
97     RESULT;
98END C35508O;
99