Advanced Chunk Processing Library 0.2.0
A comprehensive C++ library for advanced data chunking strategies and processing operations
Loading...
Searching...
No Matches
chunking_methods_sophisticated_test.cpp
Go to the documentation of this file.
2#include "gtest/gtest.h"
3#include <random>
4#include <string>
5#include <vector>
6
7using namespace sophisticated_chunking;
8
9class WaveletChunkingTest : public ::testing::Test {
10protected:
11 void SetUp() override {
12 numeric_data = {1.0, 1.1, 1.2, 5.0, 5.1, 5.2, 2.0, 2.1, 2.2};
13 text_data = std::vector<char>{'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'};
14 }
15
16 std::vector<double> numeric_data;
17 std::vector<char> text_data;
18};
19
20class MutualInformationChunkingTest : public ::testing::Test {
21protected:
22 void SetUp() override {
23 word_data = {"the", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog"};
24 binary_data = {0xFF, 0xFE, 0xFD, 0x00, 0x01, 0x02};
25 }
26
27 std::vector<std::string> word_data;
28 std::vector<uint8_t> binary_data;
29};
30
31class DTWChunkingTest : public ::testing::Test {
32protected:
33 void SetUp() override {
34 time_series = {1.0f, 1.2f, 1.1f, 5.0f, 5.2f, 5.1f, 2.0f, 2.2f, 2.1f};
35 categorical = {'A', 'A', 'B', 'B', 'C', 'C', 'A', 'B'};
36 }
37
38 std::vector<float> time_series;
39 std::vector<char> categorical;
40};
41
42TEST_F(WaveletChunkingTest, NumericDataChunking) {
43 WaveletChunking<double> chunker(4, 0.5);
44 auto chunks = chunker.chunk(numeric_data);
45
46 EXPECT_GT(chunks.size(), 0);
47 for (const auto& chunk : chunks) {
48 EXPECT_GT(chunk.size(), 0);
49 }
50}
51
52TEST_F(WaveletChunkingTest, TextDataChunking) {
53 WaveletChunking<char> chunker(8, 0.3);
54 auto chunks = chunker.chunk(text_data);
55
56 EXPECT_GT(chunks.size(), 0);
57 for (const auto& chunk : chunks) {
58 EXPECT_GT(chunk.size(), 0);
59 }
60}
61
64 auto chunks = chunker.chunk(word_data);
65
66 EXPECT_GT(chunks.size(), 0);
67 for (const auto& chunk : chunks) {
68 EXPECT_GT(chunk.size(), 0);
69 }
70}
71
74 auto chunks = chunker.chunk(binary_data);
75
76 EXPECT_GT(chunks.size(), 0);
77 for (const auto& chunk : chunks) {
78 EXPECT_GT(chunk.size(), 0);
79 }
80}
81
82TEST_F(DTWChunkingTest, TimeSeriesChunking) {
83 DTWChunking<float> chunker(5, 1.5);
84 auto chunks = chunker.chunk(time_series);
85
86 EXPECT_GT(chunks.size(), 0);
87 for (const auto& chunk : chunks) {
88 EXPECT_GT(chunk.size(), 0);
89 }
90}
91
92TEST_F(DTWChunkingTest, CategoricalDataChunking) {
93 DTWChunking<char> chunker(3, 1.0);
94 auto chunks = chunker.chunk(categorical);
95
96 EXPECT_GT(chunks.size(), 0);
97 for (const auto& chunk : chunks) {
98 EXPECT_GT(chunk.size(), 0);
99 }
100}
TEST_F(WaveletChunkingTest, NumericDataChunking)
Dynamic time warping based chunking for sequence alignment.
std::vector< std::vector< T > > chunk(const std::vector< T > &data) const
Chunk data based on DTW analysis.
Information theory based chunking using mutual information.
std::vector< std::vector< T > > chunk(const std::vector< T > &data) const
Chunk data based on mutual information analysis.
Wavelet-based chunking strategy using signal processing principles.
std::vector< std::vector< T > > chunk(const std::vector< T > &data) const
Chunk data based on wavelet transform analysis.