5static void test_decode(
const std::string& encoded,
const std::string& decoded)
7 auto [buf, bufSize] = Base64::decode(encoded);
8 REQUIRE(bufSize == decoded.size());
12static void test(
const std::string& decoded,
const std::string& encoded)
14 CHECK(Base64::encode(std::span{
reinterpret_cast<const uint8_t*
>(decoded.data()),
17 test_decode(encoded, decoded);
27 test(
"abc\n",
"YWJjCg==");
28 test(
"0123456789\n",
"MDEyMzQ1Njc4OQo=");
29 test(
"abcdefghijklmnopqrstuvwxyz\n",
"YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoK");
30 test(
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\n",
31 "MDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1\n"
33 test(
"111111111111111111111111111111111111111111111111111111111111111111111111111111"
34 "111111111111111111111111111111111111111111111111111111111111111111111111111111"
35 "111111111111111111111111111111111111111111111111111111111111111111111111111111"
36 "111111111111111111111111111111111111111111111\n",
37 "MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx\n"
38 "MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx\n"
39 "MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx\n"
40 "MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx\n"
41 "MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExCg==");
45 test_decode(
"M\nDEyM\nzQ1Njc\n4OQo=",
"0123456789\n");
47 test_decode(
"MDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoK",
48 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\n");
bool equal(InputRange1 &&range1, InputRange2 &&range2, Pred pred={}, Proj1 proj1={}, Proj2 proj2={})