void test() override { Cerealiser cereal; cereal.writeBits(4, 3); cereal.writeBits(7, 3); cereal.writeBits(23, 5); cereal.writeBits(1, 2); cereal.writeBits(2, 3); checkEqual(cereal.getBytes(), std::vector<uint8_t>({0x9e, 0xea})); }
void test() override { Cerealiser cereal; cereal.writeBits(1, 1); cereal.writeBits(3, 2); cereal.writeBits(0, 1); cereal.writeBits(5, 3); cereal.writeBits(1, 1); checkEqual(cereal.getBytes(), std::vector<uint8_t>({0xeb})); }
void test() override { { Cerealiser cereal; cereal.writeBits(1, 9); cereal.writeBits(15, 7); checkEqual(cereal.getBytes(), std::vector<uint8_t>({0x00, 0x8f})); } { Cerealiser cereal; cereal.writeBits((0x9e << 1) | 1, 9); cereal.writeBits(0xea & 0x7f, 7); checkEqual(cereal.getBytes(), std::vector<uint8_t>({0x9e, 0xea})); } }
std::vector<ubyte> encode(T msg) { Cerealiser cereal; cereal << msg; return cereal.getBytes(); }
void test() override { Cerealiser cereal; cereal.writeBits(0x4, 4); cereal.writeBits(0xf, 4); checkEqual(cereal.getBytes(), std::vector<uint8_t>({0x4f})); }