46 void checkExpectation (
const std::string& columnName,
const std::type_info& outputType, std::size_t outputSize,
const void *outputData,
const std::type_info& expectationType, std::size_t expectationSize,
const void *expectationData)
48 SCOPED_TRACE (columnName);
49 ASSERT_EQ (outputType, expectationType);
50 if (outputType ==
typeid(
float))
51 checkExpectationTyped (columnName, std::span<const float> (
static_cast<const float*
> (outputData), outputSize), std::span<const float> (
static_cast<const float*
> (expectationData), expectationSize));
52 else if (outputType ==
typeid(
char))
53 checkExpectationTyped (columnName, std::span<const char> (
static_cast<const char*
> (outputData), outputSize), std::span<const char> (
static_cast<const char*
> (expectationData), expectationSize));
54 else if (outputType ==
typeid(
int))
55 checkExpectationTyped (columnName, std::span<const int> (
static_cast<const int*
> (outputData), outputSize), std::span<const int> (
static_cast<const int*
> (expectationData), expectationSize));
56 else if (outputType ==
typeid(std::uint8_t))
57 checkExpectationTyped (columnName, std::span<const std::uint8_t> (
static_cast<const std::uint8_t*
> (outputData), outputSize), std::span<const std::uint8_t> (
static_cast<const std::uint8_t*
> (expectationData), expectationSize));
58 else if (outputType ==
typeid(std::uint16_t))
59 checkExpectationTyped (columnName, std::span<const std::uint16_t> (
static_cast<const std::uint16_t*
> (outputData), outputSize), std::span<const std::uint16_t> (
static_cast<const std::uint16_t*
> (expectationData), expectationSize));
60 else if (outputType ==
typeid(std::uint32_t))
61 checkExpectationTyped (columnName, std::span<const std::uint32_t> (
static_cast<const std::uint32_t*
> (outputData), outputSize), std::span<const std::uint32_t> (
static_cast<const std::uint32_t*
> (expectationData), expectationSize));
62 else if (outputType ==
typeid(std::uint64_t))
63 checkExpectationTyped (columnName, std::span<const std::uint64_t> (
static_cast<const std::uint64_t*
> (outputData), outputSize), std::span<const std::uint64_t> (
static_cast<const std::uint64_t*
> (expectationData), expectationSize));
64 else if (outputType ==
typeid(std::size_t))
65 checkExpectationTyped (columnName, std::span<const std::size_t> (
static_cast<const std::size_t*
> (outputData), outputSize), std::span<const std::size_t> (
static_cast<const std::size_t*
> (expectationData), expectationSize));
67 throw std::logic_error (
"received unsupported type " + boost::core::demangle(outputType.name()) +
" for column compare, cast value or extend test handler to support it");
93 void printExpectedOutput (
const std::string& columnName,
const std::type_info& outputType, std::size_t outputSize,
const void *outputData)
95 if (outputType ==
typeid(
float))
96 printExpectedOutputTyped (columnName, std::span<const float> (
static_cast<const float*
> (outputData), outputSize));
97 else if (outputType ==
typeid(
char))
98 printExpectedOutputTyped (columnName, std::span<const char> (
static_cast<const char*
> (outputData), outputSize));
99 else if (outputType ==
typeid(
int))
100 printExpectedOutputTyped (columnName, std::span<const int> (
static_cast<const int*
> (outputData), outputSize));
101 else if (outputType ==
typeid(std::uint8_t))
102 printExpectedOutputTyped (columnName, std::span<const std::uint8_t> (
static_cast<const std::uint8_t*
> (outputData), outputSize));
103 else if (outputType ==
typeid(std::uint16_t))
104 printExpectedOutputTyped (columnName, std::span<const std::uint16_t> (
static_cast<const std::uint16_t*
> (outputData), outputSize));
105 else if (outputType ==
typeid(std::uint32_t))
106 printExpectedOutputTyped (columnName, std::span<const std::uint32_t> (
static_cast<const std::uint32_t*
> (outputData), outputSize));
107 else if (outputType ==
typeid(std::uint64_t))
108 printExpectedOutputTyped (columnName, std::span<const std::uint64_t> (
static_cast<const std::uint64_t*
> (outputData), outputSize));
109 else if (outputType ==
typeid(std::size_t))
110 printExpectedOutputTyped (columnName, std::span<const std::size_t> (
static_cast<const std::size_t*
> (outputData), outputSize));
112 throw std::logic_error (
"received unsupported type " + boost::core::demangle(outputType.name()) +
" for column printout, cast value or extend test handler to support it");
void checkExpectation(const std::string &columnName, const std::type_info &outputType, std::size_t outputSize, const void *outputData, const std::type_info &expectationType, std::size_t expectationSize, const void *expectationData)