Advanced Chunk Processing Library 0.2.0
A comprehensive C++ library for advanced data chunking strategies and processing operations
Loading...
Searching...
No Matches
advanced_chunk_strategies_test.cpp File Reference
#include "chunk_strategies.hpp"
#include <functional>
#include <gtest/gtest.h>
#include <vector>
+ Include dependency graph for advanced_chunk_strategies_test.cpp:

Go to the source code of this file.

Classes

class  AdvancedChunkStrategiesTest
 

Functions

 TEST_F (AdvancedChunkStrategiesTest, EmptyInput)
 
 TEST_F (AdvancedChunkStrategiesTest, MultiDimensionalThresholds)
 
 TEST_F (AdvancedChunkStrategiesTest, PatternBasedCyclicDetection)
 
 TEST_F (AdvancedChunkStrategiesTest, PatternBasedPredicate)
 
 TEST_F (AdvancedChunkStrategiesTest, SingleElementInput)
 

Function Documentation

◆ TEST_F() [1/5]

TEST_F ( AdvancedChunkStrategiesTest  ,
EmptyInput   
)

Definition at line 48 of file advanced_chunk_strategies_test.cpp.

48 {
49 // Test with pattern size
51 auto size_chunks = size_strategy.apply(empty_data);
52 EXPECT_TRUE(size_chunks.empty());
53
54 // Test with predicate
55 chunk_processing::PatternBasedStrategy<double> pred_strategy([](double) { return true; });
56 auto pred_chunks = pred_strategy.apply(empty_data);
57 EXPECT_TRUE(pred_chunks.empty());
58}
std::vector< std::vector< T > > apply(const std::vector< T > &data) const override

References chunk_processing::PatternBasedStrategy< T >::apply().

◆ TEST_F() [2/5]

TEST_F ( AdvancedChunkStrategiesTest  ,
MultiDimensionalThresholds   
)

Definition at line 60 of file advanced_chunk_strategies_test.cpp.

60 {
61 auto vector_distance = [](const std::vector<double>& a, const std::vector<double>& b) {
62 double sum = 0.0;
63 for (size_t i = 0; i < a.size(); ++i) {
64 sum += (a[i] - b[i]) * (a[i] - b[i]);
65 }
66 return std::sqrt(sum);
67 };
68
69 auto predicate = [vector_distance](const std::vector<double>& vec) {
70 return vector_distance(vec, {0.0, 0.0}) > 2.0;
71 };
72
74 auto chunks = strategy.apply(multi_dim_data);
75
76 EXPECT_GT(chunks.size(), 0);
77 for (const auto& chunk : chunks) {
78 EXPECT_GT(chunk.size(), 0);
79 for (const auto& vec : chunk) {
80 EXPECT_EQ(vec.size(), 2);
81 }
82 }
83}

References chunk_processing::PatternBasedStrategy< T >::apply().

◆ TEST_F() [3/5]

TEST_F ( AdvancedChunkStrategiesTest  ,
PatternBasedCyclicDetection   
)

Definition at line 24 of file advanced_chunk_strategies_test.cpp.

24 {
25 chunk_processing::PatternBasedStrategy<int> strategy(3); // Pattern size of 3
26 auto chunks = strategy.apply(cyclic_data);
27
28 EXPECT_GT(chunks.size(), 0);
29 for (const auto& chunk : chunks) {
30 EXPECT_EQ(chunk.size(), 3);
31 }
32}

References chunk_processing::PatternBasedStrategy< T >::apply().

◆ TEST_F() [4/5]

TEST_F ( AdvancedChunkStrategiesTest  ,
PatternBasedPredicate   
)

Definition at line 16 of file advanced_chunk_strategies_test.cpp.

16 {
17 auto predicate = [](double val) { return val > 2.0; };
19
20 auto chunks = strategy.apply(test_data);
21 EXPECT_GT(chunks.size(), 0);
22}

References chunk_processing::PatternBasedStrategy< T >::apply().

◆ TEST_F() [5/5]

TEST_F ( AdvancedChunkStrategiesTest  ,
SingleElementInput   
)

Definition at line 34 of file advanced_chunk_strategies_test.cpp.

34 {
35 // Test with pattern size
37 auto size_chunks = size_strategy.apply(single_element);
38 EXPECT_EQ(size_chunks.size(), 1);
39 EXPECT_EQ(size_chunks[0].size(), 1);
40
41 // Test with predicate
42 chunk_processing::PatternBasedStrategy<double> pred_strategy([](double) { return true; });
43 auto pred_chunks = pred_strategy.apply(single_element);
44 EXPECT_EQ(pred_chunks.size(), 1);
45 EXPECT_EQ(pred_chunks[0].size(), 1);
46}

References chunk_processing::PatternBasedStrategy< T >::apply().