-- CC1227A.ADA
|
-- CC1227A.ADA
|
|
|
-- Grant of Unlimited Rights
|
-- Grant of Unlimited Rights
|
--
|
--
|
-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
|
-- 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
|
-- 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 in the software and documentation contained herein.
|
-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
|
-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
|
-- this public release, the Government intends to confer upon all
|
-- this public release, the Government intends to confer upon all
|
-- recipients unlimited rights equal to those held by the Government.
|
-- recipients unlimited rights equal to those held by the Government.
|
-- These rights include rights to use, duplicate, release or disclose the
|
-- These rights include rights to use, duplicate, release or disclose the
|
-- released technical data and computer software in whole or in part, in
|
-- 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
|
-- any manner and for any purpose whatsoever, and to have or permit others
|
-- to do so.
|
-- to do so.
|
--
|
--
|
-- DISCLAIMER
|
-- DISCLAIMER
|
--
|
--
|
-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
|
-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
|
-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
|
-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
|
-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
|
-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
|
-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
|
-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
|
-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
|
-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
|
-- PARTICULAR PURPOSE OF SAID MATERIAL.
|
-- PARTICULAR PURPOSE OF SAID MATERIAL.
|
--*
|
--*
|
-- OBJECTIVE:
|
-- OBJECTIVE:
|
-- CHECK, WHEN DERIVING FROM A FORMAL TYPE, THAT ALL THE PREDEFINED
|
-- CHECK, WHEN DERIVING FROM A FORMAL TYPE, THAT ALL THE PREDEFINED
|
-- OPERATIONS ASSOCIATED WITH THE CLASS OF THE FORMAL TYPE ARE
|
-- OPERATIONS ASSOCIATED WITH THE CLASS OF THE FORMAL TYPE ARE
|
-- DECLARED FOR THE DERIVED TYPE.
|
-- DECLARED FOR THE DERIVED TYPE.
|
|
|
-- HISTORY:
|
-- HISTORY:
|
-- BCB 04/04/88 CREATED ORIGINAL TEST.
|
-- BCB 04/04/88 CREATED ORIGINAL TEST.
|
|
|
WITH REPORT; USE REPORT;
|
WITH REPORT; USE REPORT;
|
WITH SYSTEM; USE SYSTEM;
|
WITH SYSTEM; USE SYSTEM;
|
|
|
PROCEDURE CC1227A IS
|
PROCEDURE CC1227A IS
|
|
|
GENERIC
|
GENERIC
|
TYPE FORM IS RANGE <>;
|
TYPE FORM IS RANGE <>;
|
PACKAGE P IS
|
PACKAGE P IS
|
TYPE DER_FORM IS NEW FORM;
|
TYPE DER_FORM IS NEW FORM;
|
FUNCTION IDENT_DER(X : DER_FORM) RETURN DER_FORM;
|
FUNCTION IDENT_DER(X : DER_FORM) RETURN DER_FORM;
|
FUNCTION IDENT_ADR(Y : ADDRESS) RETURN ADDRESS;
|
FUNCTION IDENT_ADR(Y : ADDRESS) RETURN ADDRESS;
|
END P;
|
END P;
|
|
|
PACKAGE BODY P IS
|
PACKAGE BODY P IS
|
DER_VAR : DER_FORM;
|
DER_VAR : DER_FORM;
|
DER_FORM_BASE_FIRST : DER_FORM;
|
DER_FORM_BASE_FIRST : DER_FORM;
|
DER_FORM_FIRST : DER_FORM;
|
DER_FORM_FIRST : DER_FORM;
|
DER_FORM_LAST : DER_FORM;
|
DER_FORM_LAST : DER_FORM;
|
DER_FORM_SIZE : DER_FORM;
|
DER_FORM_SIZE : DER_FORM;
|
DER_FORM_WIDTH : DER_FORM;
|
DER_FORM_WIDTH : DER_FORM;
|
DER_FORM_POS : DER_FORM;
|
DER_FORM_POS : DER_FORM;
|
DER_FORM_VAL : DER_FORM;
|
DER_FORM_VAL : DER_FORM;
|
DER_FORM_SUCC : DER_FORM;
|
DER_FORM_SUCC : DER_FORM;
|
DER_FORM_PRED : DER_FORM;
|
DER_FORM_PRED : DER_FORM;
|
DER_FORM_IMAGE : STRING(1..5);
|
DER_FORM_IMAGE : STRING(1..5);
|
DER_FORM_VALUE : DER_FORM;
|
DER_FORM_VALUE : DER_FORM;
|
DER_VAR_SIZE : DER_FORM;
|
DER_VAR_SIZE : DER_FORM;
|
DER_VAR_ADDRESS : ADDRESS;
|
DER_VAR_ADDRESS : ADDRESS;
|
DER_EQUAL, DER_UNEQUAL : DER_FORM;
|
DER_EQUAL, DER_UNEQUAL : DER_FORM;
|
DER_GREATER : DER_FORM;
|
DER_GREATER : DER_FORM;
|
DER_MOD, DER_REM : DER_FORM;
|
DER_MOD, DER_REM : DER_FORM;
|
DER_ABS, DER_EXP : DER_FORM;
|
DER_ABS, DER_EXP : DER_FORM;
|
INT : INTEGER := 5;
|
INT : INTEGER := 5;
|
FUNCTION IDENT_DER(X : DER_FORM) RETURN DER_FORM IS
|
FUNCTION IDENT_DER(X : DER_FORM) RETURN DER_FORM IS
|
BEGIN
|
BEGIN
|
IF EQUAL(3,3) THEN
|
IF EQUAL(3,3) THEN
|
RETURN X;
|
RETURN X;
|
END IF;
|
END IF;
|
RETURN 0;
|
RETURN 0;
|
END IDENT_DER;
|
END IDENT_DER;
|
FUNCTION IDENT_ADR(Y : ADDRESS) RETURN ADDRESS IS
|
FUNCTION IDENT_ADR(Y : ADDRESS) RETURN ADDRESS IS
|
X : DER_FORM;
|
X : DER_FORM;
|
BEGIN
|
BEGIN
|
IF EQUAL(3,3) THEN
|
IF EQUAL(3,3) THEN
|
RETURN Y;
|
RETURN Y;
|
END IF;
|
END IF;
|
RETURN X'ADDRESS;
|
RETURN X'ADDRESS;
|
END IDENT_ADR;
|
END IDENT_ADR;
|
BEGIN
|
BEGIN
|
TEST ("CC1227A", "CHECK, WHEN DERIVING FROM A FORMAL TYPE, " &
|
TEST ("CC1227A", "CHECK, WHEN DERIVING FROM A FORMAL TYPE, " &
|
"THAT ALL THE PREDEFINED OPERATIONS " &
|
"THAT ALL THE PREDEFINED OPERATIONS " &
|
"ASSOCIATED WITH THE CLASS OF THE FORMAL " &
|
"ASSOCIATED WITH THE CLASS OF THE FORMAL " &
|
"TYPE ARE DECLARED FOR THE DERIVED TYPE");
|
"TYPE ARE DECLARED FOR THE DERIVED TYPE");
|
|
|
DER_VAR := IDENT_DER(1);
|
DER_VAR := IDENT_DER(1);
|
|
|
IF DER_VAR /= 1 THEN
|
IF DER_VAR /= 1 THEN
|
FAILED ("IMPROPER VALUE FROM ASSIGNMENT OPERATION");
|
FAILED ("IMPROPER VALUE FROM ASSIGNMENT OPERATION");
|
END IF;
|
END IF;
|
|
|
IF DER_VAR NOT IN DER_FORM THEN
|
IF DER_VAR NOT IN DER_FORM THEN
|
FAILED ("IMPROPER RESULT FROM MEMBERSHIP TEST");
|
FAILED ("IMPROPER RESULT FROM MEMBERSHIP TEST");
|
END IF;
|
END IF;
|
|
|
DER_VAR := DER_FORM'(2);
|
DER_VAR := DER_FORM'(2);
|
|
|
IF DER_VAR /= IDENT_DER(2) THEN
|
IF DER_VAR /= IDENT_DER(2) THEN
|
FAILED ("IMPROPER RESULT FROM QUALIFICATION");
|
FAILED ("IMPROPER RESULT FROM QUALIFICATION");
|
END IF;
|
END IF;
|
|
|
DER_VAR := DER_FORM(INT);
|
DER_VAR := DER_FORM(INT);
|
|
|
IF DER_VAR /= IDENT_DER(5) THEN
|
IF DER_VAR /= IDENT_DER(5) THEN
|
FAILED ("IMPROPER RESULT FROM EXPLICIT CONVERSION - " &
|
FAILED ("IMPROPER RESULT FROM EXPLICIT CONVERSION - " &
|
"INTEGER");
|
"INTEGER");
|
END IF;
|
END IF;
|
|
|
DER_VAR := DER_FORM(3.0);
|
DER_VAR := DER_FORM(3.0);
|
|
|
IF DER_VAR /= IDENT_DER(3) THEN
|
IF DER_VAR /= IDENT_DER(3) THEN
|
FAILED ("IMPROPER RESULT FROM EXPLICIT CONVERSION - " &
|
FAILED ("IMPROPER RESULT FROM EXPLICIT CONVERSION - " &
|
"FLOAT");
|
"FLOAT");
|
END IF;
|
END IF;
|
|
|
DER_VAR := 1_000;
|
DER_VAR := 1_000;
|
|
|
IF DER_VAR /= IDENT_DER(1000) THEN
|
IF DER_VAR /= IDENT_DER(1000) THEN
|
FAILED ("IMPROPER RESULT FROM IMPLICIT CONVERSION");
|
FAILED ("IMPROPER RESULT FROM IMPLICIT CONVERSION");
|
END IF;
|
END IF;
|
|
|
DER_FORM_BASE_FIRST := DER_FORM'BASE'FIRST;
|
DER_FORM_BASE_FIRST := DER_FORM'BASE'FIRST;
|
|
|
DER_FORM_FIRST := DER_FORM'FIRST;
|
DER_FORM_FIRST := DER_FORM'FIRST;
|
|
|
IF DER_FORM_BASE_FIRST /= IDENT_DER(DER_FORM_FIRST) THEN
|
IF DER_FORM_BASE_FIRST /= IDENT_DER(DER_FORM_FIRST) THEN
|
FAILED ("IMPROPER VALUE FOR DER_FORM'BASE'FIRST");
|
FAILED ("IMPROPER VALUE FOR DER_FORM'BASE'FIRST");
|
END IF;
|
END IF;
|
|
|
IF DER_FORM_FIRST /= IDENT_DER(DER_FORM'FIRST) THEN
|
IF DER_FORM_FIRST /= IDENT_DER(DER_FORM'FIRST) THEN
|
FAILED ("IMPROPER VALUE FOR DER_FORM'FIRST");
|
FAILED ("IMPROPER VALUE FOR DER_FORM'FIRST");
|
END IF;
|
END IF;
|
|
|
DER_FORM_LAST := DER_FORM'LAST;
|
DER_FORM_LAST := DER_FORM'LAST;
|
|
|
IF DER_FORM_LAST /= IDENT_DER(DER_FORM'LAST) THEN
|
IF DER_FORM_LAST /= IDENT_DER(DER_FORM'LAST) THEN
|
FAILED ("IMPROPER VALUE FOR DER_FORM'LAST");
|
FAILED ("IMPROPER VALUE FOR DER_FORM'LAST");
|
END IF;
|
END IF;
|
|
|
DER_FORM_SIZE := DER_FORM(DER_FORM'SIZE);
|
DER_FORM_SIZE := DER_FORM(DER_FORM'SIZE);
|
|
|
IF DER_FORM_SIZE /= IDENT_DER(DER_FORM(DER_FORM'SIZE)) THEN
|
IF DER_FORM_SIZE /= IDENT_DER(DER_FORM(DER_FORM'SIZE)) THEN
|
FAILED ("IMPROPER VALUE FOR DER_FORM'SIZE");
|
FAILED ("IMPROPER VALUE FOR DER_FORM'SIZE");
|
END IF;
|
END IF;
|
|
|
DER_FORM_WIDTH := DER_FORM(DER_FORM'WIDTH);
|
DER_FORM_WIDTH := DER_FORM(DER_FORM'WIDTH);
|
|
|
IF DER_FORM_WIDTH /= IDENT_DER(DER_FORM(DER_FORM'WIDTH)) THEN
|
IF DER_FORM_WIDTH /= IDENT_DER(DER_FORM(DER_FORM'WIDTH)) THEN
|
FAILED ("IMPROPER VALUE FOR DER_FORM'WIDTH");
|
FAILED ("IMPROPER VALUE FOR DER_FORM'WIDTH");
|
END IF;
|
END IF;
|
|
|
DER_FORM_POS := DER_FORM(DER_FORM'POS(DER_VAR));
|
DER_FORM_POS := DER_FORM(DER_FORM'POS(DER_VAR));
|
|
|
IF DER_FORM_POS /= IDENT_DER(DER_FORM(DER_FORM'POS(DER_VAR)))
|
IF DER_FORM_POS /= IDENT_DER(DER_FORM(DER_FORM'POS(DER_VAR)))
|
THEN FAILED ("IMPROPER VALUE FOR DER_FORM'POS(DER_VAR)");
|
THEN FAILED ("IMPROPER VALUE FOR DER_FORM'POS(DER_VAR)");
|
END IF;
|
END IF;
|
|
|
DER_FORM_VAL := DER_FORM'VAL(DER_VAR);
|
DER_FORM_VAL := DER_FORM'VAL(DER_VAR);
|
|
|
IF DER_FORM_VAL /= IDENT_DER(DER_FORM'VAL(DER_VAR)) THEN
|
IF DER_FORM_VAL /= IDENT_DER(DER_FORM'VAL(DER_VAR)) THEN
|
FAILED ("IMPROPER VALUE FOR DER_FORM'VAL(DER_VAR)");
|
FAILED ("IMPROPER VALUE FOR DER_FORM'VAL(DER_VAR)");
|
END IF;
|
END IF;
|
|
|
DER_FORM_SUCC := DER_FORM'SUCC(DER_VAR);
|
DER_FORM_SUCC := DER_FORM'SUCC(DER_VAR);
|
|
|
IF DER_FORM_SUCC /= IDENT_DER(DER_FORM'SUCC(DER_VAR)) THEN
|
IF DER_FORM_SUCC /= IDENT_DER(DER_FORM'SUCC(DER_VAR)) THEN
|
FAILED ("IMPROPER VALUE FOR DER_FORM'SUCC(DER_VAR)");
|
FAILED ("IMPROPER VALUE FOR DER_FORM'SUCC(DER_VAR)");
|
END IF;
|
END IF;
|
|
|
DER_FORM_PRED := DER_FORM'PRED(DER_VAR);
|
DER_FORM_PRED := DER_FORM'PRED(DER_VAR);
|
|
|
IF DER_FORM_PRED /= IDENT_DER(DER_FORM'PRED(DER_VAR)) THEN
|
IF DER_FORM_PRED /= IDENT_DER(DER_FORM'PRED(DER_VAR)) THEN
|
FAILED ("IMPROPER VALUE FOR DER_FORM'PRED(DER_VAR)");
|
FAILED ("IMPROPER VALUE FOR DER_FORM'PRED(DER_VAR)");
|
END IF;
|
END IF;
|
|
|
DER_FORM_IMAGE := DER_FORM'IMAGE(DER_VAR);
|
DER_FORM_IMAGE := DER_FORM'IMAGE(DER_VAR);
|
|
|
IF DER_FORM_IMAGE(2..5) /= "1000" THEN
|
IF DER_FORM_IMAGE(2..5) /= "1000" THEN
|
FAILED ("IMPROPER VALUE FOR DER_FORM'IMAGE(DER_VAR)");
|
FAILED ("IMPROPER VALUE FOR DER_FORM'IMAGE(DER_VAR)");
|
END IF;
|
END IF;
|
|
|
DER_FORM_VALUE := DER_FORM'VALUE(DER_FORM_IMAGE);
|
DER_FORM_VALUE := DER_FORM'VALUE(DER_FORM_IMAGE);
|
|
|
IF DER_FORM_VALUE /= IDENT_DER(1000) THEN
|
IF DER_FORM_VALUE /= IDENT_DER(1000) THEN
|
FAILED ("IMPROPER VALUE FOR DER_FORM'VALUE" &
|
FAILED ("IMPROPER VALUE FOR DER_FORM'VALUE" &
|
"(DER_FORM_IMAGE)");
|
"(DER_FORM_IMAGE)");
|
END IF;
|
END IF;
|
|
|
DER_VAR_SIZE := DER_FORM(DER_VAR'SIZE);
|
DER_VAR_SIZE := DER_FORM(DER_VAR'SIZE);
|
|
|
IF DER_VAR_SIZE /= IDENT_DER(DER_FORM(DER_VAR'SIZE)) THEN
|
IF DER_VAR_SIZE /= IDENT_DER(DER_FORM(DER_VAR'SIZE)) THEN
|
FAILED ("IMPROPER VALUE FOR DER_VAR'SIZE");
|
FAILED ("IMPROPER VALUE FOR DER_VAR'SIZE");
|
END IF;
|
END IF;
|
|
|
DER_VAR_ADDRESS := DER_VAR'ADDRESS;
|
DER_VAR_ADDRESS := DER_VAR'ADDRESS;
|
|
|
IF DER_VAR_ADDRESS /= IDENT_ADR(DER_VAR'ADDRESS) THEN
|
IF DER_VAR_ADDRESS /= IDENT_ADR(DER_VAR'ADDRESS) THEN
|
FAILED ("IMPROPER VALUE FOR DER_VAR'ADDRESS");
|
FAILED ("IMPROPER VALUE FOR DER_VAR'ADDRESS");
|
END IF;
|
END IF;
|
|
|
DER_EQUAL := IDENT_DER(1000);
|
DER_EQUAL := IDENT_DER(1000);
|
|
|
IF DER_VAR /= DER_EQUAL THEN
|
IF DER_VAR /= DER_EQUAL THEN
|
FAILED ("IMPROPER RESULT FROM INEQUALITY OPERATOR");
|
FAILED ("IMPROPER RESULT FROM INEQUALITY OPERATOR");
|
END IF;
|
END IF;
|
|
|
DER_UNEQUAL := IDENT_DER(500);
|
DER_UNEQUAL := IDENT_DER(500);
|
|
|
IF DER_VAR = DER_UNEQUAL THEN
|
IF DER_VAR = DER_UNEQUAL THEN
|
FAILED ("IMPROPER RESULT FROM EQUALITY OPERATOR");
|
FAILED ("IMPROPER RESULT FROM EQUALITY OPERATOR");
|
END IF;
|
END IF;
|
|
|
IF DER_VAR < DER_UNEQUAL THEN
|
IF DER_VAR < DER_UNEQUAL THEN
|
FAILED ("IMPROPER RESULT FROM LESS THAN OPERATOR");
|
FAILED ("IMPROPER RESULT FROM LESS THAN OPERATOR");
|
END IF;
|
END IF;
|
|
|
IF DER_VAR <= DER_UNEQUAL THEN
|
IF DER_VAR <= DER_UNEQUAL THEN
|
FAILED ("IMPROPER RESULT FROM LESS THAN OR EQUAL TO " &
|
FAILED ("IMPROPER RESULT FROM LESS THAN OR EQUAL TO " &
|
"OPERATOR");
|
"OPERATOR");
|
END IF;
|
END IF;
|
|
|
DER_GREATER := IDENT_DER(1500);
|
DER_GREATER := IDENT_DER(1500);
|
|
|
IF DER_VAR > DER_GREATER THEN
|
IF DER_VAR > DER_GREATER THEN
|
FAILED ("IMPROPER RESULT FROM GREATER THAN OPERATOR");
|
FAILED ("IMPROPER RESULT FROM GREATER THAN OPERATOR");
|
END IF;
|
END IF;
|
|
|
IF DER_VAR >= DER_GREATER THEN
|
IF DER_VAR >= DER_GREATER THEN
|
FAILED ("IMPROPER RESULT FROM GREATER THAN OR EQUAL " &
|
FAILED ("IMPROPER RESULT FROM GREATER THAN OR EQUAL " &
|
"TO OPERATOR");
|
"TO OPERATOR");
|
END IF;
|
END IF;
|
|
|
DER_VAR := DER_VAR + DER_EQUAL;
|
DER_VAR := DER_VAR + DER_EQUAL;
|
|
|
IF DER_VAR /= IDENT_DER(2000) THEN
|
IF DER_VAR /= IDENT_DER(2000) THEN
|
FAILED ("IMPROPER RESULT FROM ADDITION OPERATOR");
|
FAILED ("IMPROPER RESULT FROM ADDITION OPERATOR");
|
END IF;
|
END IF;
|
|
|
DER_VAR := DER_VAR - DER_EQUAL;
|
DER_VAR := DER_VAR - DER_EQUAL;
|
|
|
IF DER_VAR /= IDENT_DER(1000) THEN
|
IF DER_VAR /= IDENT_DER(1000) THEN
|
FAILED ("IMPROPER RESULT FROM SUBTRACTION OPERATOR");
|
FAILED ("IMPROPER RESULT FROM SUBTRACTION OPERATOR");
|
END IF;
|
END IF;
|
|
|
DER_VAR := DER_VAR * IDENT_DER(2);
|
DER_VAR := DER_VAR * IDENT_DER(2);
|
|
|
IF DER_VAR /= IDENT_DER(2000) THEN
|
IF DER_VAR /= IDENT_DER(2000) THEN
|
FAILED ("IMPROPER RESULT FROM MULTIPLICATION OPERATOR");
|
FAILED ("IMPROPER RESULT FROM MULTIPLICATION OPERATOR");
|
END IF;
|
END IF;
|
|
|
DER_VAR := DER_VAR / IDENT_DER(2);
|
DER_VAR := DER_VAR / IDENT_DER(2);
|
|
|
IF DER_VAR /= IDENT_DER(1000) THEN
|
IF DER_VAR /= IDENT_DER(1000) THEN
|
FAILED ("IMPROPER RESULT FROM DIVISION OPERATOR");
|
FAILED ("IMPROPER RESULT FROM DIVISION OPERATOR");
|
END IF;
|
END IF;
|
|
|
DER_MOD := DER_GREATER MOD DER_VAR;
|
DER_MOD := DER_GREATER MOD DER_VAR;
|
|
|
IF DER_MOD /= IDENT_DER(500) THEN
|
IF DER_MOD /= IDENT_DER(500) THEN
|
FAILED ("IMPROPER RESULT FROM MOD OPERATOR");
|
FAILED ("IMPROPER RESULT FROM MOD OPERATOR");
|
END IF;
|
END IF;
|
|
|
DER_REM := DER_GREATER REM DER_VAR;
|
DER_REM := DER_GREATER REM DER_VAR;
|
|
|
IF DER_REM /= IDENT_DER(500) THEN
|
IF DER_REM /= IDENT_DER(500) THEN
|
FAILED ("IMPROPER RESULT FROM REM OPERATOR");
|
FAILED ("IMPROPER RESULT FROM REM OPERATOR");
|
END IF;
|
END IF;
|
|
|
DER_ABS := ABS(IDENT_DER(-1500));
|
DER_ABS := ABS(IDENT_DER(-1500));
|
|
|
IF DER_ABS /= IDENT_DER(DER_GREATER) THEN
|
IF DER_ABS /= IDENT_DER(DER_GREATER) THEN
|
FAILED ("IMPROPER RESULT FROM ABS OPERATOR");
|
FAILED ("IMPROPER RESULT FROM ABS OPERATOR");
|
END IF;
|
END IF;
|
|
|
DER_EXP := IDENT_DER(2) ** IDENT_INT(2);
|
DER_EXP := IDENT_DER(2) ** IDENT_INT(2);
|
|
|
IF DER_EXP /= IDENT_DER(4) THEN
|
IF DER_EXP /= IDENT_DER(4) THEN
|
FAILED ("IMPROPER RESULT FROM EXPONENTIATION OPERATOR");
|
FAILED ("IMPROPER RESULT FROM EXPONENTIATION OPERATOR");
|
END IF;
|
END IF;
|
|
|
RESULT;
|
RESULT;
|
END P;
|
END P;
|
|
|
PACKAGE PACK IS NEW P(INTEGER);
|
PACKAGE PACK IS NEW P(INTEGER);
|
|
|
BEGIN
|
BEGIN
|
NULL;
|
NULL;
|
END CC1227A;
|
END CC1227A;
|
|
|