MCPcopy Create free account
hub / github.com/apache/arrow / TestLEB128Encode

Function TestLEB128Encode

cpp/src/arrow/util/bit_util_test.cc:775–793  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

773/// array
774template <typename Int>
775void TestLEB128Encode(Int input_value, const std::vector<uint8_t>& expected_data,
776 std::size_t buffer_size) {
777 std::vector<uint8_t> buffer(buffer_size);
778 auto bytes_written = bit_util::WriteLEB128(input_value, buffer.data(),
779 static_cast<int32_t>(buffer.size()));
780
781 EXPECT_EQ(bytes_written, expected_data.size());
782 // Encoded data
783 for (std::size_t i = 0; i < expected_data.size(); ++i) {
784 EXPECT_EQ(buffer.at(i), expected_data.at(i));
785 }
786
787 // When the value is successfully encoded, the remaining of the buffer is untouched
788 if (bytes_written > 0) {
789 for (std::size_t i = bytes_written; i < buffer.size(); ++i) {
790 EXPECT_EQ(buffer.at(i), 0);
791 }
792 }
793}
794
795/// Test encoding to known LEB128 byte sequences with edge cases parameters.
796/// \see LEB128.KnownSuccessfulValues for other known values tested.

Callers 1

TESTFunction · 0.85

Calls 3

WriteLEB128Function · 0.85
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected