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

Go to the source code of this file.

Classes

class  JaggedArrayTest
 

Macros

#define CHUNK_PROCESSING_JAGGED_ARRAY_TEST_HPP
 

Functions

 TEST_F (JaggedArrayTest, DetectJagged2DArray)
 
 TEST_F (JaggedArrayTest, DetectJagged3DArray)
 
 TEST_F (JaggedArrayTest, HandleEmptyArrays)
 
 TEST_F (JaggedArrayTest, Normalize2DJaggedArray)
 
 TEST_F (JaggedArrayTest, Normalize3DJaggedArray)
 
 TEST_F (JaggedArrayTest, ValidateJaggedArrays)
 

Macro Definition Documentation

◆ CHUNK_PROCESSING_JAGGED_ARRAY_TEST_HPP

#define CHUNK_PROCESSING_JAGGED_ARRAY_TEST_HPP

Definition at line 2 of file jagged_array_test.cpp.

Function Documentation

◆ TEST_F() [1/6]

TEST_F ( JaggedArrayTest  ,
DetectJagged2DArray   
)

Definition at line 29 of file jagged_array_test.cpp.

29 {
30 EXPECT_TRUE(is_jagged(jagged_2d));
31
32 std::vector<std::vector<double>> uniform_2d = {
33 {1.0, 2.0, 3.0}, {4.0, 5.0, 6.0}, {7.0, 8.0, 9.0}};
34 EXPECT_FALSE(is_jagged(uniform_2d));
35}
bool is_jagged(const std::vector< std::vector< T > > &data)

References chunk_processing::is_jagged().

◆ TEST_F() [2/6]

TEST_F ( JaggedArrayTest  ,
DetectJagged3DArray   
)

Definition at line 37 of file jagged_array_test.cpp.

37 {
38 EXPECT_TRUE(is_jagged_3d(jagged_3d));
39
40 std::vector<std::vector<std::vector<double>>> uniform_3d = {{{1.0, 2.0}, {3.0, 4.0}},
41 {{5.0, 6.0}, {7.0, 8.0}}};
42 EXPECT_FALSE(is_jagged_3d(uniform_3d));
43}
bool is_jagged_3d(const std::vector< std::vector< std::vector< T > > > &data)

References chunk_processing::is_jagged_3d().

◆ TEST_F() [3/6]

TEST_F ( JaggedArrayTest  ,
HandleEmptyArrays   
)

Definition at line 74 of file jagged_array_test.cpp.

74 {
76
77 std::vector<std::vector<double>> empty_2d;
78 auto normalized_2d = chunker.handle_jagged_2d(empty_2d);
79 EXPECT_TRUE(normalized_2d.empty());
80
82 std::vector<std::vector<std::vector<double>>> empty_3d;
83 auto normalized_3d = chunker_3d.handle_jagged_3d(empty_3d);
84 EXPECT_TRUE(normalized_3d.empty());
85}
A template class for managing and processing data in chunks.
Definition chunk.hpp:16
std::vector< std::vector< U > > handle_jagged_2d(const std::vector< std::vector< U > > &data)
Definition chunk.hpp:236
std::vector< std::vector< std::vector< U > > > handle_jagged_3d(const std::vector< std::vector< std::vector< U > > > &data)
Definition chunk.hpp:245

References chunk_processing::Chunk< T >::handle_jagged_2d(), and chunk_processing::Chunk< T >::handle_jagged_3d().

◆ TEST_F() [4/6]

TEST_F ( JaggedArrayTest  ,
Normalize2DJaggedArray   
)

Definition at line 45 of file jagged_array_test.cpp.

45 {
47 auto normalized = chunker.handle_jagged_2d(jagged_2d);
48
49 EXPECT_EQ(normalized.size(), expected_normalized_2d.size());
50 for (size_t i = 0; i < normalized.size(); ++i) {
51 EXPECT_EQ(normalized[i].size(), expected_normalized_2d[i].size());
52 for (size_t j = 0; j < normalized[i].size(); ++j) {
53 EXPECT_DOUBLE_EQ(normalized[i][j], expected_normalized_2d[i][j]);
54 }
55 }
56}

References chunk_processing::Chunk< T >::handle_jagged_2d().

◆ TEST_F() [5/6]

TEST_F ( JaggedArrayTest  ,
Normalize3DJaggedArray   
)

Definition at line 58 of file jagged_array_test.cpp.

58 {
60 auto normalized = chunker.handle_jagged_3d(jagged_3d);
61
62 EXPECT_EQ(normalized.size(), expected_normalized_3d.size());
63 for (size_t i = 0; i < normalized.size(); ++i) {
64 EXPECT_EQ(normalized[i].size(), expected_normalized_3d[i].size());
65 for (size_t j = 0; j < normalized[i].size(); ++j) {
66 EXPECT_EQ(normalized[i][j].size(), expected_normalized_3d[i][j].size());
67 for (size_t k = 0; k < normalized[i][j].size(); ++k) {
68 EXPECT_DOUBLE_EQ(normalized[i][j][k], expected_normalized_3d[i][j][k]);
69 }
70 }
71 }
72}

References chunk_processing::Chunk< T >::handle_jagged_3d().

◆ TEST_F() [6/6]

TEST_F ( JaggedArrayTest  ,
ValidateJaggedArrays   
)

Definition at line 87 of file jagged_array_test.cpp.

87 {
89
90 // Should not throw for jagged arrays - they get normalized
91 EXPECT_NO_THROW(chunker.validate_dimensions(jagged_2d));
92
93 // Should not throw for empty inner arrays - they get normalized
94 std::vector<std::vector<double>> jagged_with_empty = {
95 {1.0, 2.0}, {3.0, 4.0, 5.0}, {} // Empty inner array
96 };
97 EXPECT_NO_THROW(chunker.validate_dimensions(jagged_with_empty));
98
99 // Should still throw for invalid input
100 std::vector<std::vector<double>> invalid_data;
101 EXPECT_THROW(chunker.validate_dimensions(invalid_data, 5), std::invalid_argument);
102}
void validate_dimensions(const std::vector< U > &data, size_t expected_size=0)
Definition chunk.hpp:253

References chunk_processing::Chunk< T >::validate_dimensions().