ttrunc.pp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. { this tests the trunc routine }
  2. program ttrunc;
  3. {$ifdef VER1_0}
  4. {$define SKIP_CURRENCY_TEST}
  5. {$endif }
  6. {$APPTYPE CONSOLE}
  7. const
  8. RESULT_ONE = 1234;
  9. VALUE_ONE = 1234.5678;
  10. RESULT_CONST_ONE = trunc(VALUE_ONE);
  11. RESULT_TWO = -1234;
  12. VALUE_TWO = -1234.5678;
  13. RESULT_CONST_TWO = trunc(VALUE_TWO);
  14. procedure fail;
  15. begin
  16. WriteLn('Failed!');
  17. halt(1);
  18. end;
  19. procedure test_trunc_real;
  20. var
  21. r: real;
  22. _success : boolean;
  23. l: longint;
  24. Begin
  25. Write('Trunc() real testing...');
  26. _success := true;
  27. r:=VALUE_ONE;
  28. if Trunc(r)<>RESULT_ONE then
  29. _success:=false;
  30. if Trunc(VALUE_ONE)<>RESULT_ONE then
  31. _success:=false;
  32. r:=VALUE_ONE;
  33. if Trunc(r)<>RESULT_CONST_ONE then
  34. _success := false;
  35. r:=VALUE_ONE;
  36. l:=Trunc(r);
  37. if l<>RESULT_ONE then
  38. _success:=false;
  39. l:=Trunc(VALUE_ONE);
  40. if l<>RESULT_ONE then
  41. _success:=false;
  42. r:=VALUE_TWO;
  43. if Trunc(r)<>RESULT_TWO then
  44. _success:=false;
  45. if Trunc(VALUE_TWO)<>RESULT_TWO then
  46. _success:=false;
  47. r:=VALUE_TWO;
  48. if Trunc(r)<>RESULT_CONST_TWO then
  49. _success := false;
  50. r:=VALUE_TWO;
  51. l:=Trunc(r);
  52. if l<>RESULT_TWO then
  53. _success:=false;
  54. l:=Trunc(VALUE_TWO);
  55. if l<>RESULT_TWO then
  56. _success:=false;
  57. if not _success then
  58. fail;
  59. WriteLn('Success!');
  60. end;
  61. procedure test_trunc_single;
  62. var
  63. r: single;
  64. _success : boolean;
  65. l: longint;
  66. Begin
  67. Write('Trunc() single testing...');
  68. _success := true;
  69. r:=VALUE_ONE;
  70. if Trunc(r)<>RESULT_ONE then
  71. _success:=false;
  72. if Trunc(VALUE_ONE)<>RESULT_ONE then
  73. _success:=false;
  74. r:=VALUE_ONE;
  75. if Trunc(r)<>RESULT_CONST_ONE then
  76. _success := false;
  77. r:=VALUE_ONE;
  78. l:=Trunc(r);
  79. if l<>RESULT_ONE then
  80. _success:=false;
  81. l:=Trunc(VALUE_ONE);
  82. if l<>RESULT_ONE then
  83. _success:=false;
  84. r:=VALUE_TWO;
  85. if Trunc(r)<>RESULT_TWO then
  86. _success:=false;
  87. if Trunc(VALUE_TWO)<>RESULT_TWO then
  88. _success:=false;
  89. r:=VALUE_TWO;
  90. if Trunc(r)<>RESULT_CONST_TWO then
  91. _success := false;
  92. r:=VALUE_TWO;
  93. l:=Trunc(r);
  94. if l<>RESULT_TWO then
  95. _success:=false;
  96. l:=Trunc(VALUE_TWO);
  97. if l<>RESULT_TWO then
  98. _success:=false;
  99. if not _success then
  100. fail;
  101. WriteLn('Success!');
  102. end;
  103. procedure test_trunc_double;
  104. var
  105. r: double;
  106. _success : boolean;
  107. l: longint;
  108. Begin
  109. Write('Trunc() double testing...');
  110. _success := true;
  111. r:=VALUE_ONE;
  112. if Trunc(r)<>RESULT_ONE then
  113. _success:=false;
  114. if Trunc(VALUE_ONE)<>RESULT_ONE then
  115. _success:=false;
  116. r:=VALUE_ONE;
  117. if Trunc(r)<>RESULT_CONST_ONE then
  118. _success := false;
  119. r:=VALUE_ONE;
  120. l:=Trunc(r);
  121. if l<>RESULT_ONE then
  122. _success:=false;
  123. l:=Trunc(VALUE_ONE);
  124. if l<>RESULT_ONE then
  125. _success:=false;
  126. r:=VALUE_TWO;
  127. if Trunc(r)<>RESULT_TWO then
  128. _success:=false;
  129. if Trunc(VALUE_TWO)<>RESULT_TWO then
  130. _success:=false;
  131. r:=VALUE_TWO;
  132. if Trunc(r)<>RESULT_CONST_TWO then
  133. _success := false;
  134. r:=VALUE_TWO;
  135. l:=Trunc(r);
  136. if l<>RESULT_TWO then
  137. _success:=false;
  138. l:=Trunc(VALUE_TWO);
  139. if l<>RESULT_TWO then
  140. _success:=false;
  141. if not _success then
  142. fail;
  143. WriteLn('Success!');
  144. end;
  145. {$ifndef SKIP_CURRENCY_TEST}
  146. procedure test_trunc_currency;
  147. var
  148. r: currency;
  149. _success : boolean;
  150. l: longint;
  151. Begin
  152. Write('Trunc() currency testing...');
  153. _success := true;
  154. r:=VALUE_ONE;
  155. if Trunc(r)<>RESULT_ONE then
  156. _success:=false;
  157. if Trunc(VALUE_ONE)<>RESULT_ONE then
  158. _success:=false;
  159. r:=VALUE_ONE;
  160. if Trunc(r)<>RESULT_CONST_ONE then
  161. _success := false;
  162. r:=VALUE_ONE;
  163. l:=Trunc(r);
  164. if l<>RESULT_ONE then
  165. _success:=false;
  166. l:=Trunc(VALUE_ONE);
  167. if l<>RESULT_ONE then
  168. _success:=false;
  169. r:=VALUE_TWO;
  170. if Trunc(r)<>RESULT_TWO then
  171. _success:=false;
  172. if Trunc(VALUE_TWO)<>RESULT_TWO then
  173. _success:=false;
  174. r:=VALUE_TWO;
  175. if Trunc(r)<>RESULT_CONST_TWO then
  176. _success := false;
  177. r:=VALUE_TWO;
  178. l:=Trunc(r);
  179. if l<>RESULT_TWO then
  180. _success:=false;
  181. l:=Trunc(VALUE_TWO);
  182. if l<>RESULT_TWO then
  183. _success:=false;
  184. if not _success then
  185. fail;
  186. WriteLn('Success!');
  187. end;
  188. {$endif SKIP_CURRENCY_TEST}
  189. Begin
  190. test_trunc_real;
  191. test_trunc_single;
  192. test_trunc_double;
  193. {$ifdef SKIP_CURRENCY_TEST}
  194. Writeln('Skipping currency test because its not supported by theis compiler');
  195. {$else SKIP_CURRENCY_TEST}
  196. test_trunc_currency;
  197. {$endif SKIP_CURRENCY_TEST}
  198. end.
  199. {
  200. $Log$
  201. Revision 1.3 2002-10-15 10:26:36 pierre
  202. * add code to remember that currency is only implemented in 1.1 compiler
  203. Revision 1.2 2002/09/18 18:30:30 carl
  204. + currency testing
  205. * more system unit routine testing
  206. Revision 1.1 2002/09/16 19:15:54 carl
  207. * several new routines have a testsuit.
  208. }