Files
CPP-Stack/test/test_stack.cpp

53 lines
1.1 KiB
C++

#include "stack.h"
#include <catch2/catch_test_macros.hpp>
TEST_CASE("Test push 3 items into stack.", "[stack]") {
Stack<int> stack = {};
REQUIRE(stack.size() == 0);
stack.push(80);
REQUIRE(stack.size() == 1);
REQUIRE(stack.peek() == 80);
stack.push(90);
REQUIRE(stack.size() == 2);
REQUIRE(stack.peek() == 90);
stack.push(60);
REQUIRE(stack.size() == 3);
REQUIRE(stack.peek() == 60);
}
TEST_CASE("Test push 3 items and poping them.", "[stack]") {
Stack<int> stack = {};
REQUIRE(stack.size() == 0);
stack.push(80);
REQUIRE(stack.size() == 1);
REQUIRE(stack.peek() == 80);
stack.push(90);
REQUIRE(stack.size() == 2);
REQUIRE(stack.peek() == 90);
stack.push(60);
REQUIRE(stack.size() == 3);
REQUIRE(stack.peek() == 60);
int return_val;
return_val = stack.pop().value();
REQUIRE(stack.size() == 2);
REQUIRE(return_val == 60);
return_val = stack.pop().value();
REQUIRE(stack.size() == 1);
REQUIRE(return_val == 90);
return_val = stack.pop().value();
REQUIRE(stack.size() == 0);
REQUIRE(return_val == 80);
}