summaryrefslogtreecommitdiff
path: root/packages/fcl-stl/tests/gdequetest.pp
diff options
context:
space:
mode:
Diffstat (limited to 'packages/fcl-stl/tests/gdequetest.pp')
-rw-r--r--packages/fcl-stl/tests/gdequetest.pp55
1 files changed, 55 insertions, 0 deletions
diff --git a/packages/fcl-stl/tests/gdequetest.pp b/packages/fcl-stl/tests/gdequetest.pp
new file mode 100644
index 0000000000..9dfb8a0e9a
--- /dev/null
+++ b/packages/fcl-stl/tests/gdequetest.pp
@@ -0,0 +1,55 @@
+{$mode objfpc}
+
+unit gdequetest;
+
+interface
+
+uses fpcunit, testregistry, gdeque;
+
+type dequelli=specialize TDeque<longint>;
+
+type TGDequeTest = class(TTestCase)
+ Published
+ procedure BackTest;
+ procedure PushTest;
+ public
+ procedure Setup;override;
+ private
+ data:dequelli;
+ end;
+
+implementation
+
+procedure TGDequeTest.BackTest;
+var i:longint;
+begin
+ AssertEquals('Not IsEmpty', true, data.IsEmpty);
+ for i:=0 to 10 do
+ data.pushback(i);
+ for i:=0 to 10 do begin
+ AssertEquals('Wrong data', 10-i, data.back);
+ AssertEquals('Wrong size', 11-i, data.size);
+ data.popback;
+ end;
+ AssertEquals('Not IsEmpty', true, data.IsEmpty);
+end;
+
+procedure TGDequeTest.PushTest;
+var i:longint;
+begin
+ for i:=6 to 10 do
+ data.pushBack(i);
+ for i:=5 downto 0 do
+ data.pushFront(i);
+ for i:=0 to 10 do
+ AssertEquals('Wrong data', i, data[i]);
+end;
+
+procedure TGDequeTest.Setup;
+begin
+ data:=dequelli.create;
+end;
+
+initialization
+ RegisterTest(TGDequeTest);
+end.