1-- C49022B.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-- CHECK THAT IN NUMBER DECLARATIONS, IDENTIFIERS CORRECTLY REPRESENT
26-- VALUES OF OTHER LITERALS.
27
28-- BAW 29 SEPT 80
29-- TBN 10/22/85     RENAMED FROM C4A003A.ADA AND ADDED RELATIONAL
30--                  OPERATORS USING NAMED NUMBERS.
31
32
33WITH REPORT;
34PROCEDURE C49022B IS
35
36     USE REPORT;
37
38     A : CONSTANT := 10;                     -- A =  10
39     B : CONSTANT := 25 - (2 * A);           -- B =   5
40     C : CONSTANT := A / B;                  -- C =   2
41     D : CONSTANT := (C * A) - (B - C);      -- D =  17
42     E : CONSTANT := D ** C;                 -- E = 289
43     F : CONSTANT := (E MOD A) + 1;          -- F =  10
44     G : CONSTANT := A REM B + C + D + E + ABS(-F);  -- G = 318
45     H : CONSTANT := BOOLEAN'POS (A > B);    -- H = 1
46     I : CONSTANT := BOOLEAN'POS (A < B);    -- I = 0
47     J : CONSTANT := BOOLEAN'POS (C >= A);   -- J = 0
48     K : CONSTANT := BOOLEAN'POS (B <= B);   -- K = 1
49     L : CONSTANT := BOOLEAN'POS (D = A);    -- L = 0
50     M : CONSTANT := BOOLEAN'POS (A /= F);   -- M = 0
51
52BEGIN
53     TEST("C49022B","CHECK THAT IN NUMBER DECLARATIONS, IDENTIFIERS " &
54                    "CORRECTLY REPRESENT VALUES OF OTHER LITERALS");
55
56     IF G /= 318 THEN
57          FAILED("USE OF OTHER NUMBER DECLARATIONS GIVES " &
58                 "WRONG RESULTS");
59     END IF;
60
61     IF H /= 1 OR I /= 0 OR J /= 0 OR K /= 1 THEN
62          FAILED("USE OF NAMED NUMBERS AND RELATIONAL OPERATORS " &
63                 "GIVES WRONG RESULTS");
64     END IF;
65
66     IF L /= 0 OR M /= 0 THEN
67          FAILED("USE OF NAMED NUMBERS AND EQUALITY OPERATORS " &
68                 "GIVES WRONG RESULTS");
69     END IF;
70
71     RESULT;
72
73END C49022B;
74