| -- C46021A.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: |
| -- CHECK THAT FLOATING POINT CONVERSIONS ARE PERFORMED CORRECTLY |
| -- WHEN THE OPERAND TYPE IS AN INTEGER TYPE, FOR 5-DIGIT PRECISION. |
| |
| -- HISTORY: |
| -- JET 02/12/88 CREATED ORIGINAL TEST. |
| |
| WITH REPORT; USE REPORT; |
| |
| PROCEDURE C46021A IS |
| |
| TYPE FLOAT5 IS DIGITS 5; |
| TYPE INT IS RANGE -32768..32767; |
| |
| TYPE NFLOAT5 IS NEW FLOAT5; |
| |
| FUNCTION IDENT (A : FLOAT5) RETURN FLOAT5 IS |
| BEGIN |
| IF EQUAL(3,3) THEN |
| RETURN A; |
| ELSE |
| RETURN 0.0; |
| END IF; |
| END IDENT; |
| |
| FUNCTION IDENT (A : NFLOAT5) RETURN NFLOAT5 IS |
| BEGIN |
| IF EQUAL(3,3) THEN |
| RETURN A; |
| ELSE |
| RETURN 0.0; |
| END IF; |
| END IDENT; |
| |
| BEGIN |
| TEST ("C46021A", "CHECK THAT FLOATING POINT CONVERSIONS ARE " & |
| "PERFORMED CORRECTLY WHEN THE OPERAND TYPE " & |
| "IS AN INTEGER TYPE, FOR 5-DIGIT PRECISION"); |
| |
| IF FLOAT5(IDENT_INT(-7)) /= -7.0 THEN |
| FAILED ("INCORRECT VALUE (1)"); |
| END IF; |
| |
| IF FLOAT5(IDENT_INT(3)) /= 3.0 THEN |
| FAILED ("INCORRECT VALUE (2)"); |
| END IF; |
| |
| IF FLOAT5(IDENT_INT(-999)) /= -999.0 THEN |
| FAILED ("INCORRECT VALUE (3)"); |
| END IF; |
| |
| IF FLOAT5(IDENT_INT(101)) /= 101.0 THEN |
| FAILED ("INCORRECT VALUE (4)"); |
| END IF; |
| |
| IF FLOAT5(IDENT_INT(-32767)) /= -32767.0 THEN |
| FAILED ("INCORRECT VALUE (5)"); |
| END IF; |
| |
| IF FLOAT5(IDENT_INT(32767)) /= 32767.0 THEN |
| FAILED ("INCORRECT VALUE (6)"); |
| END IF; |
| |
| IF FLOAT5(-7) /= IDENT(-7.0) THEN |
| FAILED ("INCORRECT VALUE (7)"); |
| END IF; |
| |
| IF FLOAT5(3) /= IDENT(3.0) THEN |
| FAILED ("INCORRECT VALUE (8)"); |
| END IF; |
| |
| IF FLOAT5(-999) /= IDENT(-999.0) THEN |
| FAILED ("INCORRECT VALUE (9)"); |
| END IF; |
| |
| IF FLOAT5(101) /= IDENT(101.0) THEN |
| FAILED ("INCORRECT VALUE (10)"); |
| END IF; |
| |
| IF FLOAT5(-32767) /= IDENT(-32767.0) THEN |
| FAILED ("INCORRECT VALUE (11)"); |
| END IF; |
| |
| IF FLOAT5(32767) /= IDENT(32767.0) THEN |
| FAILED ("INCORRECT VALUE (12)"); |
| END IF; |
| |
| IF FLOAT5(INT'(-7)) /= IDENT(-7.0) THEN |
| FAILED ("INCORRECT VALUE (13)"); |
| END IF; |
| |
| IF FLOAT5(INT'(3)) /= IDENT(3.0) THEN |
| FAILED ("INCORRECT VALUE (14)"); |
| END IF; |
| |
| IF FLOAT5(INT'(-999)) /= IDENT(-999.0) THEN |
| FAILED ("INCORRECT VALUE (15)"); |
| END IF; |
| |
| IF FLOAT5(INT'(101)) /= IDENT(101.0) THEN |
| FAILED ("INCORRECT VALUE (16)"); |
| END IF; |
| |
| IF FLOAT5(INT'(-32767)) /= IDENT(-32767.0) THEN |
| FAILED ("INCORRECT VALUE (17)"); |
| END IF; |
| |
| IF FLOAT5(INT'(32767)) /= IDENT(32767.0) THEN |
| FAILED ("INCORRECT VALUE (18)"); |
| END IF; |
| |
| IF NFLOAT5(IDENT_INT(-7)) /= -7.0 THEN |
| FAILED ("INCORRECT VALUE (19)"); |
| END IF; |
| |
| IF NFLOAT5(IDENT_INT(3)) /= 3.0 THEN |
| FAILED ("INCORRECT VALUE (20)"); |
| END IF; |
| |
| IF NFLOAT5(IDENT_INT(-999)) /= -999.0 THEN |
| FAILED ("INCORRECT VALUE (21)"); |
| END IF; |
| |
| IF NFLOAT5(IDENT_INT(101)) /= 101.0 THEN |
| FAILED ("INCORRECT VALUE (22)"); |
| END IF; |
| |
| IF NFLOAT5(IDENT_INT(-32767)) /= -32767.0 THEN |
| FAILED ("INCORRECT VALUE (23)"); |
| END IF; |
| |
| IF NFLOAT5(IDENT_INT(32767)) /= 32767.0 THEN |
| FAILED ("INCORRECT VALUE (24)"); |
| END IF; |
| |
| IF NFLOAT5(-7) /= IDENT(-7.0) THEN |
| FAILED ("INCORRECT VALUE (25)"); |
| END IF; |
| |
| IF NFLOAT5(3) /= IDENT(3.0) THEN |
| FAILED ("INCORRECT VALUE (26)"); |
| END IF; |
| |
| IF NFLOAT5(-999) /= IDENT(-999.0) THEN |
| FAILED ("INCORRECT VALUE (27)"); |
| END IF; |
| |
| IF NFLOAT5(101) /= IDENT(101.0) THEN |
| FAILED ("INCORRECT VALUE (28)"); |
| END IF; |
| |
| IF NFLOAT5(-32767) /= IDENT(-32767.0) THEN |
| FAILED ("INCORRECT VALUE (29)"); |
| END IF; |
| |
| IF NFLOAT5(32767) /= IDENT(32767.0) THEN |
| FAILED ("INCORRECT VALUE (30)"); |
| END IF; |
| |
| IF NFLOAT5(INT'(-7)) /= IDENT(-7.0) THEN |
| FAILED ("INCORRECT VALUE (31)"); |
| END IF; |
| |
| IF NFLOAT5(INT'(3)) /= IDENT(3.0) THEN |
| FAILED ("INCORRECT VALUE (32)"); |
| END IF; |
| |
| IF NFLOAT5(INT'(-999)) /= IDENT(-999.0) THEN |
| FAILED ("INCORRECT VALUE (33)"); |
| END IF; |
| |
| IF NFLOAT5(INT'(101)) /= IDENT(101.0) THEN |
| FAILED ("INCORRECT VALUE (34)"); |
| END IF; |
| |
| IF NFLOAT5(INT'(-32767)) /= IDENT(-32767.0) THEN |
| FAILED ("INCORRECT VALUE (35)"); |
| END IF; |
| |
| IF NFLOAT5(INT'(32767)) /= IDENT(32767.0) THEN |
| FAILED ("INCORRECT VALUE (36)"); |
| END IF; |
| |
| RESULT; |
| |
| END C46021A; |