123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- { this tests the trunc routine }
- program ttrunc;
- {$modeswitch exceptions}
- uses
- jdk15;
- {$macro on}
- {$define write:=jlsystem.fout.print}
- {$define writeln:=jlsystem.fout.println}
- {$ifdef VER1_0}
- {$define SKIP_CURRENCY_TEST}
- {$endif }
- {$ifndef MACOS}
- {$APPTYPE CONSOLE}
- {$else}
- {$APPTYPE TOOL}
- {$endif}
- const
- RESULT_ONE = 1234;
- VALUE_ONE = 1234.5678;
- RESULT_CONST_ONE = trunc(VALUE_ONE);
- RESULT_TWO = -1234;
- VALUE_TWO = -1234.5678;
- RESULT_CONST_TWO = trunc(VALUE_TWO);
- procedure fail;
- begin
- WriteLn('Failed!');
- raise jlexception.create('boo');
- end;
- procedure test_trunc_real;
- var
- r: real;
- _success : boolean;
- l: longint;
- Begin
- Write('Trunc() real testing...');
- _success := true;
- r:=VALUE_ONE;
- if Trunc(r)<>RESULT_ONE then
- _success:=false;
- if Trunc(VALUE_ONE)<>RESULT_ONE then
- _success:=false;
- r:=VALUE_ONE;
- if Trunc(r)<>RESULT_CONST_ONE then
- _success := false;
- r:=VALUE_ONE;
- l:=Trunc(r);
- if l<>RESULT_ONE then
- _success:=false;
- l:=Trunc(VALUE_ONE);
- if l<>RESULT_ONE then
- _success:=false;
- r:=VALUE_TWO;
- if Trunc(r)<>RESULT_TWO then
- _success:=false;
- if Trunc(VALUE_TWO)<>RESULT_TWO then
- _success:=false;
- r:=VALUE_TWO;
- if Trunc(r)<>RESULT_CONST_TWO then
- _success := false;
- r:=VALUE_TWO;
- l:=Trunc(r);
- if l<>RESULT_TWO then
- _success:=false;
- l:=Trunc(VALUE_TWO);
- if l<>RESULT_TWO then
- _success:=false;
- if not _success then
- fail;
- WriteLn('Success!');
- end;
- procedure test_trunc_single;
- var
- r: single;
- _success : boolean;
- l: longint;
- Begin
- Write('Trunc() single testing...');
- _success := true;
- r:=VALUE_ONE;
- if Trunc(r)<>RESULT_ONE then
- _success:=false;
- if Trunc(VALUE_ONE)<>RESULT_ONE then
- _success:=false;
- r:=VALUE_ONE;
- if Trunc(r)<>RESULT_CONST_ONE then
- _success := false;
- r:=VALUE_ONE;
- l:=Trunc(r);
- if l<>RESULT_ONE then
- _success:=false;
- l:=Trunc(VALUE_ONE);
- if l<>RESULT_ONE then
- _success:=false;
- r:=VALUE_TWO;
- if Trunc(r)<>RESULT_TWO then
- _success:=false;
- if Trunc(VALUE_TWO)<>RESULT_TWO then
- _success:=false;
- r:=VALUE_TWO;
- if Trunc(r)<>RESULT_CONST_TWO then
- _success := false;
- r:=VALUE_TWO;
- l:=Trunc(r);
- if l<>RESULT_TWO then
- _success:=false;
- l:=Trunc(VALUE_TWO);
- if l<>RESULT_TWO then
- _success:=false;
- if not _success then
- fail;
- WriteLn('Success!');
- end;
- procedure test_trunc_double;
- var
- r: double;
- _success : boolean;
- l: longint;
- Begin
- Write('Trunc() double testing...');
- _success := true;
- r:=VALUE_ONE;
- if Trunc(r)<>RESULT_ONE then
- _success:=false;
- if Trunc(VALUE_ONE)<>RESULT_ONE then
- _success:=false;
- r:=VALUE_ONE;
- if Trunc(r)<>RESULT_CONST_ONE then
- _success := false;
- r:=VALUE_ONE;
- l:=Trunc(r);
- if l<>RESULT_ONE then
- _success:=false;
- l:=Trunc(VALUE_ONE);
- if l<>RESULT_ONE then
- _success:=false;
- r:=VALUE_TWO;
- if Trunc(r)<>RESULT_TWO then
- _success:=false;
- if Trunc(VALUE_TWO)<>RESULT_TWO then
- _success:=false;
- r:=VALUE_TWO;
- if Trunc(r)<>RESULT_CONST_TWO then
- _success := false;
- r:=VALUE_TWO;
- l:=Trunc(r);
- if l<>RESULT_TWO then
- _success:=false;
- l:=Trunc(VALUE_TWO);
- if l<>RESULT_TWO then
- _success:=false;
- if not _success then
- fail;
- WriteLn('Success!');
- end;
- {$ifndef SKIP_CURRENCY_TEST}
- procedure test_trunc_currency;
- var
- r: currency;
- _success : boolean;
- l: longint;
- Begin
- Write('Trunc() currency testing...');
- _success := true;
- r:=VALUE_ONE;
- if Trunc(r)<>RESULT_ONE then
- _success:=false;
- if Trunc(VALUE_ONE)<>RESULT_ONE then
- _success:=false;
- r:=VALUE_ONE;
- if Trunc(r)<>RESULT_CONST_ONE then
- _success := false;
- r:=VALUE_ONE;
- l:=Trunc(r);
- if l<>RESULT_ONE then
- _success:=false;
- l:=Trunc(VALUE_ONE);
- if l<>RESULT_ONE then
- _success:=false;
- r:=VALUE_TWO;
- if Trunc(r)<>RESULT_TWO then
- _success:=false;
- if Trunc(VALUE_TWO)<>RESULT_TWO then
- _success:=false;
- r:=VALUE_TWO;
- if Trunc(r)<>RESULT_CONST_TWO then
- _success := false;
- r:=VALUE_TWO;
- l:=Trunc(r);
- if l<>RESULT_TWO then
- _success:=false;
- l:=Trunc(VALUE_TWO);
- if l<>RESULT_TWO then
- _success:=false;
- if not _success then
- fail;
- WriteLn('Success!');
- end;
- {$endif SKIP_CURRENCY_TEST}
- Begin
- test_trunc_real;
- test_trunc_single;
- test_trunc_double;
- {$ifdef SKIP_CURRENCY_TEST}
- Writeln('Skipping currency test because its not supported by theis compiler');
- {$else SKIP_CURRENCY_TEST}
- test_trunc_currency;
- {$endif SKIP_CURRENCY_TEST}
- end.
|