spdlog/tests/test_circular_q.cpp

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

50 lines
1.0 KiB
C++
Raw Permalink Normal View History

#include "includes.h"
#include "spdlog/details/circular_q.h"
2023-08-05 22:09:12 +08:00
using q_type = spdlog::details::circular_q<size_t>;
TEST_CASE("test_size", "[circular_q]") {
2023-08-05 22:26:16 +08:00
const size_t q_size = 4;
q_type q(q_size);
REQUIRE(q.size() == 0);
REQUIRE(q.empty() == true);
2023-08-05 22:09:12 +08:00
for (size_t i = 0; i < q_size; i++) {
q.push_back(std::move(i));
}
REQUIRE(q.size() == q_size);
q.push_back(999);
REQUIRE(q.size() == q_size);
}
TEST_CASE("test_rolling", "[circular_q]") {
const size_t q_size = 4;
q_type q(q_size);
for (size_t i = 0; i < q_size + 2; i++) {
2023-08-05 22:09:12 +08:00
q.push_back(std::move(i));
}
REQUIRE(q.size() == q_size);
REQUIRE(q.front() == 2);
q.pop_front();
REQUIRE(q.front() == 3);
q.pop_front();
REQUIRE(q.front() == 4);
q.pop_front();
REQUIRE(q.front() == 5);
q.pop_front();
REQUIRE(q.empty());
q.push_back(6);
REQUIRE(q.front() == 6);
}
2023-08-05 22:26:16 +08:00
TEST_CASE("test_empty", "[circular_q]") {
q_type q(0);
q.push_back(1);
REQUIRE(q.empty());
}