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 File Reference
#include "data_structures.hpp"
#include "gtest/gtest.h"
+ Include dependency graph for data_structures_test.cpp:

Go to the source code of this file.

Functions

 TEST (ChunkListTest, Operations)
 
 TEST (CircularBufferTest, BasicOperations)
 
 TEST (PriorityQueueTest, Ordering)
 
 TEST (SlidingWindowTest, Average)
 

Function Documentation

◆ TEST() [1/4]

TEST ( ChunkListTest  ,
Operations   
)

Definition at line 34 of file data_structures_test.cpp.

34 {
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}
std::vector< T > flatten() const
void prepend_chunk(const std::vector< T > &chunk_data)
void append_chunk(const std::vector< T > &chunk_data)

References ChunkList< T >::append_chunk(), ChunkList< T >::flatten(), and ChunkList< T >::prepend_chunk().

◆ TEST() [2/4]

TEST ( CircularBufferTest  ,
BasicOperations   
)

Definition at line 4 of file data_structures_test.cpp.

4 {
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}

References CircularBuffer< T >::empty(), CircularBuffer< T >::full(), CircularBuffer< T >::push(), CircularBuffer< T >::size(), and CircularBuffer< T >::to_vector().

◆ TEST() [3/4]

TEST ( PriorityQueueTest  ,
Ordering   
)

Definition at line 46 of file data_structures_test.cpp.

46 {
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}
void push(const T &item)
bool empty() const

References PriorityQueue< T, Compare >::empty(), PriorityQueue< T, Compare >::pop(), and PriorityQueue< T, Compare >::push().

◆ TEST() [4/4]

TEST ( SlidingWindowTest  ,
Average   
)

Definition at line 23 of file data_structures_test.cpp.

23 {
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}

References SlidingWindow< T >::average(), and SlidingWindow< T >::push().