fpc/tests/test/tset5.pp
Jonas Maebe 0bc6a2fd28 + new test for varsets and conversion among varsets
git-svn-id: trunk@6234 -
2007-01-27 20:29:06 +00:00

340 lines
5.1 KiB
ObjectPascal

{ %opt=-Ooregvar }
{$ifdef fpc}
{$packset 1}
{$endif fpc}
{$z1}
type
ta = set of 0..7;
tb = set of 0..15;
tc = set of 0..23;
td = set of 0..31;
te = set of 0..127;
var
ve: te;
vd: td;
vc: tc;
vb: tb;
va: ta;
b1,b2,b3: byte;
begin
b1 := $ff;
b2 := $ff;
b3 := $ff;
va := [];
vb := [];
vc := [];
vd := [];
ve := [];
va := [3..4];
vb := va;
if b1 <> $ff then
halt(1);
if va <> [3..4] then
halt(1);
if vb <> [3..4] then
halt(1);
if vc <> [] then
halt(1);
if vd <> [] then
halt(1);
if ve <> [] then
halt(1);
vc := va;
if b1 <> $ff then
halt(1);
if va <> [3..4] then
halt(1);
if vb <> [3..4] then
halt(1);
if vc <> [3..4] then
halt(1);
if vd <> [] then
halt(1);
if ve <> [] then
halt(1);
vd := va;
if b1 <> $ff then
halt(1);
if va <> [3..4] then
halt(1);
if vb <> [3..4] then
halt(1);
if vc <> [3..4] then
halt(1);
if vd <> [3..4] then
halt(1);
if ve <> [] then
halt(1);
ve := va;
if b1 <> $ff then
halt(1);
if va <> [3..4] then
halt(1);
if vb <> [3..4] then
halt(1);
if vc <> [3..4] then
halt(1);
if vd <> [3..4] then
halt(1);
if ve <> [3..4] then
halt(1);
b1 := $ff;
b2 := $ff;
b3 := $ff;
va := [];
vb := [];
vc := [];
vd := [];
ve := [];
vb := [0,2,3];
va := vb;
if b1 <> $ff then
halt(2);
if va <> [0,2,3] then
halt(2);
if vb <> [0,2,3] then
halt(2);
if vc <> [] then
halt(2);
if vd <> [] then
halt(2);
if ve <> [] then
halt(2);
vc := vb;
if b1 <> $ff then
halt(2);
if va <> [0,2,3] then
halt(2);
if vb <> [0,2,3] then
halt(2);
if vc <> [0,2,3] then
halt(2);
if vd <> [] then
halt(2);
if ve <> [] then
halt(2);
vd := vb;
if b1 <> $ff then
halt(2);
if va <> [0,2,3] then
halt(2);
if vb <> [0,2,3] then
halt(2);
if vc <> [0,2,3] then
halt(2);
if vd <> [0,2,3] then
halt(2);
if ve <> [] then
halt(2);
ve := vb;
if va <> [0,2,3] then
halt(2);
if vb <> [0,2,3] then
halt(2);
if vc <> [0,2,3] then
halt(2);
if vd <> [0,2,3] then
halt(2);
if ve <> [0,2,3] then
halt(2);
b1 := $ff;
b2 := $ff;
b3 := $ff;
va := [];
vb := [];
vc := [];
vd := [];
ve := [];
vc := [5,6,7];
va := vc;
if b1 <> $ff then
halt(3);
if va <> [5,6,7] then
halt(3);
if vc <> [5,6,7] then
halt(3);
if vb <> [] then
halt(3);
if vd <> [] then
halt(3);
if ve <> [] then
halt(3);
vb := vc;
if b1 <> $ff then
halt(3);
if va <> [5,6,7] then
halt(3);
if vb <> [5,6,7] then
halt(3);
if vc <> [5,6,7] then
halt(3);
if vd <> [] then
halt(3);
if ve <> [] then
halt(3);
vd := vc;
if b1 <> $ff then
halt(3);
if va <> [5,6,7] then
halt(3);
if vb <> [5,6,7] then
halt(3);
if vc <> [5,6,7] then
halt(3);
if vd <> [5,6,7] then
halt(3);
if ve <> [] then
halt(3);
ve := vc;
if b1 <> $ff then
halt(3);
if va <> [5,6,7] then
halt(3);
if vb <> [5,6,7] then
halt(3);
if vc <> [5,6,7] then
halt(3);
if vd <> [5,6,7] then
halt(3);
if ve <> [5,6,7] then
halt(3);
b1 := $ff;
b2 := $ff;
b3 := $ff;
va := [];
vb := [];
vc := [];
vd := [];
ve := [];
vd := [1,3,5];
va := vd;
if b1 <> $ff then
halt(4);
if va <> [1,3,5] then
halt(4);
if vd <> [1,3,5] then
halt(4);
if vc <> [] then
halt(4);
if vb <> [] then
halt(4);
if ve <> [] then
halt(4);
vb := vd;
if b1 <> $ff then
halt(4);
if va <> [1,3,5] then
halt(4);
if vb <> [1,3,5] then
halt(4);
if vd <> [1,3,5] then
halt(4);
if vc <> [] then
halt(4);
if ve <> [] then
halt(4);
vc := vd;
if b1 <> $ff then
halt(4);
if va <> [1,3,5] then
halt(4);
if vb <> [1,3,5] then
halt(4);
if vc <> [1,3,5] then
halt(4);
if vd <> [1,3,5] then
halt(4);
if ve <> [] then
halt(4);
ve := vd;
if b1 <> $ff then
halt(4);
if va <> [1,3,5] then
halt(4);
if vb <> [1,3,5] then
halt(4);
if vc <> [1,3,5] then
halt(4);
if vd <> [1,3,5] then
halt(4);
if ve <> [1,3,5] then
halt(4);
b1 := $ff;
b2 := $ff;
b3 := $ff;
va := [];
vb := [];
vc := [];
vd := [];
ve := [];
ve := [0,7];
va := ve;
if b1 <> $ff then
halt(5);
if va <> [0,7] then
halt(5);
if ve <> [0,7] then
halt(5);
if vc <> [] then
halt(5);
if vd <> [] then
halt(5);
if vb <> [] then
halt(5);
vb := ve;
if b1 <> $ff then
halt(5);
if va <> [0,7] then
halt(5);
if vb <> [0,7] then
halt(5);
if ve <> [0,7] then
halt(5);
if vd <> [] then
halt(5);
if vc <> [] then
halt(5);
vc := ve;
if b1 <> $ff then
halt(5);
if va <> [0,7] then
halt(5);
if vb <> [0,7] then
halt(5);
if vc <> [0,7] then
halt(5);
if ve <> [0,7] then
halt(5);
if vd <> [] then
halt(5);
vd := ve;
if b1 <> $ff then
halt(5);
if va <> [0,7] then
halt(5);
if vb <> [0,7] then
halt(5);
if vc <> [0,7] then
halt(5);
if vd <> [0,7] then
halt(5);
if ve <> [0,7] then
halt(5);
end.