53 lines
1.1 KiB
C++
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);
|
|
|
|
}
|