-- C45502B.DEP

--                             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:
--     CHECK THAT MULTIPLICATION AND DIVISION YIELD CORRECT RESULTS WHEN
--     THE OPERANDS ARE OF PREDEFINED TYPE SHORT_INTEGER.

-- APPLICABILITY CRITERIA:
--     THIS TEST IS APPLICABLE TO THOSE IMPLEMENTATIONS WHICH SUPPORT
--     SHORT_INTEGER.

--     IF "SHORT_INTEGER" IS NOT SUPPORTED, THEN THE DECLARATION OF
--     "CHECK_SHORT" MUST BE REJECTED.

-- HISTORY:
--     RJW 09/01/86 CREATED ORIGINAL TEST.
--     DHH 01/13/88 ADDED APPLICABILITY CRITERIA AND STANDARD HEADER.

WITH REPORT; USE REPORT;
PROCEDURE C45502B IS

     CHECK_SHORT : SHORT_INTEGER;                   -- N/A => ERROR.

     FUNCTION IDENT (S : SHORT_INTEGER) RETURN SHORT_INTEGER IS
     BEGIN
          RETURN SHORT_INTEGER (IDENT_INT (INTEGER (S)));
     END IDENT;

BEGIN
     TEST ( "C45502B", "CHECK THAT MULTIPLICATION AND DIVISION " &
                       "YIELD CORRECT RESULTS WHEN THE OPERANDS " &
                       "ARE OF PREDEFINED TYPE SHORT_INTEGER" );

     DECLARE
          I0  : SHORT_INTEGER := 0;
          I1  : SHORT_INTEGER := 1;
          I2  : SHORT_INTEGER := 2;
          I3  : SHORT_INTEGER := 3;
          I5  : SHORT_INTEGER := 5;
          I10 : SHORT_INTEGER := 10;
          I11 : SHORT_INTEGER := 11;
          I12 : SHORT_INTEGER := 12;
          I13 : SHORT_INTEGER := 13;
          I14 : SHORT_INTEGER := 14;
          N1  : SHORT_INTEGER := -1;
          N2  : SHORT_INTEGER := -2;
          N5  : SHORT_INTEGER := -5;
          N10 : SHORT_INTEGER := -10;
          N11 : SHORT_INTEGER := -11;
          N12 : SHORT_INTEGER := -12;
          N13 : SHORT_INTEGER := -13;
          N14 : SHORT_INTEGER := -14;
          N50 : SHORT_INTEGER := -50;

     BEGIN
          IF I0 * SHORT_INTEGER'FIRST /= 0 THEN
               FAILED ( "INCORRECT RESULT FOR I0 * " &
                        "SHORT_INTEGER'FIRST" );
          END IF;

          IF I0 * SHORT_INTEGER'LAST /= 0 THEN
               FAILED ( "INCORRECT RESULT FOR I0 * " &
                        "SHORT_INTEGER'LAST" );
          END IF;

          IF N1 * SHORT_INTEGER'LAST + SHORT_INTEGER'LAST /= 0 THEN
               FAILED ( "INCORRECT RESULT FOR N1 * " &
                        "SHORT_INTEGER'LAST" );
          END IF;

          IF I3 * I1 /= I3 THEN
               FAILED ( "INCORRECT RESULT FOR I3 * I1" );
          END IF;

          IF IDENT (I3) * IDENT (I1) /= I3 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (I3) * " &
                        "IDENT (I1)" );
          END IF;

          IF I2 * N1 /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR I2 * N1" );
          END IF;

          IF "*" (LEFT => I2, RIGHT => N1) /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR ""*"" (LEFT => I2, " &
                        "RIGHT => N1)" );
          END IF;

          IF IDENT (I2) * IDENT (N1) /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (I2) * " &
                        "IDENT (N1)" );
          END IF;

          IF I5 * I2 * N5 /= N50 THEN
               FAILED ( "INCORRECT RESULT FOR I5 * I2 * N5" );
          END IF;

          IF IDENT (N1) * IDENT (N5) /= I5 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (N1) * " &
                        "IDENT (N5)" );
          END IF;

          IF "*" (LEFT => IDENT (N1), RIGHT => IDENT (N5)) /=
                 I5 THEN
               FAILED ( "INCORRECT RESULT FOR ""*"" (LEFT => " &
                        "IDENT (N1), RIGHT => IDENT (N5))" );
          END IF;

          IF IDENT (N1) * IDENT (I2) * IDENT (N5) /= I10
             THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (N1) * " &
                        "IDENT (I2) * IDENT (N5)" );
          END IF;

          IF (-IDENT (I0)) * IDENT (I10) /= I0 THEN
               FAILED ( "INCORRECT RESULT FOR (-IDENT (I0)) * " &
                        "IDENT (I10)" );
          END IF;

          IF I0 * I10 /= (-I0) THEN
               FAILED ( "INCORRECT RESULT FOR I0 * I10" );
          END IF;

          IF "*" (LEFT => I0, RIGHT => I10) /= (-I0) THEN
               FAILED ( "INCORRECT RESULT FOR ""*"" (LEFT => I0, " &
                        "RIGHT => I10)" );
          END IF;

          IF IDENT (I10) / IDENT (I5) /= I2 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (I10) " &
                        "/ IDENT (I5)" );
          END IF;

          IF I11 / I5 /= I2 THEN
               FAILED ( "INCORRECT RESULT FOR I11 / I5" );
          END IF;

          IF IDENT (I12) / IDENT (I5) /= I2 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (I12) " &
                        "/ IDENT (I5)" );
          END IF;

          IF "/" (LEFT => IDENT (I12), RIGHT => IDENT (I5)) /=
                 I2 THEN
               FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => " &
                        "IDENT (I12), RIGHT => IDENT (I5))" );
          END IF;

          IF I13 / I5 /= I2 THEN
               FAILED ( "INCORRECT RESULT FOR I13 / I5" );
          END IF;

          IF IDENT (I14) / IDENT (I5) /= I2 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (I14) " &
                        "/ IDENT (I5)" );
          END IF;

          IF I10 / N5 /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR I10 / N5" );
          END IF;

          IF "/" (LEFT => I10, RIGHT => N5) /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => I10, " &
                        "RIGHT => N5)" );
          END IF;

          IF IDENT (I11) / IDENT (N5) /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (I11) " &
                        "/ IDENT (N5)" );
          END IF;

          IF I12 / N5 /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR I12 / N5" );
          END IF;

          IF IDENT (I13) / IDENT (N5) /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (I13) " &
                        "/ IDENT (N5)" );
          END IF;

          IF I14 / N5 /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR I14 / N5" );
          END IF;

          IF IDENT (N10) / IDENT (I5) /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (N10) " &
                        "/ IDENT (I5)" );
          END IF;

          IF "/" (LEFT => IDENT (N10), RIGHT => IDENT (I5)) /=
                 N2 THEN
               FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => " &
                        "IDENT (N10), RIGHT => IDENT (I5))" );
          END IF;

          IF N11 / I5 /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR N11 / I5" );
          END IF;

          IF IDENT (N12) / IDENT (I5) /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (N12) " &
                        "/ IDENT (I5)" );
          END IF;

          IF N13 / I5 /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR N13 / I5" );
          END IF;

          IF "/" (LEFT => N13, RIGHT => I5) /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => N13, " &
                        "RIGHT => I5)" );
          END IF;

          IF IDENT (N14) / IDENT (I5) /= N2 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (N14) " &
                        "/ IDENT (I5)" );
          END IF;

          IF N10 / N5 /= I2 THEN
               FAILED ( "INCORRECT RESULT FOR N10 / N5" );
          END IF;

          IF IDENT (N11) / IDENT (N5) /= I2 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (N11) " &
                        "/ IDENT (N5)" );
          END IF;

          IF "/" (LEFT => IDENT (N11), RIGHT => IDENT (N5)) /=
                 I2 THEN
               FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => " &
                        "IDENT (N11), RIGHT => IDENT (N5))" );
          END IF;

          IF N12 / N5 /= I2 THEN
               FAILED ( "INCORRECT RESULT FOR N12 / N5" );
          END IF;


          IF IDENT (N13) / IDENT (N5) /= I2 THEN
               FAILED ( "INCORRECT RESULT FOR IDENT (N13) " &
                        "/ IDENT (N5)" );
          END IF;

          IF N14 / N5 /= I2 THEN
               FAILED ( "INCORRECT RESULT FOR N14 / N5" );
          END IF;

          IF "/" (LEFT => N14, RIGHT => N5) /= I2 THEN
               FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => N14, " &
                        "RIGHT => N5)" );
          END IF;

          IF I0 / I5 /= (-I0) THEN
               FAILED ( "INCORRECT RESULT FOR I0 / I5" );
          END IF;

          IF "/" (LEFT => I0, RIGHT => I5) /= (-I0) THEN
               FAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => I0, " &
                        "RIGHT => I5)" );
          END IF;

          IF (-IDENT (I0)) / IDENT (I5) /= I0 THEN
               FAILED ( "INCORRECT RESULT FOR (-IDENT (I0)) / " &
                        "IDENT (I5)" );
          END IF;

     END;

     RESULT;
END C45502B;
