32#include "compile_time_string_concatenation.hpp"
33#include <test_data_paths.hpp>
37namespace presage::smartspectra::test {
38static constexpr auto generated_test_data_directory = StringFactory(GENERATED_TEST_DATA_DIRECTORY);
39static constexpr auto generated_video_test_data_directory = StringFactory(GENERATED_TEST_DATA_DIRECTORY
"videos");
40static constexpr auto generated_image_test_data_directory = StringFactory(GENERATED_TEST_DATA_DIRECTORY
"images");
41static constexpr auto generated_json_test_data_directory = StringFactory(GENERATED_TEST_DATA_DIRECTORY
"json");
42static constexpr auto static_test_data_directory = StringFactory(STATIC_TEST_DATA_DIRECTORY);
43static constexpr auto static_video_test_data_directory = StringFactory(STATIC_TEST_DATA_DIRECTORY
"videos");
44static constexpr auto static_image_test_data_directory = StringFactory(STATIC_TEST_DATA_DIRECTORY
"images");
45static constexpr auto static_array_test_data_directory = StringFactory(STATIC_TEST_DATA_DIRECTORY
"arrays");
46static constexpr auto static_json_test_data_directory = StringFactory(STATIC_TEST_DATA_DIRECTORY
"json");
49std::vector<long> UnravelIndex(
long linear_index,
const std::vector<long>& dimensions);
51template<
typename TElement>
52struct ArrayElementMismatchInformation{
53 std::vector<long> position;
57 float absolute_tolerance;
58 float relative_tolerance;
61struct ArrayDimensionMismatchInformation{
62 std::vector<long> dimensions1;
63 std::vector<long> dimensions2;
66template<
typename TElement>
67struct ArrayComparisonResult{
69 std::shared_ptr<ArrayDimensionMismatchInformation> dimension_mismatch_information;
70 std::shared_ptr<ArrayElementMismatchInformation<TElement>> element_mismatch_information;