25TEST(fxcodec, RLEShortInput) {
26 const uint8_t src_buf[] = {1};
27 DataVector<uint8_t> dest_buf = BasicModule::RunLengthEncode(src_buf);
28 ASSERT_EQ(3u, dest_buf.size());
29 EXPECT_EQ(0, dest_buf[0]);
30 EXPECT_EQ(1, dest_buf[1]);
31 EXPECT_EQ(128, dest_buf[2]);
36TEST(fxcodec, RLENormalInputs) {
39 const uint8_t src_buf_1[] = {2, 2, 2, 2, 4, 4, 4, 4, 4, 4};
40 DataVector<uint8_t> dest_buf = BasicModule::RunLengthEncode(src_buf_1);
41 DataAndBytesConsumed result = RunLengthDecode(dest_buf);
42 EXPECT_THAT(result.data, ElementsAreArray(src_buf_1));
46 const uint8_t src_buf_2[] = {2, 2, 2, 2, 1, 2, 3, 4, 5, 6};
47 DataVector<uint8_t> dest_buf = BasicModule::RunLengthEncode(src_buf_2);
48 DataAndBytesConsumed result = RunLengthDecode(dest_buf);
49 EXPECT_THAT(result.data, ElementsAreArray(src_buf_2));
53 const uint8_t src_buf_3[] = {1, 2, 3, 4, 5, 3, 3, 3, 3, 3};
54 DataVector<uint8_t> dest_buf = BasicModule::RunLengthEncode(src_buf_3);
55 DataAndBytesConsumed result = RunLengthDecode(dest_buf);
56 EXPECT_THAT(result.data, ElementsAreArray(src_buf_3));
62TEST(fxcodec, RLEFullLengthInputs) {
65 std::array<uint8_t, 260> src_buf_1 = {{1}};
66 DataVector<uint8_t> dest_buf = BasicModule::RunLengthEncode(src_buf_1);
67 DataAndBytesConsumed result = RunLengthDecode(dest_buf);
68 EXPECT_THAT(result.data, ElementsAreArray(src_buf_1));
72 std::array<uint8_t, 260> src_buf_2 = {{2}};
73 for (uint16_t i = 128; i < 260; i++)
74 src_buf_2[i] =
static_cast<uint8_t>(i - 125);
75 DataVector<uint8_t> dest_buf = BasicModule::RunLengthEncode(src_buf_2);
76 DataAndBytesConsumed result = RunLengthDecode(dest_buf);
77 EXPECT_THAT(result.data, ElementsAreArray(src_buf_2));
81 std::array<uint8_t, 260> src_buf_3 = {};
82 for (uint8_t i = 0; i < 128; i++)
84 DataVector<uint8_t> dest_buf = BasicModule::RunLengthEncode(src_buf_3);
85 DataAndBytesConsumed result = RunLengthDecode(dest_buf);
86 EXPECT_THAT(result.data, ElementsAreArray(src_buf_3));
90 std::array<uint8_t, 260> src_buf_4;
91 for (uint16_t i = 0; i < 260; i++)
92 src_buf_4[i] =
static_cast<uint8_t>(i);
93 DataVector<uint8_t> dest_buf = BasicModule::RunLengthEncode(src_buf_4);
94 DataAndBytesConsumed result = RunLengthDecode(dest_buf);
95 EXPECT_THAT(result.data, ElementsAreArray(src_buf_4));