home *** CD-ROM | disk | FTP | other *** search
- PROGRAM RoundTst; { Copyright (c) 1992 Norbert Juffa }
-
- VAR X,Y,Z: REAL;
- I: LONGINT;
-
- BEGIN
- Y := 4.5;
- Z := 5.5;
- WriteLn ('Testing implementation of Round/Trunc for correct range and IEEE-rounding');
- WriteLn;
- WriteLn;
- Write ('Testing range of Round towards lower limit ... ');
- X := -2147483647.0;
- REPEAT
- I := Round (X);
- X := X - 1.0/256.0;
- UNTIL X < -2147483648.5;
- WriteLn ('passed');
- WriteLn;
- Write ('Testing range of Round towards upper limit ... ');
- X := 2147483647.0;
- REPEAT
- I := Round (X);
- X := X + 1.0/256.0;
- UNTIL X >= 2147483647.5;
- WriteLn ('passed');
- WriteLn;
- Write ('Testing range of Trunc towards lower limit ... ');
- X := -2147483647.0;
- REPEAT
- I := Trunc (X);
- X := X - 1.0/256.0;
- UNTIL X <= -2147483649.0;
- WriteLn ('passed');
- WriteLn;
- Write ('Testing range of Trunc towards upper limit ... ');
- X := 2147483647.0;
- REPEAT
- I := Trunc (X);
- X := X + 1.0/256.0;
- UNTIL X >= 2147483648.0;
- WriteLn ('passed');
- WriteLn;
- Write ('Round (4.5) should be: 4, actual value is: ', Round (Y));
- IF Round (Y) = 4 THEN
- WriteLn (' passed')
- ELSE
- WriteLn (' failed');
- Write ('Round (5.5) should be: 6, actual value is: ', Round (Z));
- IF Round (Z) = 6 THEN
- WriteLn (' passed')
- ELSE
- WriteLn (' failed');
- WriteLn;
- Y := -4.5;
- Z := -5.5;
- Write ('Round (-4.5) should be:-4, actual value is:', Round (Y));
- IF Round (Y) =-4 THEN
- WriteLn (' passed')
- ELSE
- WriteLn (' failed');
- Write ('Round (-5.5) should be:-6, actual value is:', Round (Z));
- IF Round (Z) =-6 THEN
- WriteLn (' passed')
- ELSE
- WriteLn (' failed');
- END. { RoundTst }