WITH REPORT; USE REPORT;
PROCEDURE C35703A IS
TYPE REAL1 IS DIGITS 2 RANGE 0.25..0.5;
TYPE REAL2 IS DIGITS 3;
PACKAGE SHOW_TEST_HEADER IS
END SHOW_TEST_HEADER;
PACKAGE BODY SHOW_TEST_HEADER IS
BEGIN
TEST( "C35703A",
"CHECK THAT FIRST AND LAST CAN BE ASSIGNED " &
"AND THAT FIRST <= LAST" );
END SHOW_TEST_HEADER;
PACKAGE XPKG IS
X : REAL1;
END XPKG;
PACKAGE BODY XPKG IS
BEGIN
X := REAL1'FIRST;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
FAILED ( "CONSTRAINT_ERROR RAISED BY ASSIGNMENT OF " &
"REAL1'FIRST" );
WHEN OTHERS =>
FAILED ( "OTHER EXCEPTION RAISED BY ASSIGNMENT OF " &
"REAL1'FIRST" );
END XPKG;
PACKAGE YPKG IS
Y : REAL1;
END YPKG;
PACKAGE BODY YPKG IS
BEGIN
Y := REAL1'LAST;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
FAILED ( "CONSTRAINT_ERROR RAISED BY ASSIGNMENT OF " &
"REAL1'LAST" );
WHEN OTHERS =>
FAILED ( "OTHER EXCEPTION RAISED BY ASSIGNMENT OF " &
"REAL1'LAST" );
END YPKG;
PACKAGE APKG IS
A : REAL2;
END APKG;
PACKAGE BODY APKG IS
BEGIN
A := REAL2'FIRST;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
FAILED ( "CONSTRAINT_ERROR RAISED BY ASSIGNMENT OF " &
"REAL2'FIRST" );
WHEN OTHERS =>
FAILED ( "OTHER EXCEPTION RAISED BY ASSIGNMENT OF " &
"REAL2'FIRST" );
END APKG;
PACKAGE BPKG IS
B : REAL2;
END BPKG;
PACKAGE BODY BPKG IS
BEGIN
B := REAL2'LAST;
EXCEPTION
WHEN CONSTRAINT_ERROR =>
FAILED ( "CONSTRAINT_ERROR RAISED BY ASSIGNMENT OF " &
"REAL2'LAST" );
WHEN OTHERS =>
FAILED ( "OTHER EXCEPTION RAISED BY ASSIGNMENT OF " &
"REAL2'LAST" );
END BPKG;
BEGIN
DECLARE
USE XPKG;
USE YPKG;
BEGIN
IF X > Y THEN
FAILED ( "REAL1'FIRST IS GREATER THAN REAL1'LAST" );
END IF;
END;
DECLARE
USE APKG;
USE BPKG;
BEGIN
IF A > B THEN
FAILED ( "REAL2'FIRST IS GREATER THEN REAL2'LAST" );
END IF;
END;
RESULT;
END C35703A;