1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverunit Antlr.Runtime.Tools.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  SysUtils,
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  TestFramework,
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Generics.Defaults,
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Generics.Collections,
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Antlr.Runtime.Tools;
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertype
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  // Test methods for class IANTLRString
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  TestIANTLRString = class(TTestCase)
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  strict private
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FIANTLRString: IANTLRString;
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  public
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure SetUp; override;
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TearDown; override;
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  published
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestGetValue;
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestSetValue;
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end;
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  // Test methods for class TANTLRString
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  TestTANTLRString = class(TTestCase)
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  strict private
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FANTLRString: TANTLRString;
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  public
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure SetUp; override;
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TearDown; override;
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  published
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestToString;
43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end;
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  // Test methods for class ICloneable
46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  TestICloneable = class(TTestCase)
47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  strict private
48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FICloneable: ICloneable;
49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  public
50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure SetUp; override;
51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TearDown; override;
52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  published
53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestClone;
54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end;
55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  // Test methods for class IList
57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  TestIList = class(TTestCase)
58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  strict private
59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FIList: IList<Integer>;
60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  public
61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure SetUp; override;
62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TearDown; override;
63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  published
64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestGetCapacity;
65324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestSetCapacity;
66324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestGetCount;
67324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestSetCount;
68324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestGetItem;
69324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestSetItem;
70324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestAdd;
71324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestAddRange;
72324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestInsert;
73324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestRemove;
74324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestDelete;
75324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestDeleteRange;
76324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestClear;
77324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestContains;
78324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestIndexOf;
79324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end;
80324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
81324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  // Test methods for class IDictionary
82324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  TestIDictionary = class(TTestCase)
83324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  strict private
84324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FIDictionary: IDictionary<String, Integer>;
85324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  public
86324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure SetUp; override;
87324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TearDown; override;
88324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  published
89324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestGetItem;
90324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestSetItem;
91324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestGetCount;
92324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestAdd;
93324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestRemove;
94324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestTryGetValue;
95324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestContainsKey;
96324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestContainsValue;
97324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestEnumeration;
98324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end;
99324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
100324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  // Test methods for record TLocalStorage
101324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  TestTLocalStorage = class(TTestCase)
102324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  published
103324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestLocalIntegerStorage;
104324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure TestLocalInterfaceStorage;
105324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end;
106324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
107324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverimplementation
108324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
109324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertype
110324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  IFoo = interface(IANTLRInterface)
111324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ['{48E3FC72-4E63-46D8-8450-A561ECF76995}']
112324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    function GetValue: String;
113324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure SetValue(const V: String);
114324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    property Value: String read GetValue write SetValue;
115324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end;
116324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
117324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  TFoo = class(TANTLRObject, ICloneable, IFoo)
118324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FValue: String;
119324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    function GetValue: String;
120324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    procedure SetValue(const V: String);
121324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    function Clone: IANTLRInterface;
122324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end;
123324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
124324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverfunction TFoo.GetValue: String;
125324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
126324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Result := FValue;
127324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
128324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
129324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TFoo.SetValue(const V: String);
130324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
131324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FValue := V;
132324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
133324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
134324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverfunction TFoo.Clone: IANTLRInterface;
135324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
136324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Foo: IFoo;
137324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
138324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Foo := TFoo.Create;
139324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Foo.Value := FValue;
140324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Result := Foo;
141324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
142324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
143324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIANTLRString.SetUp;
144324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
145324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIANTLRString := TANTLRString.Create('foo');
146324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
147324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
148324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIANTLRString.TearDown;
149324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
150324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIANTLRString := nil;
151324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
152324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
153324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIANTLRString.TestGetValue;
154324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
155324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: string;
156324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
157324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIANTLRString.GetValue;
158324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(ReturnValue,'foo');
159324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
160324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
161324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIANTLRString.TestSetValue;
162324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
163324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: string;
164324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
165324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 'bar';
166324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIANTLRString.SetValue(Value);
167324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIANTLRString.Value,'bar');
168324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
169324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
170324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestTANTLRString.SetUp;
171324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
172324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FANTLRString := TANTLRString.Create('foo');
173324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
174324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
175324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestTANTLRString.TearDown;
176324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
177324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FANTLRString.Free;
178324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FANTLRString := nil;
179324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
180324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
181324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestTANTLRString.TestToString;
182324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
183324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: string;
184324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
185324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FANTLRString.ToString;
186324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(ReturnValue,'foo');
187324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
188324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
189324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestICloneable.SetUp;
190324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
191324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Foo: IFoo;
192324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
193324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Foo := TFoo.Create;
194324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Foo.Value := 'original';
195324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FICloneable := Foo as ICloneable;
196324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
197324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
198324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestICloneable.TearDown;
199324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
200324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FICloneable := nil;
201324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
202324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
203324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestICloneable.TestClone;
204324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
205324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: IANTLRInterface;
206324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
207324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FICloneable.Clone;
208324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Check(Supports(ReturnValue, IFoo));
209324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals((ReturnValue as IFoo).Value,(FICloneable as IFoo).Value);
210324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
211324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
212324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.SetUp;
213324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
214324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList := TList<Integer>.Create;
215324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
216324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
217324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TearDown;
218324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
219324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList := nil;
220324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
221324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
222324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestGetCapacity;
223324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
224324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: Integer;
225324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
226324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Capacity := 100;
227324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIList.GetCapacity;
228324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(ReturnValue,100);
229324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
230324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
231324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestSetCapacity;
232324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
233324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: Integer;
234324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
235324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 100;
236324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.SetCapacity(Value);
237324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIList.Capacity,100);
238324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
239324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
240324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestGetCount;
241324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
242324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: Integer;
243324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
244324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
245324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(123);
246324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIList.GetCount;
247324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(ReturnValue,1);
248324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
249324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
250324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestSetCount;
251324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
252324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: Integer;
253324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
254324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 4;
255324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.SetCount(Value);
256324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIList.Count,4);
257324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
258324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
259324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestGetItem;
260324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
261324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: Integer;
262324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Index: Integer;
263324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
264324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
265324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(100);
266324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(200);
267324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(300);
268324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(400);
269324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Index := 2;
270324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIList.GetItem(Index);
271324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(ReturnValue,300);
272324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
273324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
274324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestSetItem;
275324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
276324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: Integer;
277324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Index: Integer;
278324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
279324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
280324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(100);
281324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(200);
282324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(300);
283324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(400);
284324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Index := 3;
285324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 333;
286324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.SetItem(Index, Value);
287324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIList.Items[3],333);
288324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
289324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
290324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestAdd;
291324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
292324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: Integer;
293324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: Integer;
294324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
295324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
296324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 3;
297324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIList.Add(Value);
298324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(ReturnValue,0);
299324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
300324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
301324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestAddRange;
302324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
303324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Values: array [0..3] of Integer;
304324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
305324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
306324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Values[0] := 111;
307324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Values[1] := 222;
308324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Values[2] := 333;
309324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Values[3] := 444;
310324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.AddRange(Values);
311324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIList[0],111);
312324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIList[1],222);
313324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIList[2],333);
314324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIList[3],444);
315324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
316324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
317324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestInsert;
318324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
319324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: Integer;
320324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Index: Integer;
321324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
322324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
323324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(100);
324324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(200);
325324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(300);
326324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(400);
327324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Index := 2;
328324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 250;
329324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Insert(Index, Value);
330324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIList[1],200);
331324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIList[2],250);
332324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIList[3],300);
333324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
334324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
335324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestRemove;
336324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
337324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: Integer;
338324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: Integer;
339324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
340324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
341324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(100);
342324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(200);
343324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(300);
344324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(400);
345324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 300;
346324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIList.Remove(Value);
347324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(ReturnValue,2);
348324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
349324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
350324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestDelete;
351324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
352324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Index: Integer;
353324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
354324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
355324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(100);
356324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(200);
357324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(300);
358324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(400);
359324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Index := 2;
360324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Delete(Index);
361324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIList[2],400);
362324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
363324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
364324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestDeleteRange;
365324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
366324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ACount: Integer;
367324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  AIndex: Integer;
368324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
369324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
370324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(100);
371324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(200);
372324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(300);
373324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(400);
374324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  AIndex := 1;
375324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ACount := 2;
376324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.DeleteRange(AIndex, ACount);
377324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIlist[0],100);
378324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIlist[1],400);
379324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
380324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
381324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestClear;
382324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
383324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
384324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(100);
385324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(200);
386324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(300);
387324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(400);
388324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
389324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIList.Count,0);
390324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
391324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
392324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestContains;
393324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
394324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: Boolean;
395324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: Integer;
396324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
397324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
398324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(100);
399324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(200);
400324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(300);
401324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(400);
402324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 200;
403324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIList.Contains(Value);
404324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckTrue(ReturnValue);
405324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 250;
406324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIList.Contains(Value);
407324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckFalse(ReturnValue);
408324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
409324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
410324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIList.TestIndexOf;
411324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
412324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: Integer;
413324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: Integer;
414324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
415324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Clear;
416324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(100);
417324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(200);
418324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(300);
419324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIList.Add(400);
420324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 300;
421324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIList.IndexOf(Value);
422324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(ReturnValue,2);
423324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 301;
424324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIList.IndexOf(Value);
425324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(ReturnValue,-1);
426324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
427324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
428324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIDictionary.SetUp;
429324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
430324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIDictionary := TDictionary<String, Integer>.Create;
431324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIDictionary.Add('Foo',1);
432324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIDictionary.Add('Bar',3);
433324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIDictionary.Add('Baz',7);
434324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIDictionary.Add('Zip',7);
435324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
436324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
437324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIDictionary.TearDown;
438324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
439324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIDictionary := nil;
440324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
441324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
442324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIDictionary.TestGetItem;
443324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
444324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: Integer;
445324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key: String;
446324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
447324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key := 'Baz';
448324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIDictionary.GetItem(Key);
449324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(ReturnValue,7);
450324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
451324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
452324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIDictionary.TestSetItem;
453324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
454324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: Integer;
455324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key: String;
456324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
457324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key := 'Bar';
458324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 20;
459324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIDictionary.SetItem(Key, Value);
460324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIDictionary['Bar'],20);
461324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
462324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
463324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIDictionary.TestGetCount;
464324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
465324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: Integer;
466324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
467324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIDictionary.GetCount;
468324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(ReturnValue,4);
469324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
470324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
471324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIDictionary.TestAdd;
472324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
473324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: Integer;
474324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key: String;
475324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
476324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key := 'Key';
477324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := -1;
478324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIDictionary.Add(Key, Value);
479324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIDictionary['Key'],-1);
480324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
481324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
482324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIDictionary.TestRemove;
483324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
484324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key: String;
485324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
486324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key := 'Bar';
487324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  FIDictionary.Remove(Key);
488324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(FIDictionary.Count,3);
489324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
490324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
491324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIDictionary.TestTryGetValue;
492324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
493324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: Boolean;
494324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: Integer;
495324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key: String;
496324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
497324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key := 'Zip';
498324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIDictionary.TryGetValue(Key, Value);
499324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckTrue(ReturnValue);
500324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckEquals(Value,7);
501324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
502324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key := 'Oops';
503324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIDictionary.TryGetValue(Key, Value);
504324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckFalse(ReturnValue);
505324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
506324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
507324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIDictionary.TestContainsKey;
508324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
509324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: Boolean;
510324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key: String;
511324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
512324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key := 'Foo';
513324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIDictionary.ContainsKey(Key);
514324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckTrue(ReturnValue);
515324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
516324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Key := 'foo';
517324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIDictionary.ContainsKey(Key);
518324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckFalse(ReturnValue);
519324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
520324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
521324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIDictionary.TestContainsValue;
522324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
523324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue: Boolean;
524324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value: Integer;
525324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
526324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 3;
527324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIDictionary.ContainsValue(Value);
528324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckTrue(ReturnValue);
529324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
530324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Value := 2;
531324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  ReturnValue := FIDictionary.ContainsValue(Value);
532324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckFalse(ReturnValue);
533324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
534324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
535324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestIDictionary.TestEnumeration;
536324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
537324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Pair: TPair<String, Integer>;
538324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Foo, Bar, Baz, Zip: Boolean;
539324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
540324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Foo := False;
541324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Bar := False;
542324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Baz := False;
543324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Zip := False;
544324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
545324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  for Pair in FIDictionary do
546324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  begin
547324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    if (Pair.Key = 'Foo') then
548324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    begin
549324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      Foo := True;
550324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      CheckEquals(Pair.Value, 1);
551324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    end
552324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    else
553324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    if (Pair.Key = 'Bar') then
554324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    begin
555324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      Bar := True;
556324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      CheckEquals(Pair.Value, 3);
557324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    end
558324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    else
559324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    if (Pair.Key = 'Baz') then
560324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    begin
561324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      Baz := True;
562324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      CheckEquals(Pair.Value, 7);
563324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    end
564324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    else
565324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    if (Pair.Key = 'Zip') then
566324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    begin
567324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      Zip := True;
568324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      CheckEquals(Pair.Value, 7);
569324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    end
570324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    else
571324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      Check(False, 'Unknown key in dictionary');
572324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end;
573324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckTrue(Foo);
574324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckTrue(Bar);
575324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckTrue(Baz);
576324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  CheckTrue(Zip);
577324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
578324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
579324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{ TestTLocalStorage }
580324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
581324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestTLocalStorage.TestLocalIntegerStorage;
582324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
583324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Locals: TLocalStorage;
584324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
585324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Locals.Initialize;
586324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  try
587324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    Locals.AsInteger['x'] := 2;
588324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    Locals.AsInteger['X'] := 3;
589324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    CheckEquals(2, Locals.AsInteger['x']);
590324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    CheckEquals(3, Locals.AsInteger['X']);
591324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    CheckEquals(0, Locals.AsInteger['y']);
592324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    Locals.AsInteger['X'] := Locals.AsInteger['x'] * 2;
593324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    CheckEquals(4, Locals.AsInteger['X']);
594324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    CheckEquals(2, Locals.Count);
595324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  finally
596324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    Locals.Finalize;
597324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end;
598324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
599324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
600324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverprocedure TestTLocalStorage.TestLocalInterfaceStorage;
601324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvervar
602324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Locals: TLocalStorage;
603324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverbegin
604324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  Locals.Initialize;
605324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  try
606324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    { Local variable Z is never accessed again. We add it to check that there
607324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      will be no memory leak. }
608324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    Locals['Z'] := TANTLRString.Create('Value Z');
609324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
610324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    Locals['x'] := TANTLRString.Create('Value x');
611324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    Locals['X'] := TANTLRString.Create('Value X');
612324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    CheckEquals('Value x', (Locals['x'] as IANTLRString).Value);
613324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    CheckEquals('Value X', (Locals['X'] as IANTLRString).Value);
614324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    Check(Locals['y'] = nil);
615324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
616324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    Locals['X'] := TANTLRString.Create(
617324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      (Locals['X'] as IANTLRString).Value + ' Update');
618324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    CheckEquals('Value X Update', (Locals['X'] as IANTLRString).Value);
619324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    CheckEquals(3, Locals.Count);
620324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  finally
621324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    Locals.Finalize;
622324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end;
623324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend;
624324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
625324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverinitialization
626324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  // Register any test cases with the test runner
627324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  RegisterTest(TestIANTLRString.Suite);
628324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  RegisterTest(TestTANTLRString.Suite);
629324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  RegisterTest(TestICloneable.Suite);
630324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  RegisterTest(TestIList.Suite);
631324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  RegisterTest(TestIDictionary.Suite);
632324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  RegisterTest(TestTLocalStorage.Suite);
633324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend.
634