Advanced Chunk Processing Library 0.2.0
A comprehensive C++ library for advanced data chunking strategies and processing operations
Loading...
Searching...
No Matches
data_structures_test.cpp
Go to the documentation of this file.
1#include "data_structures.hpp"
2#include "gtest/gtest.h"
3
4TEST(CircularBufferTest, BasicOperations) {
5 CircularBuffer<int> buffer(3);
6 EXPECT_TRUE(buffer.empty());
7 EXPECT_FALSE(buffer.full());
8
9 buffer.push(1);
10 EXPECT_EQ(buffer.size(), 1);
11
12 buffer.push(2);
13 buffer.push(3);
14 EXPECT_TRUE(buffer.full());
15
16 buffer.push(4); // Should overwrite 1
17 auto vec = buffer.to_vector();
18 EXPECT_EQ(vec.size(), 3);
19 EXPECT_EQ(vec[0], 2);
20 EXPECT_EQ(vec[2], 4);
21}
22
23TEST(SlidingWindowTest, Average) {
24 SlidingWindow<double> window(3);
25 window.push(1.0);
26 window.push(2.0);
27 window.push(3.0);
28 EXPECT_DOUBLE_EQ(window.average(), 2.0);
29
30 window.push(4.0);
31 EXPECT_DOUBLE_EQ(window.average(), 3.0);
32}
33
34TEST(ChunkListTest, Operations) {
35 ChunkList<int> list;
36 list.append_chunk({1, 2});
37 list.append_chunk({3, 4});
38 list.prepend_chunk({-1, 0});
39
40 auto flat = list.flatten();
41 EXPECT_EQ(flat.size(), 6);
42 EXPECT_EQ(flat[0], -1);
43 EXPECT_EQ(flat[5], 4);
44}
45
46TEST(PriorityQueueTest, Ordering) {
48 pq.push(3);
49 pq.push(1);
50 pq.push(4);
51
52 EXPECT_EQ(pq.pop(), 4);
53 EXPECT_EQ(pq.pop(), 3);
54 EXPECT_EQ(pq.pop(), 1);
55 EXPECT_TRUE(pq.empty());
56}
std::vector< T > flatten() const
void prepend_chunk(const std::vector< T > &chunk_data)
void append_chunk(const std::vector< T > &chunk_data)
std::vector< T > to_vector() const
bool full() const
void push(const T &item)
size_t size() const
bool empty() const
void push(const T &item)
bool empty() const
void push(const T &value)
TEST(CircularBufferTest, BasicOperations)