123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 |
- { Part of System unit testsuit }
- { Carl Eric Codere Copyright (c) 2002 }
- program tabs;
- {$ifdef VER1_0}
- {$define SKIP_CURRENCY_TEST}
- {$endif }
- {$ifndef MACOS}
- {$APPTYPE CONSOLE}
- {$else}
- {$APPTYPE TOOL}
- {$endif}
- {$R+}
- {$Q+}
- const
- RESULT_ONE_INT = 65536;
- VALUE_ONE_INT = -65536;
- RESULT_CONST_ONE_INT = abs(VALUE_ONE_INT);
- RESULT_TWO_INT = 12345;
- VALUE_TWO_INT = 12345;
- RESULT_CONST_TWO_INT = abs(VALUE_TWO_INT);
- RESULT_THREE_INT = 2147483647;
- VALUE_THREE_INT = -2147483647;
- RESULT_CONST_THREE_INT = abs(VALUE_THREE_INT);
- RESULT_FOUR_INT = 2147483647;
- VALUE_FOUR_INT = 2147483647;
- RESULT_CONST_FOUR_INT = abs(VALUE_FOUR_INT);
- RESULT_ONE_REAL = 12345.6789;
- VALUE_ONE_REAL = -12345.6789;
- RESULT_CONST_ONE_REAL = abs(VALUE_ONE_REAL);
- RESULT_TWO_REAL = 54321.6789E+02;
- VALUE_TWO_REAL = 54321.6789E+02;
- RESULT_CONST_TWO_REAL = abs(VALUE_TWO_REAL);
- RESULT_THREE_REAL = 0.0;
- VALUE_THREE_REAL = 0.0;
- RESULT_CONST_THREE_REAL = abs(VALUE_THREE_REAL);
- RESULT_FOUR_REAL = 12.0;
- VALUE_FOUR_REAL = -12.0;
- RESULT_CONST_FOUR_REAL = abs(VALUE_FOUR_REAL);
- procedure fail;
- begin
- WriteLn('Failure!');
- halt(1);
- end;
- {$ifndef SKIP_CURRENCY_TEST}
- procedure test_abs_currency;
- var
- _result : boolean;
- value : currency;
- value1: currency;
- begin
- Write('Abs() test with currency type...');
- _result := true;
- value := VALUE_ONE_REAL;
- if (trunc(abs(value)) <> trunc(RESULT_CONST_ONE_REAL)) then
- _result := false;
- value := VALUE_TWO_REAL;
- if trunc(abs(value)) <> trunc(RESULT_CONST_TWO_REAL) then
- _result := false;
- value := VALUE_THREE_REAL;
- if trunc(abs(value)) <> trunc(RESULT_CONST_THREE_REAL) then
- _result := false;
- value := VALUE_FOUR_REAL;
- if trunc(abs(value)) <> trunc(RESULT_CONST_FOUR_REAL) then
- _result := false;
- value := VALUE_ONE_REAL;
- value1 := abs(value);
- if trunc(value1) <> trunc(RESULT_ONE_REAL) then
- _result := false;
- value := VALUE_TWO_REAL;
- value1 := abs(value);
- if trunc(value1) <> trunc(RESULT_TWO_REAL) then
- _result := false;
- value := VALUE_THREE_REAL;
- value1 := abs(value);
- if trunc(value1) <> trunc(RESULT_THREE_REAL) then
- _result := false;
- value := VALUE_FOUR_REAL;
- value1 := abs(value);
- if trunc(value1) <> trunc(RESULT_FOUR_REAL) then
- _result := false;
- if not _result then
- fail
- else
- WriteLn('Success!');
- end;
- {$endif SKIP_CURRENCY_TEST}
- procedure test_abs_int64;
- var
- _result : boolean;
- value : int64;
- value1: int64;
- begin
- Write('Abs() test with int64 type...');
- _result := true;
- value := VALUE_ONE_INT;
- if (abs(value) <> (RESULT_CONST_ONE_INT)) then
- _result := false;
- value := VALUE_TWO_INT;
- if abs(value) <> (RESULT_CONST_TWO_INT) then
- _result := false;
- value := VALUE_THREE_INT;
- if abs(value) <> (RESULT_CONST_THREE_INT) then
- _result := false;
- value := VALUE_FOUR_INT;
- if abs(value) <> (RESULT_CONST_FOUR_INT) then
- _result := false;
- value := VALUE_ONE_INT;
- value1 := abs(value);
- if value1 <> (RESULT_ONE_INT) then
- _result := false;
- value := VALUE_TWO_INT;
- value1 := abs(value);
- if value1 <> (RESULT_TWO_INT) then
- _result := false;
- value := VALUE_THREE_INT;
- value1 := abs(value);
- if value1 <> (RESULT_THREE_INT) then
- _result := false;
- value := VALUE_FOUR_INT;
- value1 := abs(value);
- if value1 <> (RESULT_FOUR_INT) then
- _result := false;
- if not _result then
- fail
- else
- WriteLn('Success!');
- end;
- procedure test_abs_longint;
- var
- _result : boolean;
- value : longint;
- value1: longint;
- vsingle : single;
- vdouble : double;
- vextended : extended;
- begin
- Write('Abs() test with longint type...');
- _result := true;
- value := VALUE_ONE_INT;
- if (abs(value) <> (RESULT_CONST_ONE_INT)) then
- _result := false;
- value := VALUE_TWO_INT;
- if abs(value) <> (RESULT_CONST_TWO_INT) then
- _result := false;
- value := VALUE_THREE_INT;
- if abs(value) <> (RESULT_CONST_THREE_INT) then
- _result := false;
- value := VALUE_FOUR_INT;
- if abs(value) <> (RESULT_CONST_FOUR_INT) then
- _result := false;
- value := VALUE_ONE_INT;
- value1 := abs(value);
- if value1 <> (RESULT_ONE_INT) then
- _result := false;
- value := VALUE_TWO_INT;
- value1 := abs(value);
- if value1 <> (RESULT_TWO_INT) then
- _result := false;
- value := VALUE_THREE_INT;
- value1 := abs(value);
- if value1 <> (RESULT_THREE_INT) then
- _result := false;
- value := VALUE_FOUR_INT;
- value1 := abs(value);
- if value1 <> (RESULT_FOUR_INT) then
- _result := false;
- value := VALUE_ONE_INT;
- vsingle := abs(value);
- if (round(vsingle) <> RESULT_ONE_INT) then
- _result := false;
- value := VALUE_ONE_INT;
- vdouble := abs(value);
- if (round(vdouble) <> RESULT_ONE_INT) then
- _result := false;
- value := VALUE_ONE_INT;
- vextended := abs(value);
- if (round(vextended) <> RESULT_ONE_INT) then
- _result := false;
- if not _result then
- fail
- else
- WriteLn('Success!');
- end;
- procedure test_abs_single;
- var
- _result : boolean;
- value : single;
- value1: single;
- begin
- _result := true;
- Write('Abs() test with single type...');
- value := VALUE_ONE_REAL;
- if (trunc(abs(value)) <> trunc(RESULT_CONST_ONE_REAL)) then
- _result := false;
- value := VALUE_THREE_REAL;
- if trunc(abs(value)) <> trunc(RESULT_CONST_THREE_REAL) then
- _result := false;
- value := VALUE_FOUR_REAL;
- if trunc(abs(value)) <> trunc(RESULT_CONST_FOUR_REAL) then
- _result := false;
- value := VALUE_ONE_REAL;
- value1 := abs(value);
- if trunc(value1) <> trunc(RESULT_ONE_REAL) then
- _result := false;
- value := VALUE_THREE_REAL;
- value1 := abs(value);
- if trunc(value1) <> trunc(RESULT_THREE_REAL) then
- _result := false;
- value := VALUE_FOUR_REAL;
- value1 := abs(value);
- if trunc(value1) <> trunc(RESULT_FOUR_REAL) then
- _result := false;
- if not _result then
- fail
- else
- WriteLn('Success!');
- end;
- procedure test_abs_real;
- var
- _result : boolean;
- value : real;
- value1: real;
- begin
- _result := true;
- Write('Abs() test with real type...');
- value := VALUE_ONE_REAL;
- if (trunc(abs(value)) <> trunc(RESULT_CONST_ONE_REAL)) then
- _result := false;
- value := VALUE_TWO_REAL;
- if trunc(abs(value)) <> trunc(RESULT_CONST_TWO_REAL) then
- _result := false;
- value := VALUE_THREE_REAL;
- if trunc(abs(value)) <> trunc(RESULT_CONST_THREE_REAL) then
- _result := false;
- value := VALUE_FOUR_REAL;
- if trunc(abs(value)) <> trunc(RESULT_CONST_FOUR_REAL) then
- _result := false;
- value := VALUE_ONE_REAL;
- value1 := abs(value);
- if trunc(value1) <> trunc(RESULT_ONE_REAL) then
- _result := false;
- value := VALUE_TWO_REAL;
- value1 := abs(value);
- if trunc(value1) <> trunc(RESULT_TWO_REAL) then
- _result := false;
- value := VALUE_THREE_REAL;
- value1 := abs(value);
- if trunc(value1) <> trunc(RESULT_THREE_REAL) then
- _result := false;
- value := VALUE_FOUR_REAL;
- value1 := abs(value);
- if trunc(value1) <> trunc(RESULT_FOUR_REAL) then
- _result := false;
- if not _result then
- fail
- else
- WriteLn('Success!');
- end;
- var
- r: longint;
- _success : boolean;
- l: boolean;
- Begin
- {$ifdef SKIP_CURRENCY_TEST}
- Writeln('Skipping currency test because its not supported by theis compiler');
- {$else SKIP_CURRENCY_TEST}
- test_abs_currency;
- {$endif SKIP_CURRENCY_TEST}
- test_abs_real;
- test_abs_single;
- test_abs_longint;
- test_abs_int64;
- end.
|