MCPcopy Create free account
hub / github.com/VectorDB-NTU/RaBitQ-Library / TEST

Function TEST

tests/unit/rabitqlib/utils/rotator_test.cpp:48–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46 return x;
47}
48TEST(FlipSignTest, FlipWorks) {
49 const size_t dim = 128;
50 float data[dim];
51 uint8_t flip[dim / 8]; // 1 bit per float
52
53 // Initialize data and flip pattern
54 for (size_t i = 0; i < dim; ++i) {
55 data[i] = static_cast<float>(i + 1); // Example data
56 }
57 for (size_t i = 0; i < dim / 8; ++i) {
58 flip[i] = static_cast<uint8_t>(i % 256); // Example flip pattern
59 }
60
61 // Perform sign flipping
62 rabitqlib::rotator_impl::flip_sign(flip, data, dim);
63
64 // Output the results
65 uint8_t signs = 0;
66 for (size_t i = 0; i < dim; ++i) {
67 ASSERT_EQ(abs(data[i]), static_cast<float>(i + 1));
68 int sign = (data[i] < 0) ? 1 : 0;
69 signs = (signs << 1) | sign;
70 if(i%8 == 7) {
71 uint8_t expected = flip[i / 8];
72 signs = bitreverse8(signs);
73 ASSERT_EQ(static_cast<uint8_t>(signs & 0xFF), expected);
74 signs = 0;
75 }
76 }
77}

Callers

nothing calls this directly

Calls 3

flip_signFunction · 0.85
bitreverse8Function · 0.85
absFunction · 0.50

Tested by

no test coverage detected