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
4
#include "
chunk_strategies.hpp
"
5
#include <gtest/gtest.h>
6
#include <vector>
7
8
using namespace
chunk_processing
;
9
10
class
QuantileStrategyTest
:
public
::testing::Test {
11
protected
:
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
16
class
VarianceStrategyTest
:
public
::testing::Test {
17
protected
:
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
24
class
EntropyStrategyTest
:
public
::testing::Test {
25
protected
:
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
32
TEST_F
(
VarianceStrategyTest
, BasicOperation) {
33
VarianceStrategy<double>
strategy(1.0);
34
auto
chunks = strategy.
apply
(test_data);
35
EXPECT_GT(chunks.size(), 1);
36
}
37
38
TEST_F
(
EntropyStrategyTest
, BasicOperation) {
39
EntropyStrategy<double>
strategy(1.5);
40
auto
chunks = strategy.
apply
(test_data);
41
EXPECT_GT(chunks.size(), 0);
42
}
43
44
TEST_F
(
VarianceStrategyTest
, SingleElement) {
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
51
TEST_F
(
EntropyStrategyTest
, ConstantData) {
52
auto
strategy =
EntropyStrategy<double>
(0.5);
53
auto
chunks = strategy.apply(low_entropy_data);
54
EXPECT_EQ(chunks.size(), 1);
55
}
56
57
TEST_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
63
TEST_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
69
TEST_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
75
TEST_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
81
TEST_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
87
TEST_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
93
TEST_F
(
VarianceStrategyTest
, ZeroThreshold) {
94
VarianceStrategy<double>
strategy(0.0);
95
auto
chunks = strategy.
apply
(test_data);
96
EXPECT_GT(chunks.size(), 1);
97
}
98
99
TEST_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
chunk_strategies.hpp
Defines various strategies for chunking data based on different criteria.
TEST_F
TEST_F(VarianceStrategyTest, BasicOperation)
Definition
chunk_strategies_test.cpp:32
EntropyStrategyTest
Definition
chunk_strategies_test.cpp:24
EntropyStrategyTest::mixed_entropy_data
std::vector< double > mixed_entropy_data
Definition
chunk_strategies_test.cpp:29
EntropyStrategyTest::high_entropy_data
std::vector< double > high_entropy_data
Definition
chunk_strategies_test.cpp:28
EntropyStrategyTest::test_data
std::vector< double > test_data
Definition
chunk_strategies_test.cpp:26
EntropyStrategyTest::low_entropy_data
std::vector< double > low_entropy_data
Definition
chunk_strategies_test.cpp:27
QuantileStrategyTest
Definition
chunk_strategies_test.cpp:10
QuantileStrategyTest::test_data
std::vector< double > test_data
Definition
chunk_strategies_test.cpp:12
QuantileStrategyTest::empty_data
std::vector< double > empty_data
Definition
chunk_strategies_test.cpp:13
VarianceStrategyTest
Definition
chunk_strategies_test.cpp:16
VarianceStrategyTest::test_data
std::vector< double > test_data
Definition
chunk_strategies_test.cpp:18
VarianceStrategyTest::mixed_variance_data
std::vector< double > mixed_variance_data
Definition
chunk_strategies_test.cpp:21
VarianceStrategyTest::high_variance_data
std::vector< double > high_variance_data
Definition
chunk_strategies_test.cpp:20
VarianceStrategyTest::low_variance_data
std::vector< double > low_variance_data
Definition
chunk_strategies_test.cpp:19
chunk_processing::EntropyStrategy
Definition
chunk_strategies.hpp:140
chunk_processing::EntropyStrategy::apply
std::vector< std::vector< T > > apply(const std::vector< T > &data) const override
Definition
chunk_strategies.hpp:168
chunk_processing::VarianceStrategy
Definition
chunk_strategies.hpp:82
chunk_processing::VarianceStrategy::apply
std::vector< std::vector< T > > apply(const std::vector< T > &data) const override
Definition
chunk_strategies.hpp:99
chunk_processing
Definition
chunk.hpp:9
tests
chunk_strategies_test.cpp
Generated on Sat Dec 28 2024 01:08:54 for Advanced Chunk Processing Library by
1.9.8