unit uutlArrayTests; {$mode objfpc}{$H+} interface uses Classes, SysUtils, TestFramework, uutlGenerics; type //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// TIntArray = specialize TutlArray; TutlArrayTest = class(TTestCase) published procedure Prop_Get_Count; procedure Prop_Set_Count; procedure Prop_Get_Items; procedure Prop_Set_Items; procedure Prop_Get_Data; procedure Prop_Set_Data; procedure Meth_Ctor; end; implementation //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //TutlArrayTest///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// procedure TutlArrayTest.Prop_Get_Count; var arr: TIntArray; begin arr := TIntArray.Create; try AssertEquals(0, arr.Count); finally FreeAndNil(arr); end; end; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// procedure TutlArrayTest.Prop_Set_Count; var arr: TIntArray; begin arr := TIntArray.Create; try AssertEquals(0, arr.Count); arr.Count := 1; AssertEquals(1, arr.Count); arr.Count := 5; AssertEquals(5, arr.Count); finally FreeAndNil(arr); end; end; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// procedure TutlArrayTest.Prop_Get_Items; var arr: TIntArray; begin arr := TIntArray.Create; try arr.Count := 1; AssertEquals(0, arr[0]); finally FreeAndNil(arr); end; end; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// procedure TutlArrayTest.Prop_Set_Items; var arr: TIntArray; begin arr := TIntArray.Create; try arr.Count := 3; arr[0] := 1; arr[1] := 3; arr[2] := 5; AssertEquals(1, arr[0]); AssertEquals(3, arr[1]); AssertEquals(5, arr[2]); finally FreeAndNil(arr); end; end; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// procedure TutlArrayTest.Prop_Get_Data; var arr: TIntArray; data: TIntArray.TData; begin arr := TIntArray.Create; try arr.Count := 3; arr[0] := 1; arr[1] := 3; arr[2] := 5; data := arr.Data; AssertEquals(3, Length(data)); AssertEquals(1, data[0]); AssertEquals(3, data[1]); AssertEquals(5, data[2]); finally FreeAndNil(arr); end; end; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// procedure TutlArrayTest.Prop_Set_Data; var arr: TIntArray; data: TIntArray.TData; begin arr := TIntArray.Create; try SetLength(data, 5); arr.Data := data; AssertEquals(5, arr.Count); finally FreeAndNil(arr); end; end; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// procedure TutlArrayTest.Meth_Ctor; var arr: TIntArray; data: TIntArray.TData; begin SetLength(data, 5); arr := TIntArray.Create(data); try AssertEquals(5, arr.Count); finally FreeAndNil(arr); end; end; initialization RegisterTest(TutlArrayTest.Suite); end.