Advanced Chunk Processing Library
0.2.0
A comprehensive C++ library for advanced data chunking strategies and processing operations
Loading...
Searching...
No Matches
test_chunking.cpp
Go to the documentation of this file.
1
#include "
chunk_strategies.hpp
"
2
#include <gtest/gtest.h>
3
#include <vector>
4
5
class
ChunkingTest
:
public
::testing::Test {
6
protected
:
7
std::vector<int>
test_data
= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
8
};
9
10
TEST_F
(
ChunkingTest
, BasicChunkingOperations) {
11
// Test fixed-size chunking
12
chunk_processing::PatternBasedStrategy<int>
fixed_size_strategy(3);
13
auto
fixed_chunks = fixed_size_strategy.
apply
(test_data);
14
15
EXPECT_EQ(fixed_chunks.size(), 4);
// Should have 4 chunks (3,3,3,1)
16
EXPECT_EQ(fixed_chunks[0].size(), 3);
17
EXPECT_EQ(fixed_chunks[1].size(), 3);
18
EXPECT_EQ(fixed_chunks[2].size(), 3);
19
EXPECT_EQ(fixed_chunks[3].size(), 1);
20
}
21
22
TEST_F
(
ChunkingTest
, PredicateBasedChunking) {
23
// Test predicate-based chunking
24
auto
predicate = [](
int
val) {
return
val % 3 == 0; };
25
chunk_processing::PatternBasedStrategy<int>
pred_strategy(predicate);
26
auto
pred_chunks = pred_strategy.
apply
(test_data);
27
28
EXPECT_GT(pred_chunks.size(), 0);
29
for
(
const
auto
& chunk : pred_chunks) {
30
EXPECT_GT(chunk.size(), 0);
31
}
32
}
33
34
TEST_F
(
ChunkingTest
, EmptyInput) {
35
std::vector<int> empty_data;
36
chunk_processing::PatternBasedStrategy<int>
strategy(3);
37
auto
chunks = strategy.
apply
(empty_data);
38
39
EXPECT_TRUE(chunks.empty());
40
}
41
42
TEST_F
(
ChunkingTest
, SingleElementInput) {
43
std::vector<int> single_element = {1};
44
chunk_processing::PatternBasedStrategy<int>
strategy(3);
45
auto
chunks = strategy.
apply
(single_element);
46
47
EXPECT_EQ(chunks.size(), 1);
48
EXPECT_EQ(chunks[0].size(), 1);
49
}
50
51
TEST_F
(
ChunkingTest
, ExactDivisionChunking) {
52
std::vector<int> even_data = {1, 2, 3, 4, 5, 6};
53
chunk_processing::PatternBasedStrategy<int>
strategy(2);
54
auto
chunks = strategy.
apply
(even_data);
55
56
EXPECT_EQ(chunks.size(), 3);
57
for
(
const
auto
& chunk : chunks) {
58
EXPECT_EQ(chunk.size(), 2);
59
}
60
}
chunk_strategies.hpp
Defines various strategies for chunking data based on different criteria.
ChunkingTest
Definition
test_chunking.cpp:5
ChunkingTest::test_data
std::vector< int > test_data
Definition
test_chunking.cpp:7
chunk_processing::PatternBasedStrategy
Definition
chunk_strategies.hpp:39
chunk_processing::PatternBasedStrategy::apply
std::vector< std::vector< T > > apply(const std::vector< T > &data) const override
Definition
chunk_strategies.hpp:52
TEST_F
TEST_F(ChunkingTest, BasicChunkingOperations)
Definition
test_chunking.cpp:10
tests
test_chunking.cpp
Generated on Sat Dec 28 2024 01:08:55 for Advanced Chunk Processing Library by
1.9.8