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.

77 lines
2.8 KiB

  1. unit uutlSetHelperTests;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils, TestFramework;
  6. type
  7. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  8. TutlSetHelperTests = class(TTestCase)
  9. published
  10. procedure proc_ToString;
  11. procedure proc_TryToSet;
  12. procedure proc_Compare;
  13. end;
  14. implementation
  15. uses
  16. uutlGenerics;
  17. type
  18. TSetHelperTestEnum = (
  19. teTest0 = 0,
  20. teTest1 = 1,
  21. teTest2 = 2,
  22. teTest3 = 3,
  23. teTest4 = 4,
  24. teTest5 = 5,
  25. teTest8 = 8,
  26. teTest9 = 9
  27. );
  28. TSetHelperTestSet = set of TSetHelperTestEnum;
  29. TSetHelperTestSetH = specialize TutlSetHelper<TSetHelperTestEnum, TSetHelperTestSet>;
  30. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  31. //TutlSetHelperTests////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  32. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  33. procedure TutlSetHelperTests.proc_ToString;
  34. var
  35. str: String;
  36. begin
  37. str := TSetHelperTestSetH.ToString([teTest0, teTest1, teTest2, teTest3, teTest4, teTest8]);
  38. AssertEquals('teTest0, teTest1, teTest2, teTest3, teTest4, teTest8', str);
  39. str := TSetHelperTestSetH.ToString([teTest0, teTest1, teTest2, teTest3, teTest4, teTest8], '_');
  40. AssertEquals('teTest0_teTest1_teTest2_teTest3_teTest4_teTest8', str);
  41. end;
  42. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  43. procedure TutlSetHelperTests.proc_TryToSet;
  44. var
  45. s: TSetHelperTestSet;
  46. begin
  47. AssertTrue(TSetHelperTestSetH.TryToSet('teTest0, teTest1, teTest2, teTest3, teTest8, teTest9', s));
  48. AssertTrue([teTest0, teTest1, teTest2, teTest3, teTest8, teTest9] = s);
  49. AssertTrue(TSetHelperTestSetH.TryToSet('teTest0_asd_teTest1_asd_teTest2_asd_teTest3_asd_teTest8_asd_teTest9', '_asd_', s));
  50. AssertTrue([teTest0, teTest1, teTest2, teTest3, teTest8, teTest9] = s);
  51. end;
  52. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  53. procedure TutlSetHelperTests.proc_Compare;
  54. begin
  55. AssertEquals( 0, TSetHelperTestSetH.Compare([teTest0, teTest1, teTest2], [teTest0, teTest1, teTest2]));
  56. AssertEquals(-1, TSetHelperTestSetH.Compare([ teTest1, teTest2], [teTest0, teTest1, teTest2]));
  57. AssertEquals( 1, TSetHelperTestSetH.Compare([teTest0, teTest1, teTest2], [teTest0, teTest2]));
  58. end;
  59. initialization
  60. RegisterTest(TutlSetHelperTests.Suite);
  61. end.