You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
2.6 KiB

unit Antlr.Runtime.Collections.Tests;
{
Delphi DUnit Test Case
----------------------
This unit contains a skeleton test case class generated by the Test Case Wizard.
Modify the generated code to correctly setup and call the methods from the unit
being tested.
}
interface
uses
TestFramework,
Antlr.Runtime.Collections,
Generics.Collections,
Antlr.Runtime.Tools;
type
// Test methods for class IHashList
TestIHashList = class(TTestCase)
strict private
FIHashList: IHashList<Integer, String>;
public
procedure SetUp; override;
procedure TearDown; override;
published
procedure TestInsertionOrder;
procedure TestRemove;
end;
// Test methods for class IStackList
TestIStackList = class(TTestCase)
strict private
FIStackList: IStackList<String>;
public
procedure SetUp; override;
procedure TearDown; override;
published
procedure TestPushPop;
procedure TestPeek;
end;
implementation
uses
SysUtils;
const
Values: array [0..9] of Integer = (50, 1, 33, 76, -22, 22, 34, 2, 88, 12);
procedure TestIHashList.SetUp;
var
I: Integer;
begin
FIHashList := THashList<Integer, String>.Create;
for I in Values do
FIHashList.Add(I,'Value' + IntToStr(I));
end;
procedure TestIHashList.TearDown;
begin
FIHashList := nil;
end;
procedure TestIHashList.TestInsertionOrder;
var
I: Integer;
P: TPair<Integer, String>;
begin
I := 0;
for P in FIHashList do
begin
CheckEquals(P.Key, Values[I]);
CheckEquals(P.Value, 'Value' + IntToStr(Values[I]));
Inc(I);
end;
end;
procedure TestIHashList.TestRemove;
var
I: Integer;
P: TPair<Integer, String>;
begin
FIHashList.Remove(34);
I := 0;
for P in FIHashList do
begin
if (Values[I] = 34) then
Inc(I);
CheckEquals(P.Key, Values[I]);
CheckEquals(P.Value, 'Value' + IntToStr(Values[I]));
Inc(I);
end;
end;
procedure TestIStackList.SetUp;
begin
FIStackList := TStackList<String>.Create;
end;
procedure TestIStackList.TearDown;
begin
FIStackList := nil;
end;
procedure TestIStackList.TestPushPop;
var
Item: String;
begin
Item := 'Item 1';
FIStackList.Push(Item);
Item := 'Item 2';
FIStackList.Push(Item);
CheckEquals(FIStackList.Pop,'Item 2');
CheckEquals(FIStackList.Pop,'Item 1');
end;
procedure TestIStackList.TestPeek;
begin
FIStackList.Push('Item 1');
FIStackList.Push('Item 2');
FIStackList.Push('Item 3');
FIStackList.Pop;
CheckEquals(FIStackList.Peek, 'Item 2');
CheckEquals(FIStackList.Pop, 'Item 2');
end;
initialization
// Register any test cases with the test runner
RegisterTest(TestIHashList.Suite);
RegisterTest(TestIStackList.Suite);
end.