cc1221d.ada

来自「用于进行gcc测试」· ADA 代码 · 共 174 行

ADA
174
字号
-- CC1221D.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.--*-- OBJECTIVE:--     FOR A FORMAL INTEGER TYPE, CHECK THAT THE FOLLOWING BASIC--     OPERATIONS ARE IMPLICITLY DECLARED AND ARE THEREFORE AVAILABLE--     WITHIN THE GENERIC UNIT:  EXPLICIT CONVERSION TO AND FROM REAL--     TYPES AND IMPLICIT CONVERSION FROM INTEGER LITERALS.-- HISTORY:--     BCB 11/12/87  CREATED ORIGINAL TEST FROM SPLIT OF CC1221A.ADAWITH SYSTEM; USE SYSTEM;WITH REPORT; USE REPORT;PROCEDURE CC1221D IS     SUBTYPE SUBINT IS INTEGER RANGE -100 .. 100;     TYPE INT IS RANGE -300 .. 300;     SUBTYPE SINT1 IS INT          RANGE INT (IDENT_INT (-4)) .. INT (IDENT_INT (4));     TYPE INT1 IS RANGE -6 .. 6;BEGIN     TEST ( "CC1221D", "FOR A FORMAL INTEGER TYPE, CHECK THAT THE " &                       "FOLLOWING BASIC OPERATIONS ARE IMPLICITLY " &                       "DECLARED AND ARE THEREFORE AVAILABLE " &                       "WITHIN THE GENERIC UNIT:  EXPLICIT " &                       "CONVERSION TO AND FROM REAL TYPES AND " &                       "IMPLICIT CONVERSION FROM INTEGER LITERALS");     DECLARE -- (D) CHECKS FOR EXPLICIT CONVERSION TO AND FROM OTHER             --     NUMERIC TYPES, AND IMPLICIT CONVERSION FROM             --     INTEGER LITERALS.          GENERIC               TYPE T IS RANGE <>;          PROCEDURE P (STR : STRING);          PROCEDURE P (STR : STRING) IS               TYPE FIXED IS DELTA 0.1 RANGE -100.0 .. 100.0;               FI0  : FIXED := 0.0;               FI2  : FIXED := 2.0;               FIN2 : FIXED := -2.0;               FL0  : FLOAT := 0.0;               FL2  : FLOAT := 2.0;               FLN2 : FLOAT := -2.0;               T0  : T := 0;               T2  : T := 2;               TN2 : T := -2;               FUNCTION IDENT (X : T) RETURN T IS               BEGIN                    IF EQUAL (3, 3) THEN                         RETURN X;                    ELSE                         RETURN T'FIRST;                    END IF;               END IDENT;          BEGIN               IF T0 + 1 /= 1 THEN                    FAILED ( "INCORRECT RESULTS FOR IMPLICIT " &                             "CONVERSION WITH TYPE " & STR & " - 1" );               END IF;               IF T2 + 1 /= 3 THEN                    FAILED ( "INCORRECT RESULTS FOR IMPLICIT " &                             "CONVERSION WITH TYPE " & STR & " - 2" );               END IF;               IF TN2 + 1 /= -1 THEN                    FAILED ( "INCORRECT RESULTS FOR IMPLICIT " &                             "CONVERSION WITH TYPE " & STR & " - 3" );               END IF;               IF T (FI0) /= T0 THEN                    FAILED ( "INCORRECT CONVERSION FROM " &                             "FIXED VALUE 0.0 WITH TYPE " & STR);               END IF;               IF T (FI2) /= IDENT (T2) THEN                    FAILED ( "INCORRECT CONVERSION FROM " &                             "FIXED VALUE 2.0 WITH TYPE " & STR);               END IF;               IF T (FIN2) /= TN2 THEN                    FAILED ( "INCORRECT CONVERSION FROM " &                             "FIXED VALUE -2.0 WITH TYPE " & STR);               END IF;               IF T (FL0) /= IDENT (T0) THEN                    FAILED ( "INCORRECT CONVERSION FROM " &                             "FLOAT VALUE 0.0 WITH TYPE " & STR);               END IF;               IF T (FL2) /= T2 THEN                    FAILED ( "INCORRECT CONVERSION FROM " &                             "FLOAT VALUE 2.0 WITH TYPE " & STR);               END IF;               IF T (FLN2) /= IDENT (TN2) THEN                    FAILED ( "INCORRECT CONVERSION FROM " &                             "FLOAT VALUE -2.0 WITH TYPE " & STR);               END IF;               IF FIXED (T0) /= FI0 THEN                    FAILED ( "INCORRECT CONVERSION TO " &                             "FIXED VALUE 0.0 WITH TYPE " & STR);               END IF;               IF FIXED (IDENT (T2)) /= FI2 THEN                    FAILED ( "INCORRECT CONVERSION TO " &                             "FIXED VALUE 2.0 WITH TYPE " & STR);               END IF;               IF FIXED (TN2) /= FIN2 THEN                    FAILED ( "INCORRECT CONVERSION TO " &                             "FIXED VALUE -2.0 WITH TYPE " & STR);               END IF;               IF FLOAT (IDENT (T0)) /= FL0 THEN                    FAILED ( "INCORRECT CONVERSION TO " &                             "FLOAT VALUE 0.0 WITH TYPE " & STR);               END IF;               IF FLOAT (T2) /= FL2 THEN                    FAILED ( "INCORRECT CONVERSION TO " &                             "FLOAT VALUE 2.0 WITH TYPE " & STR);               END IF;               IF FLOAT (IDENT (TN2)) /= FLN2 THEN                    FAILED ( "INCORRECT CONVERSION TO " &                             "FLOAT VALUE -2.0 WITH TYPE " & STR);               END IF;          END P;          PROCEDURE P1 IS NEW P (SUBINT);          PROCEDURE P2 IS NEW P (SINT1);          PROCEDURE P3 IS NEW P (INT1);     BEGIN           P1 ( "SUBINT" );           P2 ( "SINT" );           P3 ( "INT1" );     END; -- (D).     RESULT;END CC1221D;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?