2026-03-17 15:49:55 -06:00
|
|
|
#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);
|
|
|
|
|
|
|
|
|
|
}
|