testv5.pp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. { %VERSION=1.1 }
  2. program testv5;
  3. {$ifopt R+}
  4. {$define skip_range_error_tests}
  5. {$endif }
  6. uses variants,varutils;
  7. Procedure TestLongInt(I : Longint);
  8. Var
  9. V : Variant;
  10. B : Boolean;
  11. begin
  12. Write('Longint to boolean assignment: ');
  13. V:=I;
  14. B:=V;
  15. Writeln(I,' -> ',B);
  16. end;
  17. Procedure TestSmallInt(I : SmallInt);
  18. Var
  19. V : Variant;
  20. B : Boolean;
  21. begin
  22. Write('Smallint to boolean assignment: ');
  23. V:=I;
  24. B:=V;
  25. Writeln(I,' -> ',B);
  26. end;
  27. Procedure TestShortInt(I : ShortInt);
  28. Var
  29. V : Variant;
  30. B : Boolean;
  31. begin
  32. Write('Shortint to boolean assignment: ');
  33. V:=I;
  34. B:=V;
  35. Writeln(I,' -> ',B);
  36. end;
  37. Procedure TestCardinal(I : Cardinal);
  38. Var
  39. V : Variant;
  40. B : Boolean;
  41. begin
  42. Write('Cardinal to boolean assignment: ');
  43. V:=I;
  44. B:=V;
  45. Writeln(I,' -> ',B);
  46. end;
  47. Procedure TestWord(I : Word);
  48. Var
  49. V : Variant;
  50. B : Boolean;
  51. begin
  52. Write('Word to boolean assignment: ');
  53. V:=I;
  54. B:=V;
  55. Writeln(I,' -> ',B);
  56. end;
  57. Procedure TestByte(I : Byte);
  58. Var
  59. V : Variant;
  60. B : Boolean;
  61. begin
  62. Write('Byte to boolean assignment: ');
  63. V:=I;
  64. B:=V;
  65. Writeln(I,' -> ',B);
  66. end;
  67. // 64 bit values
  68. Procedure TestInt64(I : Int64);
  69. Var
  70. V : Variant;
  71. B : Boolean;
  72. begin
  73. Write('Int64 to boolean assignment: ');
  74. V:=I;
  75. B:=V;
  76. Writeln(I,' -> ',B);
  77. end;
  78. Procedure TestQWord(I : QWord);
  79. Var
  80. V : Variant;
  81. B : Boolean;
  82. begin
  83. Write('QWord to boolean assignment: ');
  84. V:=I;
  85. B:=V;
  86. Writeln(I,' -> ',B);
  87. end;
  88. begin
  89. TestLongint(0);
  90. TestSmallInt(0);
  91. TestShortInt(0);
  92. TestCardinal(0);
  93. TestWord(0);
  94. TestByte(0);
  95. TestInt64(0);
  96. TestQWord(0);
  97. TestLongint(1);
  98. TestSmallInt(1);
  99. TestShortInt(1);
  100. TestCardinal(1);
  101. TestWord(1);
  102. TestByte(1);
  103. TestInt64(1);
  104. TestQWord(1);
  105. TestLongint(-1);
  106. TestSmallInt(-1);
  107. TestShortInt(-1);
  108. TestInt64(-1);
  109. {$ifndef skip_range_error_tests}
  110. TestCardinal(-1);
  111. TestWord(-1);
  112. TestByte(-1);
  113. TestQWord(-1);
  114. {$endif ndef skip_range_error_tests}
  115. end.