gdequetest.pp 1000 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. {$mode objfpc}
  2. unit gdequetest;
  3. interface
  4. uses fpcunit, testregistry, gdeque;
  5. type dequelli=specialize TDeque<longint>;
  6. type TGDequeTest = class(TTestCase)
  7. Published
  8. procedure BackTest;
  9. procedure PushTest;
  10. public
  11. procedure Setup;override;
  12. private
  13. data:dequelli;
  14. end;
  15. implementation
  16. procedure TGDequeTest.BackTest;
  17. var i:longint;
  18. begin
  19. AssertEquals('Not IsEmpty', true, data.IsEmpty);
  20. for i:=0 to 10 do
  21. data.pushback(i);
  22. for i:=0 to 10 do begin
  23. AssertEquals('Wrong data', 10-i, data.back);
  24. AssertEquals('Wrong size', 11-i, SizeInt(data.size));
  25. data.popback;
  26. end;
  27. AssertEquals('Not IsEmpty', true, data.IsEmpty);
  28. end;
  29. procedure TGDequeTest.PushTest;
  30. var i:longint;
  31. begin
  32. for i:=6 to 10 do
  33. data.pushBack(i);
  34. for i:=5 downto 0 do
  35. data.pushFront(i);
  36. for i:=0 to 10 do
  37. AssertEquals('Wrong data', i, data[i]);
  38. end;
  39. procedure TGDequeTest.Setup;
  40. begin
  41. data:=dequelli.create;
  42. end;
  43. initialization
  44. RegisterTest(TGDequeTest);
  45. end.