/* * Copyright (c) 2021, Jesse Buhagiar * * SPDX-License-Identifier: BSD-2-Clause */ #include #include TEST_CASE(basic) { AK::Stack stack; EXPECT(stack.is_empty() == true); stack.push(2); stack.push(4); stack.push(17); EXPECT(stack.size() == 3); EXPECT(stack.top() == 17); EXPECT_EQ(stack.pop(), true); EXPECT_EQ(stack.pop(), true); EXPECT_EQ(stack.pop(), true); EXPECT(stack.is_empty()); } TEST_CASE(complex_type) { AK::Stack stack; EXPECT_EQ(stack.is_empty(), true); EXPECT(stack.push("Well")); EXPECT(stack.push("Hello")); EXPECT(stack.push("Friends")); EXPECT(stack.push(":^)")); EXPECT_EQ(stack.top(), ":^)"); EXPECT_EQ(stack.pop(), true); EXPECT_EQ(stack.top(), "Friends"); EXPECT_EQ(stack.pop(), true); EXPECT_EQ(stack.top(), "Hello"); EXPECT_EQ(stack.pop(), true); EXPECT_EQ(stack.top(), "Well"); EXPECT_EQ(stack.pop(), true); EXPECT(stack.is_empty()); }