MCPcopy Create free account
hub / github.com/comaps/comaps / TestCoder

Function TestCoder

libs/coding/coding_tests/elias_coder_test.cpp:17–52  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15{
16template <typename TCoder>
17void TestCoder(std::string const & name)
18{
19 using TBuffer = std::vector<uint8_t>;
20 using TWriter = MemWriter<TBuffer>;
21
22 uint64_t const kMask = 0xfedcba9876543210;
23
24 TBuffer buf;
25 {
26 TWriter w(buf);
27 BitWriter<TWriter> bits(w);
28 for (int i = 0; i <= 64; ++i)
29 {
30 uint64_t const mask = bits::GetFullMask(i);
31 uint64_t const value = kMask & mask;
32 if (value == 0)
33 TEST(!TCoder::Encode(bits, value), (name, i));
34 else
35 TEST(TCoder::Encode(bits, value), (name, i));
36 }
37 }
38
39 {
40 MemReader r(buf.data(), buf.size());
41 ReaderSource<MemReader> src(r);
42 BitReader<ReaderSource<MemReader>> bits(src);
43 for (int i = 0; i <= 64; ++i)
44 {
45 uint64_t const mask = bits::GetFullMask(i);
46 uint64_t const expected = kMask & mask;
47 if (expected == 0)
48 continue;
49 TEST_EQUAL(expected, TCoder::Decode(bits), (name, i));
50 }
51 }
52}
53
54UNIT_TEST(EliasCoder_Gamma)
55{

Callers

nothing calls this directly

Calls 6

GetFullMaskFunction · 0.85
TESTFunction · 0.85
EncodeFunction · 0.50
DecodeFunction · 0.50
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected