fpc/tests/test/tsetsize.pp
2014-03-16 15:32:35 +00:00

256 lines
9.5 KiB
ObjectPascal

program SetSizes;
{$ifdef fpc}
{$APPTYPE CONSOLE}
{$mode delphi}
{$ifdef CPU16}
{$define _16BITCOMPILER}
{$endif}
{$else fpc}
{$ifdef VER70} { Turbo Pascal 7 }
{$define _16BITCOMPILER}
{$endif}
{$ifdef VER80} { Delphi 1 }
{$define _16BITCOMPILER}
uses
WinCrt;
{$endif}
{$ifdef WIN32}
{$APPTYPE CONSOLE}
{$endif}
{$ifdef WIN64}
{$APPTYPE CONSOLE}
{$endif}
{$endif fpc}
const
_a= 0;
{$ifdef _16BITCOMPILER}
three_or_four = 3;
{$else}
three_or_four = 4;
{$endif}
type
TIntRange1_a = 0 + _a.. Pred( 1 * 8) + _a;
TIntRange2_a = 0 + _a.. Pred( 2 * 8) + _a;
TIntRange3_a = 0 + _a.. Pred( 3 * 8) + _a;
TIntRange4_a = 0 + _a.. Pred( 4 * 8) + _a;
TIntRange5_a = 0 + _a.. Pred( 5 * 8) + _a;
TIntRange6_a = 0 + _a.. Pred( 6 * 8) + _a;
TIntRange7_a = 0 + _a.. Pred( 7 * 8) + _a;
TIntRange8_a = 0 + _a.. Pred( 8 * 8) + _a;
TIntRange9_a = 0 + _a.. Pred( 9 * 8) + _a;
TIntRange10_a= 0 + _a.. Pred(10 * 8) + _a;
TIntRange11_a= 0 + _a.. Pred(11 * 8) + _a;
TIntRange12_a= 0 + _a.. Pred(12 * 8) + _a;
TIntRange13_a= 0 + _a.. Pred(13 * 8) + _a;
TIntRange14_a= 0 + _a.. Pred(14 * 8) + _a;
TIntRange15_a= 0 + _a.. Pred(15 * 8) + _a;
TIntRange16_a= 0 + _a.. Pred(16 * 8) + _a;
TSet1_a = set of TIntRange1_a;
TSet2_a = set of TIntRange2_a;
TSet3_a = set of TIntRange3_a;
TSet4_a = set of TIntRange4_a;
TSet5_a = set of TIntRange5_a;
TSet6_a = set of TIntRange6_a;
TSet7_a = set of TIntRange7_a;
TSet8_a = set of TIntRange8_a;
TSet9_a = set of TIntRange9_a;
TSet10_a= set of TIntRange10_a;
TSet11_a= set of TIntRange11_a;
TSet12_a= set of TIntRange12_a;
TSet13_a= set of TIntRange13_a;
TSet14_a= set of TIntRange14_a;
TSet15_a= set of TIntRange15_a;
TSet16_a= set of TIntRange16_a;
const
_b= 1;
type
TIntRange1_b = 0 + _b.. Pred( 1 * 8) + _b;
TIntRange2_b = 0 + _b.. Pred( 2 * 8) + _b;
TIntRange3_b = 0 + _b.. Pred( 3 * 8) + _b;
TIntRange4_b = 0 + _b.. Pred( 4 * 8) + _b;
TIntRange5_b = 0 + _b.. Pred( 5 * 8) + _b;
TIntRange6_b = 0 + _b.. Pred( 6 * 8) + _b;
TIntRange7_b = 0 + _b.. Pred( 7 * 8) + _b;
TIntRange8_b = 0 + _b.. Pred( 8 * 8) + _b;
TIntRange9_b = 0 + _b.. Pred( 9 * 8) + _b;
TIntRange10_b= 0 + _b.. Pred(10 * 8) + _b;
TIntRange11_b= 0 + _b.. Pred(11 * 8) + _b;
TIntRange12_b= 0 + _b.. Pred(12 * 8) + _b;
TIntRange13_b= 0 + _b.. Pred(13 * 8) + _b;
TIntRange14_b= 0 + _b.. Pred(14 * 8) + _b;
TIntRange15_b= 0 + _b.. Pred(15 * 8) + _b;
TIntRange16_b= 0 + _b.. Pred(16 * 8) + _b;
TSet1_b = set of TIntRange1_b;
TSet2_b = set of TIntRange2_b;
TSet3_b = set of TIntRange3_b;
TSet4_b = set of TIntRange4_b;
TSet5_b = set of TIntRange5_b;
TSet6_b = set of TIntRange6_b;
TSet7_b = set of TIntRange7_b;
TSet8_b = set of TIntRange8_b;
TSet9_b = set of TIntRange9_b;
TSet10_b= set of TIntRange10_b;
TSet11_b= set of TIntRange11_b;
TSet12_b= set of TIntRange12_b;
TSet13_b= set of TIntRange13_b;
TSet14_b= set of TIntRange14_b;
TSet15_b= set of TIntRange15_b;
TSet16_b= set of TIntRange16_b;
const
_c= 7;
type
TIntRange1_c = 0 + _c.. Pred( 1 * 8) + _c;
TIntRange2_c = 0 + _c.. Pred( 2 * 8) + _c;
TIntRange3_c = 0 + _c.. Pred( 3 * 8) + _c;
TIntRange4_c = 0 + _c.. Pred( 4 * 8) + _c;
TIntRange5_c = 0 + _c.. Pred( 5 * 8) + _c;
TIntRange6_c = 0 + _c.. Pred( 6 * 8) + _c;
TIntRange7_c = 0 + _c.. Pred( 7 * 8) + _c;
TIntRange8_c = 0 + _c.. Pred( 8 * 8) + _c;
TIntRange9_c = 0 + _c.. Pred( 9 * 8) + _c;
TIntRange10_c= 0 + _c.. Pred(10 * 8) + _c;
TIntRange11_c= 0 + _c.. Pred(11 * 8) + _c;
TIntRange12_c= 0 + _c.. Pred(12 * 8) + _c;
TIntRange13_c= 0 + _c.. Pred(13 * 8) + _c;
TIntRange14_c= 0 + _c.. Pred(14 * 8) + _c;
TIntRange15_c= 0 + _c.. Pred(15 * 8) + _c;
TIntRange16_c= 0 + _c.. Pred(16 * 8) + _c;
TSet1_c = set of TIntRange1_c;
TSet2_c = set of TIntRange2_c;
TSet3_c = set of TIntRange3_c;
TSet4_c = set of TIntRange4_c;
TSet5_c = set of TIntRange5_c;
TSet6_c = set of TIntRange6_c;
TSet7_c = set of TIntRange7_c;
TSet8_c = set of TIntRange8_c;
TSet9_c = set of TIntRange9_c;
TSet10_c= set of TIntRange10_c;
TSet11_c= set of TIntRange11_c;
TSet12_c= set of TIntRange12_c;
TSet13_c= set of TIntRange13_c;
TSet14_c= set of TIntRange14_c;
TSet15_c= set of TIntRange15_c;
TSet16_c= set of TIntRange16_c;
procedure test(actualsize, wantsize: longint);
begin
if (actualsize<>wantsize) then
halt(1);
end;
begin
WriteLn(Low(TIntRange1_a),'..',High(TIntRange1_a),' -> ', SizeOf(TSet1_a));
test(SizeOf(TSet1_a),1);
WriteLn(Low(TIntRange2_a),'..',High(TIntRange2_a),' -> ', SizeOf(TSet2_a));
test(SizeOf(TSet2_a),2);
WriteLn(Low(TIntRange3_a),'..',High(TIntRange3_a),' -> ', SizeOf(TSet3_a));
test(SizeOf(TSet3_a),three_or_four);
WriteLn(Low(TIntRange4_a),'..',High(TIntRange4_a),' -> ', SizeOf(TSet4_a));
test(SizeOf(TSet4_a),4);
WriteLn(Low(TIntRange5_a),'..',High(TIntRange5_a),' -> ', SizeOf(TSet5_a));
test(SizeOf(TSet5_a),5);
WriteLn(Low(TIntRange6_a),'..',High(TIntRange6_a),' -> ', SizeOf(TSet6_a));
test(SizeOf(TSet6_a),6);
WriteLn(Low(TIntRange7_a),'..',High(TIntRange7_a),' -> ', SizeOf(TSet7_a));
test(SizeOf(TSet7_a),7);
WriteLn(Low(TIntRange8_a),'..',High(TIntRange8_a),' -> ', SizeOf(TSet8_a));
test(SizeOf(TSet8_a),8);
WriteLn(Low(TIntRange9_a),'..',High(TIntRange9_a),' -> ', SizeOf(TSet9_a));
test(SizeOf(TSet9_a),9);
WriteLn(Low(TIntRange10_a),'..',High(TIntRange10_a),' -> ', SizeOf(TSet10_a));
test(SizeOf(TSet10_a),10);
WriteLn(Low(TIntRange11_a),'..',High(TIntRange11_a),' -> ', SizeOf(TSet11_a));
test(SizeOf(TSet11_a),11);
WriteLn(Low(TIntRange12_a),'..',High(TIntRange12_a),' -> ', SizeOf(TSet12_a));
test(SizeOf(TSet12_a),12);
WriteLn(Low(TIntRange13_a),'..',High(TIntRange13_a),' -> ', SizeOf(TSet13_a));
test(SizeOf(TSet13_a),13);
WriteLn(Low(TIntRange14_a),'..',High(TIntRange14_a),' -> ', SizeOf(TSet14_a));
test(SizeOf(TSet14_a),14);
WriteLn(Low(TIntRange15_a),'..',High(TIntRange15_a),' -> ', SizeOf(TSet15_a));
test(SizeOf(TSet15_a),15);
WriteLn(Low(TIntRange16_a),'..',High(TIntRange16_a),' -> ', SizeOf(TSet16_a));
test(SizeOf(TSet16_a),16);
WriteLn;
WriteLn(Low(TIntRange1_b),'..',High(TIntRange1_b),' -> ', SizeOf(TSet1_b));
test(SizeOf(TSet1_b),2);
WriteLn(Low(TIntRange2_b),'..',High(TIntRange2_b),' -> ', SizeOf(TSet2_b));
test(SizeOf(TSet2_b),three_or_four);
WriteLn(Low(TIntRange3_b),'..',High(TIntRange3_b),' -> ', SizeOf(TSet3_b));
test(SizeOf(TSet3_b),4);
WriteLn(Low(TIntRange4_b),'..',High(TIntRange4_b),' -> ', SizeOf(TSet4_b));
test(SizeOf(TSet4_b),5);
WriteLn(Low(TIntRange5_b),'..',High(TIntRange5_b),' -> ', SizeOf(TSet5_b));
test(SizeOf(TSet5_b),6);
WriteLn(Low(TIntRange6_b),'..',High(TIntRange6_b),' -> ', SizeOf(TSet6_b));
test(SizeOf(TSet6_b),7);
WriteLn(Low(TIntRange7_b),'..',High(TIntRange7_b),' -> ', SizeOf(TSet7_b));
test(SizeOf(TSet7_b),8);
WriteLn(Low(TIntRange8_b),'..',High(TIntRange8_b),' -> ', SizeOf(TSet8_b));
test(SizeOf(TSet8_b),9);
WriteLn(Low(TIntRange9_b),'..',High(TIntRange9_b),' -> ', SizeOf(TSet9_b));
test(SizeOf(TSet9_b),10);
WriteLn(Low(TIntRange10_b),'..',High(TIntRange10_b),' -> ', SizeOf(TSet10_b));
test(SizeOf(TSet10_b),11);
WriteLn(Low(TIntRange11_b),'..',High(TIntRange11_b),' -> ', SizeOf(TSet11_b));
test(SizeOf(TSet11_b),12);
WriteLn(Low(TIntRange12_b),'..',High(TIntRange12_b),' -> ', SizeOf(TSet12_b));
test(SizeOf(TSet12_b),13);
WriteLn(Low(TIntRange13_b),'..',High(TIntRange13_b),' -> ', SizeOf(TSet13_b));
test(SizeOf(TSet13_b),14);
WriteLn(Low(TIntRange14_b),'..',High(TIntRange14_b),' -> ', SizeOf(TSet14_b));
test(SizeOf(TSet14_b),15);
WriteLn(Low(TIntRange15_b),'..',High(TIntRange15_b),' -> ', SizeOf(TSet15_b));
test(SizeOf(TSet15_b),16);
WriteLn(Low(TIntRange16_b),'..',High(TIntRange16_b),' -> ', SizeOf(TSet16_b));
test(SizeOf(TSet16_b),17);
WriteLn;
WriteLn(Low(TIntRange1_c),'..',High(TIntRange1_c),' -> ', SizeOf(TSet1_c));
test(SizeOf(TSet1_c),2);
WriteLn(Low(TIntRange2_c),'..',High(TIntRange2_c),' -> ', SizeOf(TSet2_c));
test(SizeOf(TSet2_c),three_or_four);
WriteLn(Low(TIntRange3_c),'..',High(TIntRange3_c),' -> ', SizeOf(TSet3_c));
test(SizeOf(TSet3_c),4);
WriteLn(Low(TIntRange4_c),'..',High(TIntRange4_c),' -> ', SizeOf(TSet4_c));
test(SizeOf(TSet4_c),5);
WriteLn(Low(TIntRange5_c),'..',High(TIntRange5_c),' -> ', SizeOf(TSet5_c));
test(SizeOf(TSet5_c),6);
WriteLn(Low(TIntRange6_c),'..',High(TIntRange6_c),' -> ', SizeOf(TSet6_c));
test(SizeOf(TSet6_c),7);
WriteLn(Low(TIntRange7_c),'..',High(TIntRange7_c),' -> ', SizeOf(TSet7_c));
test(SizeOf(TSet7_c),8);
WriteLn(Low(TIntRange8_c),'..',High(TIntRange8_c),' -> ', SizeOf(TSet8_c));
test(SizeOf(TSet8_c),9);
WriteLn(Low(TIntRange9_c),'..',High(TIntRange9_c),' -> ', SizeOf(TSet9_c));
test(SizeOf(TSet9_c),10);
WriteLn(Low(TIntRange10_c),'..',High(TIntRange10_c),' -> ', SizeOf(TSet10_c));
test(SizeOf(TSet10_c),11);
WriteLn(Low(TIntRange11_c),'..',High(TIntRange11_c),' -> ', SizeOf(TSet11_c));
test(SizeOf(TSet11_c),12);
WriteLn(Low(TIntRange12_c),'..',High(TIntRange12_c),' -> ', SizeOf(TSet12_c));
test(SizeOf(TSet12_c),13);
WriteLn(Low(TIntRange13_c),'..',High(TIntRange13_c),' -> ', SizeOf(TSet13_c));
test(SizeOf(TSet13_c),14);
WriteLn(Low(TIntRange14_c),'..',High(TIntRange14_c),' -> ', SizeOf(TSet14_c));
test(SizeOf(TSet14_c),15);
WriteLn(Low(TIntRange15_c),'..',High(TIntRange15_c),' -> ', SizeOf(TSet15_c));
test(SizeOf(TSet15_c),16);
WriteLn(Low(TIntRange16_c),'..',High(TIntRange16_c),' -> ', SizeOf(TSet16_c));
test(SizeOf(TSet16_c),17);
end.