Advanced Chunk Processing Library 0.2.0
A comprehensive C++ library for advanced data chunking strategies and processing operations
Loading...
Searching...
No Matches
chunk_strategies_test.cpp
Go to the documentation of this file.
1#ifndef CHUNK_PROCESSING_CHUNK_STRATEGIES_TEST_HPP
2#define CHUNK_PROCESSING_CHUNK_STRATEGIES_TEST_HPP
3
5#include <gtest/gtest.h>
6#include <vector>
7
8using namespace chunk_processing;
9
10class QuantileStrategyTest : public ::testing::Test {
11protected:
12 std::vector<double> test_data = {1.0, 2.0, 3.0, 10.0, 11.0, 12.0};
13 std::vector<double> empty_data = {};
14};
15
16class VarianceStrategyTest : public ::testing::Test {
17protected:
18 std::vector<double> test_data = {1.0, 1.1, 1.2, 5.0, 5.1, 5.2};
19 std::vector<double> low_variance_data = {1.0, 1.1, 1.2, 1.3, 1.4, 1.5};
20 std::vector<double> high_variance_data = {1.0, 10.0, 20.0, 30.0, 40.0, 50.0};
21 std::vector<double> mixed_variance_data = {1.0, 1.1, 10.0, 10.1, 20.0, 20.1};
22};
23
24class EntropyStrategyTest : public ::testing::Test {
25protected:
26 std::vector<double> test_data = {1.0, 2.0, 3.0, 1.0, 2.0, 3.0};
27 std::vector<double> low_entropy_data = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0};
28 std::vector<double> high_entropy_data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0};
29 std::vector<double> mixed_entropy_data = {1.0, 1.0, 2.0, 2.0, 3.0, 3.0};
30};
31
32TEST_F(VarianceStrategyTest, BasicOperation) {
33 VarianceStrategy<double> strategy(1.0);
34 auto chunks = strategy.apply(test_data);
35 EXPECT_GT(chunks.size(), 1);
36}
37
38TEST_F(EntropyStrategyTest, BasicOperation) {
39 EntropyStrategy<double> strategy(1.5);
40 auto chunks = strategy.apply(test_data);
41 EXPECT_GT(chunks.size(), 0);
42}
43
45 auto strategy = VarianceStrategy<double>(1.0);
46 std::vector<double> single_element = {1.0};
47 auto chunks = strategy.apply(single_element);
48 EXPECT_EQ(chunks.size(), 1);
49}
50
52 auto strategy = EntropyStrategy<double>(0.5);
53 auto chunks = strategy.apply(low_entropy_data);
54 EXPECT_EQ(chunks.size(), 1);
55}
56
57TEST_F(VarianceStrategyTest, LowVarianceData) {
58 VarianceStrategy<double> strategy(0.1);
59 auto chunks = strategy.apply(low_variance_data);
60 EXPECT_GE(chunks.size(), 1);
61}
62
63TEST_F(VarianceStrategyTest, HighVarianceData) {
64 VarianceStrategy<double> strategy(10.0);
65 auto chunks = strategy.apply(high_variance_data);
66 EXPECT_GT(chunks.size(), 1);
67}
68
69TEST_F(VarianceStrategyTest, MixedVarianceData) {
70 VarianceStrategy<double> strategy(1.0);
71 auto chunks = strategy.apply(mixed_variance_data);
72 EXPECT_GT(chunks.size(), 1);
73}
74
75TEST_F(EntropyStrategyTest, LowEntropyData) {
76 EntropyStrategy<double> strategy(0.1);
77 auto chunks = strategy.apply(low_entropy_data);
78 EXPECT_EQ(chunks.size(), 1);
79}
80
81TEST_F(EntropyStrategyTest, HighEntropyData) {
82 EntropyStrategy<double> strategy(1.0);
83 auto chunks = strategy.apply(high_entropy_data);
84 EXPECT_GT(chunks.size(), 1);
85}
86
87TEST_F(EntropyStrategyTest, MixedEntropyData) {
88 EntropyStrategy<double> strategy(1.0);
89 auto chunks = strategy.apply(mixed_entropy_data);
90 EXPECT_GT(chunks.size(), 1);
91}
92
94 VarianceStrategy<double> strategy(0.0);
95 auto chunks = strategy.apply(test_data);
96 EXPECT_GT(chunks.size(), 1);
97}
98
99TEST_F(EntropyStrategyTest, ZeroThreshold) {
100 EntropyStrategy<double> strategy(0.0);
101 auto chunks = strategy.apply(test_data);
102 EXPECT_EQ(chunks.size(), 1);
103}
104
105#endif // CHUNK_PROCESSING_CHUNK_STRATEGIES_TEST_HPP
Defines various strategies for chunking data based on different criteria.
TEST_F(VarianceStrategyTest, BasicOperation)
std::vector< double > mixed_entropy_data
std::vector< double > high_entropy_data
std::vector< double > test_data
std::vector< double > low_entropy_data
std::vector< double > test_data
std::vector< double > empty_data
std::vector< double > test_data
std::vector< double > mixed_variance_data
std::vector< double > high_variance_data
std::vector< double > low_variance_data
std::vector< std::vector< T > > apply(const std::vector< T > &data) const override
std::vector< std::vector< T > > apply(const std::vector< T > &data) const override