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.

152 lines
3.8 KiB

  1. unit uutlArrayTests;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils, TestFramework,
  6. uutlGenerics;
  7. type
  8. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  9. TIntArray = specialize TutlArray<Integer>;
  10. TutlArrayTest = class(TTestCase)
  11. published
  12. procedure Prop_Get_Count;
  13. procedure Prop_Set_Count;
  14. procedure Prop_Get_Items;
  15. procedure Prop_Set_Items;
  16. procedure Prop_Get_Data;
  17. procedure Prop_Set_Data;
  18. procedure Meth_Ctor;
  19. end;
  20. implementation
  21. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  22. //TutlArrayTest/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  23. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  24. procedure TutlArrayTest.Prop_Get_Count;
  25. var
  26. arr: TIntArray;
  27. begin
  28. arr := TIntArray.Create;
  29. try
  30. AssertEquals(0, arr.Count);
  31. finally
  32. FreeAndNil(arr);
  33. end;
  34. end;
  35. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  36. procedure TutlArrayTest.Prop_Set_Count;
  37. var
  38. arr: TIntArray;
  39. begin
  40. arr := TIntArray.Create;
  41. try
  42. AssertEquals(0, arr.Count);
  43. arr.Count := 1;
  44. AssertEquals(1, arr.Count);
  45. arr.Count := 5;
  46. AssertEquals(5, arr.Count);
  47. finally
  48. FreeAndNil(arr);
  49. end;
  50. end;
  51. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  52. procedure TutlArrayTest.Prop_Get_Items;
  53. var
  54. arr: TIntArray;
  55. begin
  56. arr := TIntArray.Create;
  57. try
  58. arr.Count := 1;
  59. AssertEquals(0, arr[0]);
  60. finally
  61. FreeAndNil(arr);
  62. end;
  63. end;
  64. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  65. procedure TutlArrayTest.Prop_Set_Items;
  66. var
  67. arr: TIntArray;
  68. begin
  69. arr := TIntArray.Create;
  70. try
  71. arr.Count := 3;
  72. arr[0] := 1;
  73. arr[1] := 3;
  74. arr[2] := 5;
  75. AssertEquals(1, arr[0]);
  76. AssertEquals(3, arr[1]);
  77. AssertEquals(5, arr[2]);
  78. finally
  79. FreeAndNil(arr);
  80. end;
  81. end;
  82. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  83. procedure TutlArrayTest.Prop_Get_Data;
  84. var
  85. arr: TIntArray;
  86. data: TIntArray.TData;
  87. begin
  88. arr := TIntArray.Create;
  89. try
  90. arr.Count := 3;
  91. arr[0] := 1;
  92. arr[1] := 3;
  93. arr[2] := 5;
  94. data := arr.Data;
  95. AssertEquals(3, Length(data));
  96. AssertEquals(1, data[0]);
  97. AssertEquals(3, data[1]);
  98. AssertEquals(5, data[2]);
  99. finally
  100. FreeAndNil(arr);
  101. end;
  102. end;
  103. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  104. procedure TutlArrayTest.Prop_Set_Data;
  105. var
  106. arr: TIntArray;
  107. data: TIntArray.TData;
  108. begin
  109. arr := TIntArray.Create;
  110. try
  111. SetLength(data, 5);
  112. arr.Data := data;
  113. AssertEquals(5, arr.Count);
  114. finally
  115. FreeAndNil(arr);
  116. end;
  117. end;
  118. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  119. procedure TutlArrayTest.Meth_Ctor;
  120. var
  121. arr: TIntArray;
  122. data: TIntArray.TData;
  123. begin
  124. SetLength(data, 5);
  125. arr := TIntArray.Create(data);
  126. try
  127. AssertEquals(5, arr.Count);
  128. finally
  129. FreeAndNil(arr);
  130. end;
  131. end;
  132. initialization
  133. RegisterTest(TutlArrayTest.Suite);
  134. end.