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 ATTRIBUTES GIVE THE CORRECT VALUES FOR
26 -- UNCONSTRAINED FORMAL PARAMETERS.
28 -- BASIC CHECKS OF ARRAY OBJECTS AND WHOLE ARRAYS PASSED AS
33 -- JWC 6/28/85 RENAMED TO -AB
40 TYPE I_A
IS ARRAY (INTEGER RANGE <> ) OF INTEGER;
41 TYPE I_A_2
IS ARRAY (INTEGER RANGE <> ,
42 INTEGER RANGE <> ) OF INTEGER;
45 I10
: INTEGER := IDENT_INT
(10);
46 A2_10
: I_A_2
(1 .. I10
, 3+I10
.. I10
+I10
); -- 1..10, 13..20
47 A2_20
: I_A_2
(11 .. 3*I10
, I10
+11 .. I10
+I10
); -- 11..30, 21..20
48 SUBTYPE STR
IS STRING;
49 ALF
: CONSTANT STR
(IDENT_INT
(1)..IDENT_INT
(5)) := "ABCDE";
50 ARF
: STR
(5 .. 9) := ALF
;
52 PROCEDURE P1
(A
: I_A
; FIR
, LAS
: INTEGER; S
: STRING) IS
57 FAILED
("'FIRST IS WRONG " & S
);
63 FAILED
("'LAST IS WRONG " & S
);
66 IF A
'LENGTH /= LAS
- FIR
+ 1
67 OR A
'LENGTH /= A
'LENGTH(1)
69 FAILED
("'LENGTH IS WRONG " & S
);
72 IF (LAS
NOT IN A
'RANGE AND LAS
>= FIR
)
73 OR (FIR
NOT IN A
'RANGE AND LAS
>= FIR
)
75 OR LAS
+ 1 IN A
'RANGE(1)
77 FAILED
("'RANGE IS WRONG " & S
);
82 PROCEDURE P2
(A
: I_A_2
; F1
,L1
,F2
,L2
: INTEGER; S
: STRING) IS
84 IF A
'FIRST /= A
'FIRST(1)
87 FAILED
("'FIRST(1) IS WRONG " & S
);
90 IF A
'LAST(1) /= L1
THEN
91 FAILED
("'LAST(1) IS WRONG " & S
);
94 IF A
'LENGTH(1) /= A
'LENGTH
95 OR A
'LENGTH /= L1
- F1
+ 1
97 FAILED
("'LENGTH(1) IS WRONG " & S
);
101 OR (F1
NOT IN A
'RANGE AND F1
<= L1
)
102 OR (L1
NOT IN A
'RANGE(1) AND F1
<= L1
)
103 OR L1
+ 1 IN A
'RANGE(1)
105 FAILED
("'RANGE(1) IS WRONG " & S
);
108 IF A
'FIRST(2) /= F2
THEN
109 FAILED
("'FIRST(2) IS WRONG " & S
);
112 IF A
'LAST(2) /= L2
THEN
113 FAILED
("'LAST(2) IS WRONG " & S
);
116 IF L2
- F2
/= A
'LENGTH(2) - 1 THEN
117 FAILED
("'LENGTH(2) IS WRONG " & S
);
120 IF F2
- 1 IN A
'RANGE(2)
121 OR (F2
NOT IN A
'RANGE(2) AND A
'LENGTH(2) > 0)
122 OR (L2
NOT IN A
'RANGE(2) AND A
'LENGTH(2) /= 0)
123 OR L2
+ 1 IN A
'RANGE(2)
125 FAILED
("'RANGE(2) IS WRONG " & S
);
129 PROCEDURE S1
(S
:STR
; F
,L
:INTEGER; MESS
:STRING) IS
132 FAILED
("STRING 'FIRST IS WRONG " & MESS
);
135 IF S
'LAST(1) /= L
THEN
136 FAILED
("STRING 'LAST IS WRONG " & MESS
);
139 IF S
'LENGTH /= L
- F
+ 1
140 OR S
'LENGTH(1) /= S
'LENGTH
142 FAILED
("STRING 'LENGTH IS WRONG " & MESS
);
148 OR F
NOT IN S
'RANGE(1)
149 OR L
NOT IN S
'RANGE(1)))
151 OR L
+ 1 IN S
'RANGE(1)
153 FAILED
("STRING 'RANGE IS WRONG " & MESS
);
158 TEST
( "C36205A", "CHECKING ATTRIBUTE VALUES POSSESSED BY FORMAL "&
159 "PARAMETERS WHOSE ACTUALS ARE UNCONSTRAINED " &
160 "ARRAYS - BASIC CHECKS");
163 OR A2_10
'FIRST(1) /= 1
164 OR A2_10
'FIRST(2) /= IDENT_INT
(13)
166 OR A2_20
'FIRST(2) /= 21
168 FAILED
("'FIRST FOR OBJECTS IS WRONG");
174 OR A2_10
'LAST(2) /= 20
175 OR A2_20
'LAST(1) /= 30
176 OR A2_20
'LAST(2) /= IDENT_INT
(20)
178 FAILED
("'LAST FOR OBJECTS IS WRONG");
180 IF A10
'LENGTH /= IDENT_INT
(10)
181 OR A2_10
'LENGTH(1) /= 10
182 OR A2_10
'LENGTH(2) /= IDENT_INT
(8)
183 OR A2_20
'LENGTH /= 20
184 OR A2_20
'LENGTH(2) /= IDENT_INT
(0)
186 FAILED
("'LENGTH FOR OBJECTS IS WRONG");
190 OR IDENT_INT
(11) IN A10
'RANGE(1)
191 OR IDENT_INT
(0) IN A2_10
'RANGE(1)
193 OR 12 IN A2_10
'RANGE(2)
194 OR IDENT_INT
(21) IN A2_10
'RANGE(2)
196 OR IDENT_INT
(31) IN A2_20
'RANGE(1)
197 OR IDENT_INT
(20) IN A2_20
'RANGE(2)
198 OR 0 IN A2_20
'RANGE(2)
200 FAILED
("'RANGE FOR OBJECTS IS WRONG");
203 P1
(A10
, 1, 10, "P1 1");
204 P1
(A20
, 18, 20, "P1 A20");
205 P2
(A2_10
, 1, 10, 13, 20, "P2 1");
206 P2
(A2_20
, 11, 30, 21, 20, "P2 2");
207 S1
(ALF
, 1, 5, "X0");
208 S1
(ARF
, 5, 9, "ARF1");