53 [](std::initializer_list<uint8_t>&& nCodesPerLength,
57 std::vector<uint8_t> lv(nCodesPerLength.begin(), nCodesPerLength.end());
59 Buffer lb(lv.data(), lv.size());
62 std::vector<uint8_t> cv(codeValues.begin(), codeValues.end());
71TEST(PrefixCodeDecoderTest, decodeCodeValueIdentityTest) {
72 static const std::array<uint8_t, 4> data{
73 {0b01010101, 0b01010101, 0b01010101, 0b01010101}};
74 const Buffer b(data.data(), data.size());
81 ht.setup(
false,
false);
83 for (
int i = 0; i < 32; i += 2) {
84 ASSERT_EQ(ht.decodeCodeValue(p), 4);
85 ASSERT_EQ(ht.decodeCodeValue(p), 8);
89TEST(PrefixCodeDecoderTest, decodeDifferenceIdentityTest) {
90 static const std::array<uint8_t, 4> data{
91 {0b00000000, 0b11010101, 0b01010101, 0b01111111}};
92 const Buffer b(data.data(), data.size());
99 ht.setup(
true,
false);
101 ASSERT_EQ(ht.decodeDifference(p), -127);
102 ASSERT_EQ(ht.decodeDifference(p), 21845);
103 ASSERT_EQ(ht.decodeDifference(p), 127);
106TEST(PrefixCodeDecoderTest, decodeCodeValueBadCodeTest) {
107 static const std::array<uint8_t, 4> data{{0b01000000}};
108 const Buffer b(data.data(), data.size());
115 ht.setup(
false,
false);
117 ASSERT_EQ(ht.decodeCodeValue(p), 4);
121TEST(PrefixCodeDecoderTest, decodeDifferenceBadCodeTest) {
122 static const std::array<uint8_t, 4> data{{0b00100000}};
123 const Buffer b(data.data(), data.size());
130 ht.setup(
true,
false);
132 ASSERT_EQ(ht.decodeDifference(p), -1);