WITH REPORT; USE REPORT;
PROCEDURE C41320A IS
PACKAGE P IS
TYPE FLAG IS (RED, WHITE, BLUE);
TYPE ROMAN_DIGITS IS ('I', 'V', 'X', 'C', 'M');
TYPE TRAFFIC_LIGHT IS (RED, YELLOW, GREEN);
TYPE HEX IS ('A', 'B', 'C', 'D', 'E', 'F');
FLAG_COLOR_1 : FLAG := RED;
FLAG_COLOR_2 : FLAG := WHITE;
TRAFFIC_LIGHT_COLOR_1 : FLAG := RED;
HEX_3 : HEX := 'C';
ROMAN_1 : ROMAN_DIGITS := 'I';
END P;
USA_FLAG_1 : P.FLAG := P.RED;
USA_FLAG_3 : P.FLAG := P.BLUE;
HEX_CHAR_3 : P.HEX := P.'C';
ROMAN_DIGITS_4 : P.ROMAN_DIGITS := P.'C';
TRAFFIC_LIGHT_1 : P.TRAFFIC_LIGHT := P.RED;
BEGIN
TEST ("C41320A", "CHECK THAT IMPLICITLY DECLARED ENUMERATION " &
"LITERALS, CHARACTER LITERALS, AND THE " &
"RELATIONAL OPERATORS CAN BE SELECTED FROM " &
"OUTSIDE THE PACKAGE USING AN EXPANDED NAME " &
"FOR ENUMERATION TYPES");
IF P."/=" (USA_FLAG_1, P.FLAG_COLOR_1) THEN
FAILED ("INCORRECT RESULTS FROM EXPANDED NAME - 1");
END IF;
IF P."=" (USA_FLAG_3, P.FLAG_COLOR_2) THEN
FAILED ("INCORRECT RESULTS FROM EXPANDED NAME - 2");
END IF;
IF P."<" (HEX_CHAR_3, P.HEX_3) THEN
FAILED ("INCORRECT RESULTS FROM EXPANDED NAME - 3");
END IF;
IF P.">" (P.ROMAN_1, ROMAN_DIGITS_4) THEN
FAILED ("INCORRECT RESULTS FROM EXPANDED NAME - 4");
END IF;
IF P.">=" (TRAFFIC_LIGHT_1, P.TRAFFIC_LIGHT'PRED (P.GREEN)) THEN
FAILED ("INCORRECT RESULTS FROM EXPANDED NAME - 5");
END IF;
FOR J IN P.FLAG'(P.WHITE) .. P.FLAG'(P.WHITE) LOOP
IF P."<=" (P.FLAG'SUCC (P.WHITE), J) THEN
FAILED ("INCORRECT RESULTS FROM EXPANDED NAME - 6");
END IF;
END LOOP;
IF P.">=" (P.RED, P.GREEN) THEN
FAILED ("INCORRECT RESULT FROM OVERLOADED VARIABLE NAME - 1");
END IF;
IF P."<=" (P.BLUE, P.RED) THEN
FAILED ("INCORRECT RESULT FROM OVERLOADED VARIABLE NAME - 2");
END IF;
RESULT;
END C41320A;