tsetsize.pp 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. program SetSizes;
  2. {$APPTYPE CONSOLE}
  3. {$ifdef fpc}
  4. {$mode delphi}
  5. {$packset 1}
  6. {$endif}
  7. const
  8. _a= 0;
  9. type
  10. TIntRange1_a = 0 + _a.. Pred( 1 * 8) + _a;
  11. TIntRange2_a = 0 + _a.. Pred( 2 * 8) + _a;
  12. TIntRange3_a = 0 + _a.. Pred( 3 * 8) + _a;
  13. TIntRange4_a = 0 + _a.. Pred( 4 * 8) + _a;
  14. TIntRange5_a = 0 + _a.. Pred( 5 * 8) + _a;
  15. TIntRange6_a = 0 + _a.. Pred( 6 * 8) + _a;
  16. TIntRange7_a = 0 + _a.. Pred( 7 * 8) + _a;
  17. TIntRange8_a = 0 + _a.. Pred( 8 * 8) + _a;
  18. TIntRange9_a = 0 + _a.. Pred( 9 * 8) + _a;
  19. TIntRange10_a= 0 + _a.. Pred(10 * 8) + _a;
  20. TIntRange11_a= 0 + _a.. Pred(11 * 8) + _a;
  21. TIntRange12_a= 0 + _a.. Pred(12 * 8) + _a;
  22. TIntRange13_a= 0 + _a.. Pred(13 * 8) + _a;
  23. TIntRange14_a= 0 + _a.. Pred(14 * 8) + _a;
  24. TIntRange15_a= 0 + _a.. Pred(15 * 8) + _a;
  25. TIntRange16_a= 0 + _a.. Pred(16 * 8) + _a;
  26. TSet1_a = set of TIntRange1_a;
  27. TSet2_a = set of TIntRange2_a;
  28. TSet3_a = set of TIntRange3_a;
  29. TSet4_a = set of TIntRange4_a;
  30. TSet5_a = set of TIntRange5_a;
  31. TSet6_a = set of TIntRange6_a;
  32. TSet7_a = set of TIntRange7_a;
  33. TSet8_a = set of TIntRange8_a;
  34. TSet9_a = set of TIntRange9_a;
  35. TSet10_a= set of TIntRange10_a;
  36. TSet11_a= set of TIntRange11_a;
  37. TSet12_a= set of TIntRange12_a;
  38. TSet13_a= set of TIntRange13_a;
  39. TSet14_a= set of TIntRange14_a;
  40. TSet15_a= set of TIntRange15_a;
  41. TSet16_a= set of TIntRange16_a;
  42. const
  43. _b= 1;
  44. type
  45. TIntRange1_b = 0 + _b.. Pred( 1 * 8) + _b;
  46. TIntRange2_b = 0 + _b.. Pred( 2 * 8) + _b;
  47. TIntRange3_b = 0 + _b.. Pred( 3 * 8) + _b;
  48. TIntRange4_b = 0 + _b.. Pred( 4 * 8) + _b;
  49. TIntRange5_b = 0 + _b.. Pred( 5 * 8) + _b;
  50. TIntRange6_b = 0 + _b.. Pred( 6 * 8) + _b;
  51. TIntRange7_b = 0 + _b.. Pred( 7 * 8) + _b;
  52. TIntRange8_b = 0 + _b.. Pred( 8 * 8) + _b;
  53. TIntRange9_b = 0 + _b.. Pred( 9 * 8) + _b;
  54. TIntRange10_b= 0 + _b.. Pred(10 * 8) + _b;
  55. TIntRange11_b= 0 + _b.. Pred(11 * 8) + _b;
  56. TIntRange12_b= 0 + _b.. Pred(12 * 8) + _b;
  57. TIntRange13_b= 0 + _b.. Pred(13 * 8) + _b;
  58. TIntRange14_b= 0 + _b.. Pred(14 * 8) + _b;
  59. TIntRange15_b= 0 + _b.. Pred(15 * 8) + _b;
  60. TIntRange16_b= 0 + _b.. Pred(16 * 8) + _b;
  61. TSet1_b = set of TIntRange1_b;
  62. TSet2_b = set of TIntRange2_b;
  63. TSet3_b = set of TIntRange3_b;
  64. TSet4_b = set of TIntRange4_b;
  65. TSet5_b = set of TIntRange5_b;
  66. TSet6_b = set of TIntRange6_b;
  67. TSet7_b = set of TIntRange7_b;
  68. TSet8_b = set of TIntRange8_b;
  69. TSet9_b = set of TIntRange9_b;
  70. TSet10_b= set of TIntRange10_b;
  71. TSet11_b= set of TIntRange11_b;
  72. TSet12_b= set of TIntRange12_b;
  73. TSet13_b= set of TIntRange13_b;
  74. TSet14_b= set of TIntRange14_b;
  75. TSet15_b= set of TIntRange15_b;
  76. TSet16_b= set of TIntRange16_b;
  77. const
  78. _c= 7;
  79. type
  80. TIntRange1_c = 0 + _c.. Pred( 1 * 8) + _c;
  81. TIntRange2_c = 0 + _c.. Pred( 2 * 8) + _c;
  82. TIntRange3_c = 0 + _c.. Pred( 3 * 8) + _c;
  83. TIntRange4_c = 0 + _c.. Pred( 4 * 8) + _c;
  84. TIntRange5_c = 0 + _c.. Pred( 5 * 8) + _c;
  85. TIntRange6_c = 0 + _c.. Pred( 6 * 8) + _c;
  86. TIntRange7_c = 0 + _c.. Pred( 7 * 8) + _c;
  87. TIntRange8_c = 0 + _c.. Pred( 8 * 8) + _c;
  88. TIntRange9_c = 0 + _c.. Pred( 9 * 8) + _c;
  89. TIntRange10_c= 0 + _c.. Pred(10 * 8) + _c;
  90. TIntRange11_c= 0 + _c.. Pred(11 * 8) + _c;
  91. TIntRange12_c= 0 + _c.. Pred(12 * 8) + _c;
  92. TIntRange13_c= 0 + _c.. Pred(13 * 8) + _c;
  93. TIntRange14_c= 0 + _c.. Pred(14 * 8) + _c;
  94. TIntRange15_c= 0 + _c.. Pred(15 * 8) + _c;
  95. TIntRange16_c= 0 + _c.. Pred(16 * 8) + _c;
  96. TSet1_c = set of TIntRange1_c;
  97. TSet2_c = set of TIntRange2_c;
  98. TSet3_c = set of TIntRange3_c;
  99. TSet4_c = set of TIntRange4_c;
  100. TSet5_c = set of TIntRange5_c;
  101. TSet6_c = set of TIntRange6_c;
  102. TSet7_c = set of TIntRange7_c;
  103. TSet8_c = set of TIntRange8_c;
  104. TSet9_c = set of TIntRange9_c;
  105. TSet10_c= set of TIntRange10_c;
  106. TSet11_c= set of TIntRange11_c;
  107. TSet12_c= set of TIntRange12_c;
  108. TSet13_c= set of TIntRange13_c;
  109. TSet14_c= set of TIntRange14_c;
  110. TSet15_c= set of TIntRange15_c;
  111. TSet16_c= set of TIntRange16_c;
  112. procedure test(actualsize, wantsize: longint);
  113. begin
  114. if (actualsize<>wantsize) then
  115. halt(1);
  116. end;
  117. begin
  118. WriteLn(Low(TIntRange1_a),'..',High(TIntRange1_a),' -> ', SizeOf(TSet1_a));
  119. test(SizeOf(TSet1_a),1);
  120. WriteLn(Low(TIntRange2_a),'..',High(TIntRange2_a),' -> ', SizeOf(TSet2_a));
  121. test(SizeOf(TSet2_a),2);
  122. WriteLn(Low(TIntRange3_a),'..',High(TIntRange3_a),' -> ', SizeOf(TSet3_a));
  123. test(SizeOf(TSet3_a),4);
  124. WriteLn(Low(TIntRange4_a),'..',High(TIntRange4_a),' -> ', SizeOf(TSet4_a));
  125. test(SizeOf(TSet4_a),4);
  126. WriteLn(Low(TIntRange5_a),'..',High(TIntRange5_a),' -> ', SizeOf(TSet5_a));
  127. test(SizeOf(TSet5_a),5);
  128. WriteLn(Low(TIntRange6_a),'..',High(TIntRange6_a),' -> ', SizeOf(TSet6_a));
  129. test(SizeOf(TSet6_a),6);
  130. WriteLn(Low(TIntRange7_a),'..',High(TIntRange7_a),' -> ', SizeOf(TSet7_a));
  131. test(SizeOf(TSet7_a),7);
  132. WriteLn(Low(TIntRange8_a),'..',High(TIntRange8_a),' -> ', SizeOf(TSet8_a));
  133. test(SizeOf(TSet8_a),8);
  134. WriteLn(Low(TIntRange9_a),'..',High(TIntRange9_a),' -> ', SizeOf(TSet9_a));
  135. test(SizeOf(TSet9_a),9);
  136. WriteLn(Low(TIntRange10_a),'..',High(TIntRange10_a),' -> ', SizeOf(TSet10_a));
  137. test(SizeOf(TSet10_a),10);
  138. WriteLn(Low(TIntRange11_a),'..',High(TIntRange11_a),' -> ', SizeOf(TSet11_a));
  139. test(SizeOf(TSet11_a),11);
  140. WriteLn(Low(TIntRange12_a),'..',High(TIntRange12_a),' -> ', SizeOf(TSet12_a));
  141. test(SizeOf(TSet12_a),12);
  142. WriteLn(Low(TIntRange13_a),'..',High(TIntRange13_a),' -> ', SizeOf(TSet13_a));
  143. test(SizeOf(TSet13_a),13);
  144. WriteLn(Low(TIntRange14_a),'..',High(TIntRange14_a),' -> ', SizeOf(TSet14_a));
  145. test(SizeOf(TSet14_a),14);
  146. WriteLn(Low(TIntRange15_a),'..',High(TIntRange15_a),' -> ', SizeOf(TSet15_a));
  147. test(SizeOf(TSet15_a),15);
  148. WriteLn(Low(TIntRange16_a),'..',High(TIntRange16_a),' -> ', SizeOf(TSet16_a));
  149. test(SizeOf(TSet16_a),16);
  150. WriteLn;
  151. WriteLn(Low(TIntRange1_b),'..',High(TIntRange1_b),' -> ', SizeOf(TSet1_b));
  152. test(SizeOf(TSet1_b),2);
  153. WriteLn(Low(TIntRange2_b),'..',High(TIntRange2_b),' -> ', SizeOf(TSet2_b));
  154. test(SizeOf(TSet2_b),4);
  155. WriteLn(Low(TIntRange3_b),'..',High(TIntRange3_b),' -> ', SizeOf(TSet3_b));
  156. test(SizeOf(TSet3_b),4);
  157. WriteLn(Low(TIntRange4_b),'..',High(TIntRange4_b),' -> ', SizeOf(TSet4_b));
  158. test(SizeOf(TSet4_b),5);
  159. WriteLn(Low(TIntRange5_b),'..',High(TIntRange5_b),' -> ', SizeOf(TSet5_b));
  160. test(SizeOf(TSet5_b),6);
  161. WriteLn(Low(TIntRange6_b),'..',High(TIntRange6_b),' -> ', SizeOf(TSet6_b));
  162. test(SizeOf(TSet6_b),7);
  163. WriteLn(Low(TIntRange7_b),'..',High(TIntRange7_b),' -> ', SizeOf(TSet7_b));
  164. test(SizeOf(TSet7_b),8);
  165. WriteLn(Low(TIntRange8_b),'..',High(TIntRange8_b),' -> ', SizeOf(TSet8_b));
  166. test(SizeOf(TSet8_b),9);
  167. WriteLn(Low(TIntRange9_b),'..',High(TIntRange9_b),' -> ', SizeOf(TSet9_b));
  168. test(SizeOf(TSet9_b),10);
  169. WriteLn(Low(TIntRange10_b),'..',High(TIntRange10_b),' -> ', SizeOf(TSet10_b));
  170. test(SizeOf(TSet10_b),11);
  171. WriteLn(Low(TIntRange11_b),'..',High(TIntRange11_b),' -> ', SizeOf(TSet11_b));
  172. test(SizeOf(TSet11_b),12);
  173. WriteLn(Low(TIntRange12_b),'..',High(TIntRange12_b),' -> ', SizeOf(TSet12_b));
  174. test(SizeOf(TSet12_b),13);
  175. WriteLn(Low(TIntRange13_b),'..',High(TIntRange13_b),' -> ', SizeOf(TSet13_b));
  176. test(SizeOf(TSet13_b),14);
  177. WriteLn(Low(TIntRange14_b),'..',High(TIntRange14_b),' -> ', SizeOf(TSet14_b));
  178. test(SizeOf(TSet14_b),15);
  179. WriteLn(Low(TIntRange15_b),'..',High(TIntRange15_b),' -> ', SizeOf(TSet15_b));
  180. test(SizeOf(TSet15_b),16);
  181. WriteLn(Low(TIntRange16_b),'..',High(TIntRange16_b),' -> ', SizeOf(TSet16_b));
  182. test(SizeOf(TSet16_b),17);
  183. WriteLn;
  184. WriteLn(Low(TIntRange1_c),'..',High(TIntRange1_c),' -> ', SizeOf(TSet1_c));
  185. test(SizeOf(TSet1_c),2);
  186. WriteLn(Low(TIntRange2_c),'..',High(TIntRange2_c),' -> ', SizeOf(TSet2_c));
  187. test(SizeOf(TSet2_c),4);
  188. WriteLn(Low(TIntRange3_c),'..',High(TIntRange3_c),' -> ', SizeOf(TSet3_c));
  189. test(SizeOf(TSet3_c),4);
  190. WriteLn(Low(TIntRange4_c),'..',High(TIntRange4_c),' -> ', SizeOf(TSet4_c));
  191. test(SizeOf(TSet4_c),5);
  192. WriteLn(Low(TIntRange5_c),'..',High(TIntRange5_c),' -> ', SizeOf(TSet5_c));
  193. test(SizeOf(TSet5_c),6);
  194. WriteLn(Low(TIntRange6_c),'..',High(TIntRange6_c),' -> ', SizeOf(TSet6_c));
  195. test(SizeOf(TSet6_c),7);
  196. WriteLn(Low(TIntRange7_c),'..',High(TIntRange7_c),' -> ', SizeOf(TSet7_c));
  197. test(SizeOf(TSet7_c),8);
  198. WriteLn(Low(TIntRange8_c),'..',High(TIntRange8_c),' -> ', SizeOf(TSet8_c));
  199. test(SizeOf(TSet8_c),9);
  200. WriteLn(Low(TIntRange9_c),'..',High(TIntRange9_c),' -> ', SizeOf(TSet9_c));
  201. test(SizeOf(TSet9_c),10);
  202. WriteLn(Low(TIntRange10_c),'..',High(TIntRange10_c),' -> ', SizeOf(TSet10_c));
  203. test(SizeOf(TSet10_c),11);
  204. WriteLn(Low(TIntRange11_c),'..',High(TIntRange11_c),' -> ', SizeOf(TSet11_c));
  205. test(SizeOf(TSet11_c),12);
  206. WriteLn(Low(TIntRange12_c),'..',High(TIntRange12_c),' -> ', SizeOf(TSet12_c));
  207. test(SizeOf(TSet12_c),13);
  208. WriteLn(Low(TIntRange13_c),'..',High(TIntRange13_c),' -> ', SizeOf(TSet13_c));
  209. test(SizeOf(TSet13_c),14);
  210. WriteLn(Low(TIntRange14_c),'..',High(TIntRange14_c),' -> ', SizeOf(TSet14_c));
  211. test(SizeOf(TSet14_c),15);
  212. WriteLn(Low(TIntRange15_c),'..',High(TIntRange15_c),' -> ', SizeOf(TSet15_c));
  213. test(SizeOf(TSet15_c),16);
  214. WriteLn(Low(TIntRange16_c),'..',High(TIntRange16_c),' -> ', SizeOf(TSet16_c));
  215. test(SizeOf(TSet16_c),17);
  216. end.