mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-28 18:22:44 +02:00
333 lines
15 KiB
ObjectPascal
333 lines
15 KiB
ObjectPascal
program WatchesFuncRecordPrg;
|
|
{$mode objfpc}{$H+}
|
|
|
|
uses SysUtils;
|
|
|
|
type
|
|
TNibble = 0..15;
|
|
|
|
{$IFDEF RECPAD2}
|
|
TPad = word;
|
|
{$ELSE}
|
|
TPad = byte;
|
|
{$ENDIF}
|
|
TRecN2 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b: TNibble; end;
|
|
TRecB2 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b: Byte; end;
|
|
TRecW2 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b: Word; end;
|
|
TRecC2 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b: Cardinal; end;
|
|
TRecQ2 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b: QWord; end;
|
|
TRecB3 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b, c: Byte; end;
|
|
TRecW3 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b, c: Word; end;
|
|
TRecC3 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b, c: Cardinal; end;
|
|
TRecQ3 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b, c: QWord; end;
|
|
TRecQ4 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b, c, d: QWord; end;
|
|
TRecQ5 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b, c, d ,e: QWord; end;
|
|
TRecQ6 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b, c, d ,e, f: QWord; end;
|
|
TRecQ7 = {$IFDEF PCKREC} packed {$ENDIF} record {$IFDEF RECPAD1} xxx: TPad; {$ENDIF} a, b, c, d ,e, f, g: QWord; end;
|
|
|
|
var
|
|
CurMemUsed: ptruint;
|
|
SomeInt: Integer;
|
|
|
|
aRecN2, bRecN2: TRecN2;
|
|
aRecB2, bRecB2: TRecB2;
|
|
aRecW2, bRecW2: TRecW2;
|
|
aRecC2, bRecC2: TRecC2;
|
|
aRecQ2, bRecQ2: TRecQ2;
|
|
aRecB3, bRecB3: TRecB3;
|
|
aRecW3, bRecW3: TRecW3;
|
|
aRecC3, bRecC3: TRecC3;
|
|
aRecQ3, bRecQ3: TRecQ3;
|
|
|
|
aRecQ4, bRecQ4: TRecQ4;
|
|
aRecQ5, bRecQ5: TRecQ5;
|
|
aRecQ6, bRecQ6: TRecQ6;
|
|
aRecQ7, bRecQ7: TRecQ7;
|
|
|
|
|
|
function TestRecN2_a(AVal: TRecN2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecN2_b(AVal: TRecN2): Cardinal; begin Result := AVal.b; AVal.a:=0; end;
|
|
|
|
function TestRecB2_a(AVal: TRecB2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecB2_b(AVal: TRecB2): Cardinal; begin Result := AVal.b; AVal.a:=0; end;
|
|
function TestRecB3_a(AVal: TRecB3): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecB3_b(AVal: TRecB3): Cardinal; begin Result := AVal.b; AVal.a:=0; end;
|
|
function TestRecB3_c(AVal: TRecB3): Cardinal; begin Result := AVal.c; AVal.a:=0; end;
|
|
|
|
function TestRecW2_a(AVal: TRecW2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecW2_b(AVal: TRecW2): Cardinal; begin Result := AVal.b; AVal.a:=0; end;
|
|
function TestRecW3_a(AVal: TRecW3): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecW3_b(AVal: TRecW3): Cardinal; begin Result := AVal.b; AVal.a:=0; end;
|
|
function TestRecW3_c(AVal: TRecW3): Cardinal; begin Result := AVal.c; AVal.a:=0; end;
|
|
|
|
function TestRecC2_a(AVal: TRecC2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecC2_b(AVal: TRecC2): Cardinal; begin Result := AVal.b; AVal.a:=0; end;
|
|
function TestRecC3_a(AVal: TRecC3): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecC3_b(AVal: TRecC3): Cardinal; begin Result := AVal.b; AVal.a:=0; end;
|
|
function TestRecC3_c(AVal: TRecC3): Cardinal; begin Result := AVal.c; AVal.a:=0; end;
|
|
|
|
function TestRecQ2_a(AVal: TRecQ2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecQ2_b(AVal: TRecQ2): Cardinal; begin Result := AVal.b; AVal.a:=0; end;
|
|
function TestRecQ3_a(AVal: TRecQ3): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecQ3_b(AVal: TRecQ3): Cardinal; begin Result := AVal.b; AVal.a:=0; end;
|
|
function TestRecQ3_c(AVal: TRecQ3): Cardinal; begin Result := AVal.c; AVal.a:=0; end;
|
|
|
|
function Test1RecB2(AVal: TRecB2; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := AVal.b; AVal.a:=0; end;
|
|
function Test1RecW2(AVal: TRecW2; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := AVal.b; AVal.a:=0; end;
|
|
function Test1RecC2(AVal: TRecC2; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := AVal.b; AVal.a:=0; end;
|
|
function Test1RecQ2(AVal: TRecQ2; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := AVal.b; AVal.a:=0; end;
|
|
function Test2RecB2(i: word; AVal: TRecB2): Cardinal; begin if i=0 then Result := AVal.a else Result := AVal.b; AVal.a:=0; end;
|
|
function Test2RecW2(i: word; AVal: TRecW2): Cardinal; begin if i=0 then Result := AVal.a else Result := AVal.b; AVal.a:=0; end;
|
|
function Test2RecC2(i: word; AVal: TRecC2): Cardinal; begin if i=0 then Result := AVal.a else Result := AVal.b; AVal.a:=0; end;
|
|
function Test2RecQ2(i: word; AVal: TRecQ2): Cardinal; begin if i=0 then Result := AVal.a else Result := AVal.b; AVal.a:=0; end;
|
|
|
|
function TestRecN2N2_1(AVal, BVal: TRecN2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecN2N2_2(AVal, BVal: TRecN2): Cardinal; begin Result := BVal.a; AVal.a:=0; end;
|
|
|
|
function TestRecB2B2_1(AVal, BVal: TRecB2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecB2B2_2(AVal, BVal: TRecB2): Cardinal; begin Result := BVal.a; AVal.a:=0; end;
|
|
function TestRecW2W2_1(AVal, BVal: TRecW2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecW2W2_2(AVal, BVal: TRecW2): Cardinal; begin Result := BVal.a; AVal.a:=0; end;
|
|
function TestRecC2C2_1(AVal, BVal: TRecC2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecC2C2_2(AVal, BVal: TRecC2): Cardinal; begin Result := BVal.a; AVal.a:=0; end;
|
|
function TestRecQ2Q2_1(AVal, BVal: TRecQ2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecQ2Q2_2(AVal, BVal: TRecQ2): Cardinal; begin Result := BVal.a; AVal.a:=0; end;
|
|
|
|
function Test1RecB2B2(AVal, BVal: TRecB2; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test1RecW2W2(AVal, BVal: TRecW2; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test1RecC2C2(AVal, BVal: TRecC2; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test1RecQ2Q2(AVal, BVal: TRecQ2; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
|
|
function Test2RecB2B2(i: word; AVal, BVal: TRecB2): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test2RecW2W2(i: word; AVal, BVal: TRecW2): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test2RecC2C2(i: word; AVal, BVal: TRecC2): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test2RecQ2Q2(i: word; AVal, BVal: TRecQ2): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
|
|
|
|
function TestRecB2B3_1(AVal: TRecB2; BVal: TRecB3): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecB2Q2_1(AVal: TRecB2; BVal: TRecQ2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecB3B2_1(AVal: TRecB3; BVal: TRecB2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecB3Q2_1(AVal: TRecB3; BVal: TRecQ2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecQ2B2_1(AVal: TRecQ2; BVal: TRecB2): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
function TestRecQ2B3_1(AVal: TRecQ2; BVal: TRecB3): Cardinal; begin Result := AVal.a; AVal.a:=0; end;
|
|
|
|
function TestRecB2B3_2(AVal: TRecB2; BVal: TRecB3): Cardinal; begin Result := BVal.a; AVal.a:=0; end;
|
|
function TestRecB2Q2_2(AVal: TRecB2; BVal: TRecQ2): Cardinal; begin Result := BVal.a; AVal.a:=0; end;
|
|
function TestRecB3B2_2(AVal: TRecB3; BVal: TRecB2): Cardinal; begin Result := BVal.a; AVal.a:=0; end;
|
|
function TestRecB3Q2_2(AVal: TRecB3; BVal: TRecQ2): Cardinal; begin Result := BVal.a; AVal.a:=0; end;
|
|
function TestRecQ2B2_2(AVal: TRecQ2; BVal: TRecB2): Cardinal; begin Result := BVal.a; AVal.a:=0; end;
|
|
function TestRecQ2B3_2(AVal: TRecQ2; BVal: TRecB3): Cardinal; begin Result := BVal.a; AVal.a:=0; end;
|
|
|
|
function Test1RecB2B3(AVal: TRecB2; BVal: TRecB3; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test1RecB2Q2(AVal: TRecB2; BVal: TRecQ2; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test1RecB3B2(AVal: TRecB3; BVal: TRecB2; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test1RecB3Q2(AVal: TRecB3; BVal: TRecQ2; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test1RecQ2B2(AVal: TRecQ2; BVal: TRecB2; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test1RecQ2B3(AVal: TRecQ2; BVal: TRecB3; i: byte): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
|
|
function Test2RecB2B3(i: byte; AVal: TRecB2; BVal: TRecB3): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test2RecB2Q2(i: byte; AVal: TRecB2; BVal: TRecQ2): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test2RecB3B2(i: byte; AVal: TRecB3; BVal: TRecB2): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test2RecB3Q2(i: byte; AVal: TRecB3; BVal: TRecQ2): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test2RecQ2B2(i: byte; AVal: TRecQ2; BVal: TRecB2): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
function Test2RecQ2B3(i: byte; AVal: TRecQ2; BVal: TRecB3): Cardinal; begin if i=0 then Result := AVal.a else Result := BVal.a; AVal.a:=0; end;
|
|
|
|
|
|
function Test2RecQ3Q3(i: byte; AVal, BVal: TRecQ3): Cardinal;
|
|
begin
|
|
case i of
|
|
0: Result := AVal.a; 1: Result := AVal.c;
|
|
2: Result := BVal.a; 3: Result := BVal.c;
|
|
end;
|
|
AVal.a:=0; BVal.a:=0;
|
|
end;
|
|
function Test2RecQ4Q4(i: byte; AVal, BVal: TRecQ4): Cardinal;
|
|
begin
|
|
case i of
|
|
0: Result := AVal.a; 1: Result := AVal.d;
|
|
2: Result := BVal.a; 3: Result := BVal.d;
|
|
end;
|
|
AVal.a:=0; BVal.a:=0;
|
|
end;
|
|
function Test2RecQ5Q5(i: byte; AVal, BVal: TRecQ5): Cardinal;
|
|
begin
|
|
case i of
|
|
0: Result := AVal.a; 1: Result := AVal.e;
|
|
2: Result := BVal.a; 3: Result := BVal.e;
|
|
end;
|
|
AVal.a:=0; BVal.a:=0;
|
|
end;
|
|
function Test2RecQ6Q6(i: byte; AVal, BVal: TRecQ6): Cardinal;
|
|
begin
|
|
case i of
|
|
0: Result := AVal.a; 1: Result := AVal.f;
|
|
2: Result := BVal.a; 3: Result := BVal.f;
|
|
end;
|
|
AVal.a:=0; BVal.a:=0;
|
|
end;
|
|
function Test2RecQ7Q7(i: byte; AVal, BVal: TRecQ7): Cardinal;
|
|
begin
|
|
case i of
|
|
0: Result := AVal.a; 1: Result := AVal.g;
|
|
2: Result := BVal.a; 3: Result := BVal.g;
|
|
end;
|
|
AVal.a:=0; BVal.a:=0;
|
|
end;
|
|
|
|
|
|
function UsedMem: ptruint;
|
|
var
|
|
mm: TMemoryManager;
|
|
hs: TFPCHeapStatus;
|
|
begin
|
|
// ensure global vars are in mem
|
|
TestRecB2_a(aRecB2); TestRecB2_a(bRecB2);
|
|
TestRecB3_a(aRecB3); TestRecB3_a(bRecB3);
|
|
TestRecW2_a(aRecW2); TestRecW2_a(bRecW2);
|
|
TestRecW3_c(aRecW3); TestRecW3_c(bRecW3);
|
|
TestRecC2_a(aRecC2); TestRecC2_a(bRecC2);
|
|
TestRecC3_c(aRecC3); TestRecC3_c(bRecC3);
|
|
TestRecQ2_a(aRecQ2); TestRecQ2_a(bRecQ2);
|
|
TestRecQ3_c(aRecQ3); TestRecQ3_c(bRecQ3);
|
|
|
|
GetMemoryManager(mm);
|
|
hs := mm.GetFPCHeapStatus();
|
|
Result := hs.CurrHeapUsed;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
begin
|
|
aRecN2.a := 11; aRecN2.b := 12;
|
|
bRecN2.a := 8; bRecN2.b := 9;
|
|
|
|
aRecB2.a := 11; aRecB2.b := 21;
|
|
aRecW2.a := 12; aRecW2.b := 22;
|
|
aRecC2.a := 13; aRecC2.b := 23;
|
|
aRecQ2.a := 14; aRecQ2.b := 24;
|
|
|
|
bRecB2.a := 51; bRecB2.b := 61;
|
|
bRecW2.a := 52; bRecW2.b := 62;
|
|
bRecC2.a := 53; bRecC2.b := 63;
|
|
bRecQ2.a := 54; bRecQ2.b := 64;
|
|
|
|
aRecB3.a := 15; aRecB3.b := 25; aRecB3.c := 35;
|
|
aRecW3.a := 16; aRecW3.b := 26; aRecW3.c := 36;
|
|
aRecC3.a := 17; aRecC3.b := 27; aRecC3.c := 37;
|
|
aRecQ3.a := 18; aRecQ3.b := 28; aRecQ3.c := 38;
|
|
|
|
bRecB3.a := 55; bRecB3.b := 65; bRecB3.c := 75;
|
|
bRecW3.a := 56; bRecW3.b := 66; bRecW3.c := 76;
|
|
bRecC3.a := 57; bRecC3.b := 67; bRecC3.c := 77;
|
|
bRecQ3.a := 58; bRecQ3.b := 68; bRecQ3.c := 78;
|
|
|
|
aRecQ4.a := 58; aRecQ4.b := 68; aRecQ4.c := 78; aRecQ4.d := 2;
|
|
aRecQ5.a := 58; aRecQ5.b := 68; aRecQ5.c := 78; aRecQ5.d := 2; aRecQ5.e := 3;
|
|
aRecQ6.a := 58; aRecQ6.b := 68; aRecQ6.c := 78; aRecQ6.d := 2; aRecQ6.e := 3; aRecQ6.f := 4;
|
|
aRecQ7.a := 58; aRecQ7.b := 68; aRecQ7.c := 78; aRecQ7.d := 2; aRecQ7.e := 3; aRecQ7.f := 4; aRecQ7.g := 5;
|
|
|
|
bRecQ4.a := 59; bRecQ4.b := 69; bRecQ4.c := 79; bRecQ4.d := 92;
|
|
bRecQ5.a := 59; bRecQ5.b := 69; bRecQ5.c := 79; bRecQ5.d := 92; bRecQ5.e := 93;
|
|
bRecQ6.a := 59; bRecQ6.b := 69; bRecQ6.c := 79; bRecQ6.d := 92; bRecQ6.e := 93; bRecQ6.f := 94;
|
|
bRecQ7.a := 59; bRecQ7.b := 69; bRecQ7.c := 79; bRecQ7.d := 92; bRecQ7.e := 93; bRecQ7.f := 94; bRecQ7.g := 95;
|
|
|
|
|
|
// After each test the debugger can check the memusage
|
|
CurMemUsed := UsedMem;
|
|
CurMemUsed := UsedMem; // TEST_BREAKPOINT=main
|
|
CurMemUsed := UsedMem;
|
|
CurMemUsed := UsedMem;
|
|
CurMemUsed := UsedMem;
|
|
CurMemUsed := UsedMem;
|
|
CurMemUsed := UsedMem;
|
|
CurMemUsed := UsedMem;
|
|
|
|
|
|
TestRecN2_a(aRecN2);
|
|
TestRecN2_b(bRecN2);
|
|
|
|
TestRecB2_a(aRecB2);
|
|
TestRecB2_b(bRecB2);
|
|
TestRecB3_a(aRecB3);
|
|
TestRecB3_b(aRecB3);
|
|
TestRecB3_c(bRecB3);
|
|
|
|
TestRecW2_a(aRecW2);
|
|
TestRecW2_b(bRecW2);
|
|
TestRecW3_a(aRecW3);
|
|
TestRecW3_b(aRecW3);
|
|
TestRecW3_c(bRecW3);
|
|
|
|
TestRecC2_a(aRecC2);
|
|
TestRecC2_b(bRecC2);
|
|
TestRecC3_a(aRecC3);
|
|
TestRecC3_b(aRecC3);
|
|
TestRecC3_c(bRecC3);
|
|
|
|
TestRecQ2_a(aRecQ2);
|
|
TestRecQ2_b(bRecQ2);
|
|
TestRecQ3_a(aRecQ3);
|
|
TestRecQ3_b(aRecQ3);
|
|
TestRecQ3_c(bRecQ3);
|
|
|
|
|
|
Test1RecB2(aRecB2,1);
|
|
Test1RecW2(bRecW2,1);
|
|
Test1RecC2(aRecC2,1);
|
|
Test1RecQ2(aRecQ2,1);
|
|
|
|
Test2RecB2(1, aRecB2);
|
|
Test2RecW2(1, bRecW2);
|
|
Test2RecC2(1, aRecC2);
|
|
Test2RecQ2(1, aRecQ2);
|
|
|
|
TestRecN2N2_1(aRecN2, bRecN2); TestRecN2N2_2(aRecN2, bRecN2);
|
|
|
|
TestRecB2B2_1(aRecB2, bRecB2); TestRecB2B2_2(aRecB2, bRecB2);
|
|
TestRecW2W2_1(aRecW2, bRecW2); TestRecW2W2_2(aRecW2, bRecW2);
|
|
TestRecC2C2_1(aRecC2, bRecC2); TestRecC2C2_2(aRecC2, bRecC2);
|
|
TestRecQ2Q2_1(aRecQ2, bRecQ2); TestRecQ2Q2_2(aRecQ2, bRecQ2);
|
|
|
|
Test1RecB2B2(aRecB2, bRecB2,1);
|
|
Test1RecW2W2(aRecW2, bRecW2,1);
|
|
Test1RecC2C2(aRecC2, bRecC2,1);
|
|
Test1RecQ2Q2(aRecQ2, bRecQ2,1);
|
|
|
|
Test2RecB2B2(1,aRecB2, bRecB2);
|
|
Test2RecW2W2(1,aRecW2, bRecW2);
|
|
Test2RecC2C2(1,aRecC2, bRecC2);
|
|
Test2RecQ2Q2(1,aRecQ2, bRecQ2);
|
|
|
|
|
|
TestRecB2B3_1(aRecB2, bRecB3); TestRecB2B3_2(aRecB2, bRecB3);
|
|
TestRecB2Q2_1(aRecB2, bRecQ2); TestRecB2Q2_2(aRecB2, bRecQ2);
|
|
TestRecB3B2_1(aRecB3, bRecB2); TestRecB3B2_2(aRecB3, bRecB2);
|
|
TestRecB3Q2_1(aRecB3, bRecQ2); TestRecB3Q2_2(aRecB3, bRecQ2);
|
|
TestRecQ2B2_1(aRecQ2, bRecB2); TestRecQ2B2_2(aRecQ2, bRecB2);
|
|
TestRecQ2B3_1(aRecQ2, bRecB3); TestRecQ2B3_2(aRecQ2, bRecB3);
|
|
|
|
Test1RecB2B3(aRecB2, bRecB3, 1);
|
|
Test1RecB2Q2(aRecB2, bRecQ2, 1);
|
|
Test1RecB3B2(aRecB3, bRecB2, 1);
|
|
Test1RecB3Q2(aRecB3, bRecQ2, 1);
|
|
Test1RecQ2B2(aRecQ2, bRecB2, 1);
|
|
Test1RecQ2B3(aRecQ2, bRecB3, 1);
|
|
|
|
Test2RecB2B3(1, aRecB2, bRecB3);
|
|
Test2RecB2Q2(1, aRecB2, bRecQ2);
|
|
Test2RecB3B2(1, aRecB3, bRecB2);
|
|
Test2RecB3Q2(1, aRecB3, bRecQ2);
|
|
Test2RecQ2B2(1, aRecQ2, bRecB2);
|
|
Test2RecQ2B3(1, aRecQ2, bRecB3);
|
|
|
|
Test2RecQ3Q3(1, aRecQ3, bRecQ3);
|
|
Test2RecQ4Q4(1, aRecQ4, bRecQ4);
|
|
Test2RecQ5Q5(1, aRecQ5, bRecQ5);
|
|
Test2RecQ6Q6(1, aRecQ6, bRecQ6);
|
|
Test2RecQ7Q7(1, aRecQ7, bRecQ7);
|
|
|
|
|
|
end.
|