tparray13.pp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. {$mode macpas}
  2. {$r-}
  3. procedure error(l: longint);
  4. begin
  5. writeln('error near ',l);
  6. halt(1);
  7. end;
  8. procedure test8bit;
  9. type
  10. ta = 0..1;
  11. const
  12. b: packed array[0..9] of ta = (1,0,1,1,1,0,1,1,1,0);
  13. results: array[0..9] of ta = (1,0,1,1,1,0,1,1,1,0);
  14. var
  15. i: longint;
  16. begin
  17. if (sizeof(b)<>2) then
  18. error(1);
  19. for i := low(results) to high(results) do
  20. if b[i] <> results[i] then
  21. error(7);
  22. end;
  23. procedure test8to16bit;
  24. type
  25. ta = 0..7;
  26. const
  27. b: packed array[0..5] of ta = (2,4,1,7,5,1);
  28. results: array[0..5] of ta = (2,4,1,7,5,1);
  29. var
  30. i: longint;
  31. begin
  32. if (sizeof(b)<>3) then
  33. error(16);
  34. for i := low(results) to high(results) do
  35. if b[i] <> results[i] then
  36. error(17);
  37. end;
  38. procedure test16bit;
  39. type
  40. ta = 0..511;
  41. const
  42. b: packed array[0..4] of ta = (356,39,485,100,500);
  43. results: array[0..4] of ta = (356,39,485,100,500);
  44. var
  45. i: longint;
  46. begin
  47. if (sizeof(b)<>6) then
  48. error(26);
  49. for i := low(results) to high(results) do
  50. if b[i] <> results[i] then
  51. error(27);
  52. end;
  53. procedure test16to24bit;
  54. type
  55. ta = 0..2047;
  56. const
  57. b: packed array[0..4] of ta = (1000,67,853,512,759);
  58. results: array[0..4] of ta = (1000,67,853,512,759);
  59. var
  60. i: longint;
  61. begin
  62. if (sizeof(b)<>7) then
  63. error(36);
  64. for i := low(results) to high(results) do
  65. if b[i] <> results[i] then
  66. error(37);
  67. end;
  68. procedure test32bit;
  69. type
  70. ta = 0..(1 shl 19) - 1;
  71. const
  72. b: packed array[0..4] of ta = ($0002F687,$00032222,$000178EE,$000057970,$0007E1D2);
  73. results: array[0..4] of ta = ($0002F687,$00032222,$000178EE,$000057970,$0007E1D2);
  74. var
  75. i: longint;
  76. begin
  77. if (sizeof(b)<>12) then
  78. error(46);
  79. for i := low(results) to high(results) do
  80. if b[i] <> results[i] then
  81. error(47);
  82. end;
  83. procedure test32to40bit;
  84. type
  85. ta = 0..$7fffffff;
  86. const
  87. b: packed array[0..4] of ta = ($71567851,$56789ABD,$50F11178,$39D68DDC,$6C7A5A7);
  88. results: array[0..4] of ta = ($71567851,$56789ABD,$50F11178,$39D68DDC,$6C7A5A7);
  89. var
  90. i: longint;
  91. begin
  92. if (sizeof(b)<>20) then
  93. error(56);
  94. for i := low(results) to high(results) do
  95. if b[i] <> results[i] then
  96. error(57);
  97. end;
  98. begin
  99. test8bit;
  100. test8to16bit;
  101. test16bit;
  102. test16to24bit;
  103. test32bit;
  104. test32to40bit;
  105. end.