2#include "gtest/gtest.h"
18 for (
size_t i = 0; i < vec.size(); ++i) {
20 if (i < vec.size() - 1) {
61 EXPECT_TRUE(skip_list.
search(5));
62 EXPECT_TRUE(skip_list.
search(7));
63 EXPECT_TRUE(skip_list.
search(10));
64 EXPECT_FALSE(skip_list.
search(6));
67 std::vector<int> numbers(100);
68 std::iota(numbers.begin(), numbers.end(), 1);
69 std::random_device rd;
70 std::mt19937 gen(rd());
71 std::shuffle(numbers.begin(), numbers.end(), gen);
74 for (
int num : numbers) {
79 for (
int num : numbers) {
80 EXPECT_TRUE(large_list.
search(num));
91 std::vector<int> values = {3, 7, 1, 5, 9, 2, 8, 4, 6};
92 for (
int val : values) {
97 for (
int val : values) {
98 EXPECT_TRUE(tree.
search(val));
102 EXPECT_FALSE(tree.
search(0));
103 EXPECT_FALSE(tree.
search(10));
111 const int NUM_ELEMENTS = 10000;
114 for (
int i = 0; i < NUM_ELEMENTS; i++) {
119 for (
int i = 0; i < NUM_ELEMENTS; i++) {
120 EXPECT_TRUE(skip_list.
search(i));
124 for (
int i = NUM_ELEMENTS; i < NUM_ELEMENTS + 100; i++) {
125 EXPECT_FALSE(skip_list.
search(i));
134 EXPECT_TRUE(list.
search(1) ==
false);
135 EXPECT_TRUE(list.
search(0) ==
false);
147 EXPECT_TRUE(tree.
search(1));
148 EXPECT_TRUE(tree.
search(2));
149 EXPECT_FALSE(tree.
search(3));
155TEST(ChunkDequeTest, BasicOperations) {
157 EXPECT_TRUE(deque.
empty());
161 EXPECT_EQ(deque.
size(), 2);
165 EXPECT_TRUE(deque.
empty());
171TEST(ChunkStackTest, BasicOperations) {
173 EXPECT_TRUE(stack.
empty());
177 EXPECT_EQ(stack.
size(), 2);
179 EXPECT_EQ(stack.
pop(), 2);
180 EXPECT_EQ(stack.
pop(), 1);
181 EXPECT_TRUE(stack.
empty());
187TEST(ChunkTreapTest, BasicOperations) {
189 EXPECT_FALSE(treap.
search(5));
195 EXPECT_TRUE(treap.
search(5));
196 EXPECT_TRUE(treap.
search(3));
197 EXPECT_TRUE(treap.
search(8));
198 EXPECT_FALSE(treap.
search(10));
204TEST(SemanticBoundariesChunkTest, BasicOperations) {
206 std::vector<std::string> data = {
"This",
"is",
"a",
"test",
"sentence"};
207 auto result = chunk.
chunk(data);
208 EXPECT_GT(result.size(), 0);
214TEST(FractalPatternsChunkTest, BasicOperations) {
216 std::vector<int> data = {1, 2, 3, 4, 5, 1, 2, 3};
217 auto result = chunk.
chunk(data);
218 EXPECT_GT(result.size(), 0);
224TEST(BloomFilterChunkTest, BasicOperations) {
226 std::vector<int> data = {1, 2, 3, 4, 5};
227 auto result = chunk.
chunk(data);
228 EXPECT_GT(result.size(), 0);
234TEST(GraphBasedChunkTest, BasicOperations) {
236 std::vector<int> data = {1, 2, 3, 4, 5};
237 auto result = chunk.
chunk(data);
238 EXPECT_GT(result.size(), 0);
void printVector(const std::vector< T > &vec)
Helper function to print a vector.
TEST_F(ChunkSkipListTest, BasicOperations)
Tests basic operations of ChunkSkipList.
TEST(ChunkDequeTest, BasicOperations)
Tests basic operations of ChunkDeque.
Test fixture for ChunkBPlusTree tests.
std::vector< int > test_data
Test fixture for ChunkSkipList tests.
std::vector< int > test_data
Bloom filter-based chunking implementation.
std::vector< std::vector< T > > chunk(const std::vector< T > &data)
A B+ tree implementation for chunk indexing.
void insert(const T &key)
Inserts a key into the B+ tree.
bool search(const T &key) const
Searches for a key in the B+ tree.
A deque-based chunk structure for double-ended operations.
void push_back(const T &value)
void push_front(const T &value)
A skip list implementation for efficient chunk searching.
void insert(const T &value)
Inserts a value into the skip list.
bool search(const T &value) const
Searches for a value in the skip list.
A stack-based chunk structure for LIFO operations.
void push(const T &value)
A treap implementation for efficient chunk searching and manipulation.
std::shared_ptr< Node > insert(std::shared_ptr< Node > node, T value, int priority)
bool search(const std::shared_ptr< Node > &node, T value) const
Fractal pattern-based chunking implementation.
std::vector< std::vector< T > > chunk(const std::vector< T > &data)
Graph-based chunking implementation.
std::vector< std::vector< T > > chunk(const std::vector< T > &data)
Semantic boundaries-based chunking implementation.
std::vector< std::vector< T > > chunk(const std::vector< T > &data)