1
0
mirror of https://github.com/SerenityOS/serenity synced 2024-07-09 09:17:35 +00:00
serenity/Tests/AK/TestCircularQueue.cpp
Ali Mohammad Pur 5e1499d104 Everywhere: Rename {Deprecated => Byte}String
This commit un-deprecates DeprecatedString, and repurposes it as a byte
string.
As the null state has already been removed, there are no other
particularly hairy blockers in repurposing this type as a byte string
(what it _really_ is).

This commit is auto-generated:
  $ xs=$(ack -l \bDeprecatedString\b\|deprecated_string AK Userland \
    Meta Ports Ladybird Tests Kernel)
  $ perl -pie 's/\bDeprecatedString\b/ByteString/g;
    s/deprecated_string/byte_string/g' $xs
  $ clang-format --style=file -i \
    $(git diff --name-only | grep \.cpp\|\.h)
  $ gn format $(git ls-files '*.gn' '*.gni')
2023-12-17 18:25:10 +03:30

69 lines
1.5 KiB
C++

/*
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibTest/TestCase.h>
#include <AK/ByteString.h>
#include <AK/CircularQueue.h>
TEST_CASE(basic)
{
CircularQueue<int, 3> ints;
EXPECT(ints.is_empty());
ints.enqueue(1);
ints.enqueue(2);
ints.enqueue(3);
EXPECT_EQ(ints.size(), 3u);
ints.enqueue(4);
EXPECT_EQ(ints.size(), 3u);
EXPECT_EQ(ints.dequeue(), 2);
EXPECT_EQ(ints.dequeue(), 3);
EXPECT_EQ(ints.dequeue(), 4);
EXPECT_EQ(ints.size(), 0u);
}
TEST_CASE(complex_type)
{
CircularQueue<ByteString, 2> strings;
strings.enqueue("ABC");
strings.enqueue("DEF");
EXPECT_EQ(strings.size(), 2u);
strings.enqueue("abc");
strings.enqueue("def");
EXPECT_EQ(strings.dequeue(), "abc");
EXPECT_EQ(strings.dequeue(), "def");
}
TEST_CASE(complex_type_clear)
{
CircularQueue<ByteString, 5> strings;
strings.enqueue("xxx");
strings.enqueue("xxx");
strings.enqueue("xxx");
strings.enqueue("xxx");
strings.enqueue("xxx");
EXPECT_EQ(strings.size(), 5u);
strings.clear();
EXPECT_EQ(strings.size(), 0u);
}
struct ConstructorCounter {
static unsigned s_num_constructor_calls;
ConstructorCounter() { ++s_num_constructor_calls; }
};
unsigned ConstructorCounter::s_num_constructor_calls = 0;
TEST_CASE(should_not_call_value_type_constructor_when_created)
{
CircularQueue<ConstructorCounter, 10> queue;
EXPECT_EQ(0u, ConstructorCounter::s_num_constructor_calls);
}