From 1d11df68fc011a023e19b4ec7db4df73bef331d7 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Mon, 4 Oct 2021 18:22:59 +0200 Subject: Implemented the stackstack --- tests/stack.nim | 7 ++++ tests/stackStack.nim | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 tests/stackStack.nim (limited to 'tests') diff --git a/tests/stack.nim b/tests/stack.nim index 0f7e4c8..cb49daf 100644 --- a/tests/stack.nim +++ b/tests/stack.nim @@ -130,6 +130,13 @@ suite "Stack": check full.data[0] == 1 check empty.data[0] == 2 check empty.data[1] == 3 + test "Discard": + var empty = NewStack() + empty[].Discard(1) + check empty.height == 0 + empty[].Push(2) + empty[].Discard(3) + check empty.height == 0 test "Next": var empty = NewStack() check empty[].Next() == nil diff --git a/tests/stackStack.nim b/tests/stackStack.nim new file mode 100644 index 0000000..03650f8 --- /dev/null +++ b/tests/stackStack.nim @@ -0,0 +1,104 @@ +import unittest + +include ../src/stackStack + +suite "StackStack": + test "Pop": + var empty = NewStackStack() + check empty[].Pop() == 0 + test "Push": + var empty = NewStackStack() + empty[].Push(5) + check empty[].Pop() == 5 + test "PopVector": + var empty = NewStackStack() + check empty[].PopVector() == (0, 0) + test "PushVector": + var empty = NewStackStack() + empty[].PushVector((3, 2)) + check empty[].PopVector() == (3, 2) + test "Clear": + var empty = NewStackStack() + empty[].Push(3) + empty[].Clear() + check empty[].Pop() == 0 + test "Begin": + var empty = NewStackStack() + empty[].Begin((1, 2)) + check empty.height == 2 + check empty[].Pop() == 0 + empty[].Push(5) + empty[].Push(6) + empty[].Push(4) + empty[].Begin((3, 4)) + check empty.height == 3 + check empty[].Pop() == 6 + check empty[].Pop() == 5 + check empty[].Pop() == 0 + check empty[].Pop() == 0 + empty[].Push(7) + empty[].Push(8) + empty[].Push(9) + empty[].Push(2) + empty[].Begin((10, 11)) + check empty.height == 4 + check empty[].Pop() == 9 + check empty[].Pop() == 8 + check empty[].Pop() == 0 + empty[].Push(13) + empty[].Push(14) + empty[].Push(-2) + empty[].Begin((15, 16)) + check empty[].Pop() == 0 + test "End": + var empty = NewStackStack() + var v: tuple[x,y: int] = (0, 0) + empty[].Push(1) + check empty[].End(v) == true + check empty.height == 1 + check empty[].Pop() == 1 + empty[].Push(1) + empty[].Push(2) + empty[].Push(3) + empty[].Push(4) + empty[].Push(2) + v = (5, 6) + empty[].Begin(v) + v = (0, 0) + empty[].Push(2) + check empty[].End(v) == false + check v == (5, 6) + check empty.height == 1 + check empty[].End(v) == true + check empty[].Pop() == 4 + check empty[].Pop() == 3 + check empty[].Pop() == 2 + check empty[].Pop() == 1 + empty[].Push(1) + empty[].Push(2) + empty[].Push(3) + empty[].Push(4) + empty[].Push(2) + empty[].Begin(v) + empty[].Push(4) + check empty[].End(v) == false + check v == (5, 6) + check empty.height == 1 + check empty[].Pop() == 4 + check empty[].Pop() == 3 + check empty[].Pop() == 0 + check empty[].Pop() == 0 + check empty[].Pop() == 2 + check empty[].Pop() == 1 + empty[].Push(1) + empty[].Push(2) + empty[].Push(3) + empty[].Push(4) + empty[].Push(1) + empty[].Begin(v) + empty[].Push(-2) + check empty[].End(v) == false + check v == (5, 6) + check empty.height == 1 + check empty[].Pop() == 1 + check empty[].Pop() == 0 -- cgit v1.2.3