31 const auto [dec_size, enc_size, input_v] =
gen_input(gen);
32 const std::string_view input = {input_v.data(), dec_size};
33 auto output = std::vector<char>(enc_size);
35 QBENCHMARK { T::encode(input, output.data()); }
37 T::encode(input, output.data());
43 const auto [dec_size, enc_size, input_v] =
gen_input(gen);
44 const std::string_view input = {input_v.data(), dec_size};
45 auto encoded = std::vector<char>(enc_size);
46 T::encode(input, encoded.data());
47 auto output = std::vector<char>(input_v.size());
49 QBENCHMARK { T::decode({encoded.data(), enc_size}, output.data()); }
51 T::decode({encoded.data(), enc_size}, output.data());
56void check_encode(std::string_view input,
const std::vector<char> &output) {
57 const auto n = output.size();
58 auto expected = std::vector<char>(
n);
59 F(input, expected.data());
61 std::string_view(output.data(),
n),
62 std::string_view(expected.data(),
n));
67 std::string_view input, std::string_view encoded,
68 const std::vector<char> &output
70 const auto n = input.size();
71 auto expected = std::vector<char>(
n);
73 static_cast<const void*
>(expected.data() +
n),
74 static_cast<const void*
>(F(encoded, expected.data())));
76 std::string_view(output.data(),
n),
77 std::string_view(expected.data(),
n));
constexpr std::size_t output_size(std::size_t n)
Calculates the size of the buffer required for the output, rounding up.
Definition cmd.hpp:48