1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverunit Antlr.Runtime.Collections.Tests; 2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{ 3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver Delphi DUnit Test Case 5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ---------------------- 6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver This unit contains a skeleton test case class generated by the Test Case Wizard. 7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver Modify the generated code to correctly setup and call the methods from the unit 8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver being tested. 9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverinterface 13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruveruses 15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver TestFramework, 16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver Antlr.Runtime.Collections, 17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver Generics.Collections, 18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver Antlr.Runtime.Tools; 19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertype 21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver // Test methods for class IHashList 22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver TestIHashList = class(TTestCase) 23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver strict private 24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIHashList: IHashList<Integer, String>; 25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public 26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver procedure SetUp; override; 27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver procedure TearDown; override; 28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver published 29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver procedure TestInsertionOrder; 30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver procedure TestRemove; 31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver end; 32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver // Test methods for class IStackList 34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver TestIStackList = class(TTestCase) 35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver strict private 36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIStackList: IStackList<String>; 37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public 38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver procedure SetUp; override; 39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver procedure TearDown; override; 40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver published 41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver procedure TestPushPop; 42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver procedure TestPeek; 43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver end; 44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverimplementation 46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruveruses 48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver SysUtils; 49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverconst 51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver Values: array [0..9] of Integer = (50, 1, 33, 76, -22, 22, 34, 2, 88, 12); 52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIHashList.SetUp; 54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar 55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver I: Integer; 56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin 57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIHashList := THashList<Integer, String>.Create; 58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver for I in Values do 59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIHashList.Add(I,'Value' + IntToStr(I)); 60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend; 61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIHashList.TearDown; 63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin 64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIHashList := nil; 65324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend; 66324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 67324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIHashList.TestInsertionOrder; 68324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar 69324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver I: Integer; 70324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver P: TPair<Integer, String>; 71324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin 72324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver I := 0; 73324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver for P in FIHashList do 74324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver begin 75324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver CheckEquals(P.Key, Values[I]); 76324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver CheckEquals(P.Value, 'Value' + IntToStr(Values[I])); 77324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver Inc(I); 78324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver end; 79324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend; 80324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 81324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIHashList.TestRemove; 82324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar 83324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver I: Integer; 84324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver P: TPair<Integer, String>; 85324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin 86324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIHashList.Remove(34); 87324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver I := 0; 88324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver for P in FIHashList do 89324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver begin 90324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if (Values[I] = 34) then 91324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver Inc(I); 92324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver CheckEquals(P.Key, Values[I]); 93324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver CheckEquals(P.Value, 'Value' + IntToStr(Values[I])); 94324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver Inc(I); 95324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver end; 96324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend; 97324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 98324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIStackList.SetUp; 99324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin 100324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIStackList := TStackList<String>.Create; 101324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend; 102324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 103324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIStackList.TearDown; 104324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin 105324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIStackList := nil; 106324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend; 107324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 108324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIStackList.TestPushPop; 109324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar 110324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver Item: String; 111324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin 112324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver Item := 'Item 1'; 113324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIStackList.Push(Item); 114324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver Item := 'Item 2'; 115324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIStackList.Push(Item); 116324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver CheckEquals(FIStackList.Pop,'Item 2'); 117324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver CheckEquals(FIStackList.Pop,'Item 1'); 118324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend; 119324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 120324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIStackList.TestPeek; 121324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin 122324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIStackList.Push('Item 1'); 123324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIStackList.Push('Item 2'); 124324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIStackList.Push('Item 3'); 125324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver FIStackList.Pop; 126324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver CheckEquals(FIStackList.Peek, 'Item 2'); 127324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver CheckEquals(FIStackList.Pop, 'Item 2'); 128324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend; 129324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 130324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverinitialization 131324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver // Register any test cases with the test runner 132324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver RegisterTest(TestIHashList.Suite); 133324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver RegisterTest(TestIStackList.Suite); 134324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend. 135