1-- C45271A.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 EQUALITY AND INEQUALITY ARE EVALUATED CORRECTLY FOR 26-- RECORDS WHOSE COMPONENTS DO NOT HAVE CHANGEABLE DISCRIMINANTS. 27 28-- TBN 8/6/86 29 30WITH REPORT; USE REPORT; 31PROCEDURE C45271A IS 32 33 SUBTYPE INT IS INTEGER RANGE 1 .. 20; 34 TYPE ARRAY_BOOL IS ARRAY (1 .. 5) OF BOOLEAN; 35 36 TYPE REC_TYPE1 IS 37 RECORD 38 BOOL : ARRAY_BOOL; 39 A : INTEGER; 40 END RECORD; 41 42 TYPE REC_TYPE2 (LEN : INT := 3) IS 43 RECORD 44 A : STRING (1 .. LEN); 45 END RECORD; 46 47 TYPE REC_TYPE3 (NUM : INT := 1) IS 48 RECORD 49 A : REC_TYPE1; 50 END RECORD; 51 52 REC1, REC2 : REC_TYPE1 := (A => 2, OTHERS => (OTHERS => TRUE)); 53 REC3, REC4 : REC_TYPE2 (5) := (5, "WHERE"); 54 REC5, REC6 : REC_TYPE2; 55 REC7, REC8 : REC_TYPE3; 56 REC9, REC10 : REC_TYPE3 (3) := (NUM => 3, A => 57 (A => 5, BOOL => (OTHERS => FALSE))); 58 59BEGIN 60 TEST ("C45271A", "CHECK THAT EQUALITY AND INEQUALITY ARE " & 61 "EVALUATED CORRECTLY FOR RECORDS WHOSE " & 62 "COMPONENTS DO NOT HAVE CHANGEABLE " & 63 "DISCRIMINANTS"); 64 65 IF "/=" (LEFT => REC1, RIGHT => REC2) THEN 66 FAILED ("INCORRECT RESULTS FOR RECORDS - 1"); 67 END IF; 68 REC1.A := IDENT_INT(1); 69 IF "=" (LEFT => REC2, RIGHT => REC1) THEN 70 FAILED ("INCORRECT RESULTS FOR RECORDS - 2"); 71 END IF; 72 73 IF REC3 /= REC4 THEN 74 FAILED ("INCORRECT RESULTS FOR RECORDS - 3"); 75 END IF; 76 REC4.A := IDENT_STR("12345"); 77 IF REC3 = REC4 THEN 78 FAILED ("INCORRECT RESULTS FOR RECORDS - 4"); 79 END IF; 80 81 REC5.A := IDENT_STR("WHO"); 82 REC6.A := IDENT_STR("WHY"); 83 IF REC5 = REC6 THEN 84 FAILED ("INCORRECT RESULTS FOR RECORDS - 5"); 85 END IF; 86 REC5.A := "WHY"; 87 IF REC6 /= REC5 THEN 88 FAILED ("INCORRECT RESULTS FOR RECORDS - 6"); 89 END IF; 90 91 REC7.A.A := IDENT_INT(1); 92 REC7.A.BOOL := (OTHERS => IDENT_BOOL(TRUE)); 93 REC8.A.A := 1; 94 REC8.A.BOOL := (OTHERS => TRUE); 95 IF REC7 /= REC8 THEN 96 FAILED ("INCORRECT RESULTS FOR RECORDS - 7"); 97 END IF; 98 REC8.A.BOOL := (OTHERS => IDENT_BOOL(FALSE)); 99 IF REC8 = REC7 THEN 100 FAILED ("INCORRECT RESULTS FOR RECORDS - 8"); 101 END IF; 102 103 IF "/=" (LEFT => REC9, RIGHT => REC10) THEN 104 FAILED ("INCORRECT RESULTS FOR RECORDS - 9"); 105 END IF; 106 REC9.A.A := IDENT_INT(1); 107 IF "=" (LEFT => REC9, RIGHT => REC10) THEN 108 FAILED ("INCORRECT RESULTS FOR RECORDS - 10"); 109 END IF; 110 111 RESULT; 112END C45271A; 113