📄 testtharray.pas
字号:
unit testTHarray;
interface
uses
SysUtils, TestFrameWork, DynamicArrays;
type
TTestTHArray = class(TTestCase)
private
protected
procedure SetUp; override;
procedure TearDown; override;
published
procedure testTHArray1;
procedure testTHArray2;
procedure testTHArray3;
procedure testTHArray4;
procedure testTHArray5;
procedure testTHArray6;
end;
implementation
procedure TTestTHArray.SetUp;
begin
end;
procedure TTestTHArray.TearDown;
begin
end;
procedure TTestTHArray.testTHarray1;
// AddValue, GetValue
var
arr:THArrayInteger;
begin
arr := THArrayInteger.Create;
CheckEquals(0, arr.Count);
arr.AddValue(123);
arr.AddValue(11111110);
arr.AddValue(-999999);
CheckEquals(3, arr.Count);
CheckEquals(123, arr[0]);
CheckEquals(11111110, arr[1]);
CheckEquals(-999999, arr[2]);
arr.Free;
end;
procedure TTestTHArray.testTHarray2;
//IndexOf
var
arr:THArrayInteger;
begin
arr := THArrayInteger.Create;
CheckEquals(0, arr.Count);
arr.AddValue(-1);
arr.AddValue(0);
arr.AddValue(34567890);
arr.AddValue(-999999);
CheckEquals(4, arr.Count);
CheckEquals(1, arr.IndexOf(0));
CheckEquals(0, arr.IndexOf(-1));
CheckEquals(-1, arr.IndexOf(1));
CheckEquals(3, arr.IndexOf(-999999));
CheckEquals(-1, arr.IndexOf(345678900));
CheckEquals(2, arr.IndexOf(34567890));
arr.Free;
end;
procedure TTestTHArray.testTHarray3;
// Delete
var
arr:THArrayInteger;
begin
arr := THArrayInteger.Create;
CheckEquals(0, arr.Count);
arr.AddValue(123);
arr.AddValue(11111110);
arr.AddValue(-9);
CheckEquals(3, arr.Count);
CheckEquals(123, arr[0]);
CheckEquals(11111110, arr[1]);
CheckEquals(-9, arr[2]);
arr.Delete(0);
CheckEquals(2, arr.Count);
CheckEquals(11111110, arr[0]);
arr.Delete(0);
CheckEquals(1, arr.Count);
CheckEquals(-9, arr[0]);
try
arr.Delete(1);
Check(false);
except
on E:ERangeError do
end;
CheckEquals(1, arr.Count);
arr.Delete(0);
CheckEquals(0, arr.Count);
try
arr[0];
Check(false);
except
end;
arr.Free;
end;
procedure TTestTHArray.testTHarray4;
// Capacity, Clear, ClearMem
var
arr:THArrayInteger;
begin
arr := THArrayInteger.Create;
CheckEquals(0, arr.Count);
arr.AddValue(7);
arr.AddValue(-9);
arr.AddValue(-987654321);
CheckEquals(3, arr.Count);
CheckEquals(7, arr[0]);
CheckEquals(-9, arr[1]);
CheckEquals(-987654321, arr[2]);
CheckEquals(4, arr.Capacity);
arr.Clear;
CheckEquals(0, arr.Count);
CheckEquals(4, arr.Capacity);
arr.AddValue(2);
arr.AddValue(4);
arr.AddValue(101);
arr.AddValue(101);
CheckEquals(2, arr[0]);
CheckEquals(4, arr[1]);
CheckEquals(101, arr[2]);
CheckEquals(101, arr[3]);
CheckEquals(4, arr.Count);
CheckEquals(8, arr.Capacity);
arr.AddValue(-1);
CheckEquals(5, arr.Count);
CheckEquals(8, arr.Capacity);
arr.ClearMem;
CheckEquals(0, arr.Count);
CheckEquals(0, arr.Capacity);
end;
procedure TTestTHArray.testTHarray5;
// InsertValue, Insert
var
arr:THArrayInteger;
a:integer;
begin
arr := THArrayInteger.Create;
CheckEquals(0, arr.Count);
arr.AddValue(7);
arr.AddValue(9);
arr.InsertValue(0, 11);
CheckEquals(3, arr.Count);
CheckEquals(11, arr[0]);
CheckEquals(7, arr[1]);
CheckEquals(9, arr[2]);
arr.InsertValue(2, 33);
CheckEquals(4, arr.Count);
CheckEquals(11, arr[0]);
CheckEquals(7, arr[1]);
CheckEquals(33, arr[2]);
CheckEquals(9, arr[3]);
try
arr.InsertValue(5, 55);
Check(false);
except
on E:ERangeError do
end;
CheckEquals(4, arr.Count);
arr.InsertValue(4, 44);
CheckEquals(5, arr.Count);
CheckEquals(11, arr[0]);
CheckEquals(7, arr[1]);
CheckEquals(33, arr[2]);
CheckEquals(9, arr[3]);
CheckEquals(44, arr[4]);
arr.Clear;
a := 5;
arr.Insert(0, @a);
a := 6;
arr.Insert(1, @a);
CheckEquals(2, arr.Count);
CheckEquals(5, arr[0]);
CheckEquals(6, arr[1]);
end;
procedure TTestTHArray.testTHarray6;
// Zero, SetCapacity, Hold
var
arr:THArrayInteger;
begin
arr := THArrayInteger.Create;
CheckEquals(0, arr.Count);
arr.AddValue(7);
arr.AddValue(9);
arr.AddValue(11);
arr.Zero;
CheckEquals(3, arr.Count);
CheckEquals(0, arr[0]);
CheckEquals(0, arr[1]);
CheckEquals(0, arr[2]);
arr.SetCapacity(8);
CheckEquals(3, arr.Count);
CheckEquals(8, arr.Capacity);
arr.SetCapacity(17);
CheckEquals(17, arr.Capacity);
arr.Hold;
CheckEquals(3, arr.Count);
CheckEquals(arr.Count, arr.Capacity);
arr.SetCapacity(0);
CheckEquals(0, arr.Count);
Checkequals(0, integer(arr.Memory));
end;
initialization
TestFramework.RegisterTest(TTestTHArray.Suite);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -