gmaptestzal.pp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. {$mode objfpc}
  2. unit gmaptest;
  3. interface
  4. uses fpcunit, testregistry, gmap, gutil;
  5. type lesslli=specialize TLess<longint>;
  6. maplli=specialize TMap<longint,longint, lesslli>;
  7. type TGMapTest = class(TTestCase)
  8. Published
  9. procedure MapTest;
  10. public
  11. procedure Setup;override;
  12. private
  13. data:maplli;
  14. end;
  15. implementation
  16. procedure TGMapTest.MapTest;
  17. var it:maplli.TMSet.pnode;
  18. begin
  19. data[3]:=3;
  20. data[5]:=5;
  21. data[7]:=7;
  22. AssertEquals('Wrong min key', 3, data.min()^.key);
  23. AssertEquals('Wrong max key', 7, data.max()^.key);
  24. AssertEquals('Wrong min val', 3, data.min()^.value);
  25. AssertEquals('Wrong max val', 7, data.max()^.value);
  26. AssertEquals('Wrong val', 5, data[5]);
  27. data.delete(3);
  28. AssertEquals('Wrong min key', 5, data.min()^.key);
  29. AssertEquals('Wrong max key', 7, data.max()^.key);
  30. AssertEquals('Wrong min val', 5, data.min()^.value);
  31. AssertEquals('Wrong max val', 7, data.max()^.value);
  32. data[3]:=3;
  33. data[3]:=47;
  34. AssertEquals('Wrong val 2', 47, data[3]);
  35. if(data.find(4)<>nil) then
  36. AssertEquals('Found key which not there', 0, 1);
  37. data[17]:=42;
  38. it:=data.min;
  39. AssertEquals('Wrong min', 3, it^.key);
  40. it:=data.next(it);
  41. AssertEquals('Wrong next', 5, it^.key);
  42. it:=data.next(it);
  43. AssertEquals('Wrong next', 7, it^.key);
  44. it:=data.next(it);
  45. AssertEquals('Wrong next', 17, it^.key);
  46. it:=data.next(it);
  47. if(it<>nil) then
  48. AssertEquals('Last not nil', 0, 1);
  49. it:=data.max;
  50. AssertEquals('Wrong max', 17, it^.key);
  51. it:=data.prev(it);
  52. AssertEquals('Wrong prev', 7, it^.key);
  53. it:=data.prev(it);
  54. AssertEquals('Wrong prev', 5, it^.key);
  55. it:=data.prev(it);
  56. AssertEquals('Wrong prev', 3, it^.key);
  57. it:=data.prev(it);
  58. if(it<>nil) then
  59. AssertEquals('First not nil', 0, 1);
  60. end;
  61. procedure TGMapTest.Setup;
  62. begin
  63. data:=maplli.create;
  64. end;
  65. initialization
  66. RegisterTest(TGMapTest);
  67. end.