-- C45265A.ADA -- Grant of Unlimited Rights -- -- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687, -- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained -- unlimited rights in the software and documentation contained herein. -- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making -- this public release, the Government intends to confer upon all -- recipients unlimited rights equal to those held by the Government. -- These rights include rights to use, duplicate, release or disclose the -- released technical data and computer software in whole or in part, in -- any manner and for any purpose whatsoever, and to have or permit others -- to do so. -- -- DISCLAIMER -- -- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR -- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE -- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A -- PARTICULAR PURPOSE OF SAID MATERIAL. --* -- CHECK THAT MEMBERSHIP TESTS YIELD THE CORRECT RESULTS FOR ONE -- DIMENSIONAL AND MULTI-DIMENSIONAL ARRAY TYPES WHEN: -- A) THE SUBTYPE INDICATION DENOTES AN UNCONSTRAINED ARRAY. -- B) THE SUBTYPE INDICATION DENOTES A CONSTRAINED ARRAY. -- TBN 7/22/86 WITH REPORT; USE REPORT; PROCEDURE C45265A IS PACKAGE P IS TYPE KEY IS LIMITED PRIVATE; PRIVATE TYPE KEY IS NEW NATURAL; END P; SUBTYPE INT IS INTEGER RANGE 1 .. 20; TYPE ARRAY_TYPE_1 IS ARRAY (INT RANGE <>) OF INTEGER; TYPE ARRAY_TYPE_2 IS ARRAY (INT RANGE <>, INT RANGE <>) OF INTEGER; TYPE ARRAY_TYPE_3 IS ARRAY (INT RANGE <>, INT RANGE <>, INT RANGE <>) OF INTEGER; TYPE ARRAY_TYPE_4 IS ARRAY (INT RANGE <>) OF P.KEY; TYPE ARRAY_TYPE_5 IS ARRAY (INT RANGE <>, INT RANGE <>) OF P.KEY; SUBTYPE ARRAY_SUB1 IS ARRAY_TYPE_1; SUBTYPE ARRAY_SUB2 IS ARRAY_TYPE_2; SUBTYPE ARRAY_SUB3 IS ARRAY_TYPE_3; SUBTYPE ARRAY_SUB4 IS ARRAY_TYPE_4; SUBTYPE ARRAY_SUB5 IS ARRAY_TYPE_5; SUBTYPE CON_ARRAY1 IS ARRAY_TYPE_1 (1..5); SUBTYPE CON_ARRAY2 IS ARRAY_TYPE_2 (1..2, 1..2); SUBTYPE CON_ARRAY3 IS ARRAY_TYPE_3 (1..2, 1..3, 1..4); SUBTYPE CON_ARRAY4 IS ARRAY_TYPE_4 (1..4); SUBTYPE CON_ARRAY5 IS ARRAY_TYPE_5 (1..2, 1..3); SUBTYPE NULL_ARRAY1 IS ARRAY_TYPE_1 (2 .. 1); ARRAY1 : ARRAY_TYPE_1 (1..10); ARRAY2 : ARRAY_SUB1 (11..20); ARRAY3 : ARRAY_TYPE_2 (1..4, 1..3); ARRAY4 : ARRAY_SUB2 (5..7, 5..8); ARRAY5 : ARRAY_TYPE_3 (1..2, 1..3, 1..4); ARRAY6 : ARRAY_SUB3 (1..3, 1..2, 1..4); NULL_ARRAY_1 : ARRAY_TYPE_1 (3..2); NULL_ARRAY_2 : ARRAY_SUB1 (2..1); ARRAY7 : ARRAY_TYPE_1 (1..10) := (1..10 => 7); ARRAY8 : CON_ARRAY1 := (1..5 => 8); ARRAY9 : ARRAY_TYPE_2 (1..10, 1..10) := (1..10 => (1..10 => 9)); ARRAY10 : CON_ARRAY2 := (1..2 => (1..2 => 10)); ARRAY11 : ARRAY_TYPE_3 (1..10, 1..10, 1..10) := (1..10 => (1..10 => (1..10 => 11))); ARRAY12 : CON_ARRAY3 := (1..2 => (1..3 => (1..4 => 12))); ARRAY13 : ARRAY_TYPE_4 (1..2); ARRAY14 : ARRAY_SUB4 (1..5); ARRAY15 : ARRAY_TYPE_4 (1..6); ARRAY16 : CON_ARRAY4; ARRAY17 : ARRAY_TYPE_5 (1..3, 1..2); ARRAY18 : ARRAY_SUB5 (1..2, 1..3); ARRAY19 : ARRAY_TYPE_5 (1..4, 1..3); ARRAY20 : CON_ARRAY5; BEGIN TEST ("C45265A", "CHECK THAT MEMBERSHIP TESTS YIELD THE CORRECT " & "RESULTS FOR ONE DIMENSIONAL AND MULTI-" & "DIMENSIONAL ARRAY TYPES"); ARRAY1 := (ARRAY1'RANGE => 1); ARRAY2 := (ARRAY2'RANGE => 2); ARRAY3 := (ARRAY3'RANGE(1) => (ARRAY3'RANGE(2) => 3)); ARRAY4 := (ARRAY4'RANGE(1) => (ARRAY4'RANGE(2) => 4)); ARRAY5 := (ARRAY5'RANGE(1) => (ARRAY5'RANGE(2) => (ARRAY5'RANGE(3) => 5))); ARRAY6 := (ARRAY6'RANGE(1) => (ARRAY6'RANGE(2) => (ARRAY6'RANGE(3) => 6))); IF ARRAY1 IN ARRAY_SUB1 THEN NULL; ELSE FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 1"); END IF; IF ARRAY2 NOT IN ARRAY_SUB1 THEN FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 2"); END IF; IF ARRAY3 IN ARRAY_SUB2 THEN NULL; ELSE FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 3"); END IF; IF ARRAY4 NOT IN ARRAY_SUB2 THEN FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 4"); END IF; IF ARRAY5 IN ARRAY_SUB3 THEN NULL; ELSE FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 5"); END IF; IF ARRAY6 NOT IN ARRAY_SUB3 THEN FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 6"); END IF; IF NULL_ARRAY_1 IN ARRAY_SUB1 THEN NULL; ELSE FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 7"); END IF; IF NULL_ARRAY_2 NOT IN ARRAY_SUB1 THEN FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 8"); END IF; IF ARRAY7 IN CON_ARRAY1 THEN FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 9"); END IF; IF ARRAY8 NOT IN CON_ARRAY1 THEN FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 10"); END IF; IF ARRAY9 IN CON_ARRAY2 THEN FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 11"); END IF; IF ARRAY10 NOT IN CON_ARRAY2 THEN FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 12"); END IF; IF ARRAY11 IN CON_ARRAY3 THEN FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 13"); END IF; IF ARRAY12 NOT IN CON_ARRAY3 THEN FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 14"); END IF; IF ARRAY13 IN ARRAY_SUB4 THEN NULL; ELSE FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 15"); END IF; IF ARRAY14 NOT IN ARRAY_SUB4 THEN FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 16"); END IF; IF ARRAY15 IN CON_ARRAY4 THEN FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 17"); END IF; IF ARRAY16 NOT IN CON_ARRAY4 THEN FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 18"); END IF; IF ARRAY17 IN ARRAY_SUB5 THEN NULL; ELSE FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 19"); END IF; IF ARRAY18 NOT IN ARRAY_SUB5 THEN FAILED ("INCORRECT RESULTS FOR UNCONSTRAINED ARRAYS - 20"); END IF; IF ARRAY19 IN CON_ARRAY5 THEN FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 21"); END IF; IF ARRAY20 NOT IN CON_ARRAY5 THEN FAILED ("INCORRECT RESULTS FOR CONSTRAINED ARRAYS - 22"); END IF; IF NULL_ARRAY_1 IN NULL_ARRAY1 THEN FAILED ("INCORRECT RESULTS FOR NULL ARRAYS - 23"); END IF; IF NULL_ARRAY_2 NOT IN NULL_ARRAY1 THEN FAILED ("INCORRECT RESULTS FOR NULL ARRAYS - 24"); END IF; RESULT; END C45265A;