Serenity Operating System
at master 45 lines 1.1 kB view raw
1/* 2 * Copyright (c) 2021, Jesse Buhagiar <jooster669@gmail.com> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include <LibTest/TestCase.h> 8 9#include <AK/Stack.h> 10 11TEST_CASE(basic) 12{ 13 AK::Stack<int, 3> stack; 14 15 EXPECT(stack.is_empty() == true); 16 stack.push(2); 17 stack.push(4); 18 stack.push(17); 19 EXPECT(stack.size() == 3); 20 EXPECT(stack.top() == 17); 21 EXPECT_EQ(stack.pop(), true); 22 EXPECT_EQ(stack.pop(), true); 23 EXPECT_EQ(stack.pop(), true); 24 EXPECT(stack.is_empty()); 25} 26 27TEST_CASE(complex_type) 28{ 29 AK::Stack<DeprecatedString, 4> stack; 30 31 EXPECT_EQ(stack.is_empty(), true); 32 EXPECT(stack.push("Well")); 33 EXPECT(stack.push("Hello")); 34 EXPECT(stack.push("Friends")); 35 EXPECT(stack.push(":^)")); 36 EXPECT_EQ(stack.top(), ":^)"); 37 EXPECT_EQ(stack.pop(), true); 38 EXPECT_EQ(stack.top(), "Friends"); 39 EXPECT_EQ(stack.pop(), true); 40 EXPECT_EQ(stack.top(), "Hello"); 41 EXPECT_EQ(stack.pop(), true); 42 EXPECT_EQ(stack.top(), "Well"); 43 EXPECT_EQ(stack.pop(), true); 44 EXPECT(stack.is_empty()); 45}