#pragma once #include #include #include #include #include #include namespace test_support { inline void require_true(const bool condition, const std::string& message) { if (!condition) { std::cerr << "FAILED: " << message << '\n'; std::exit(1); } } template void require_equal(const T& actual, const U& expected, const std::string& message) { if (!(actual == expected)) { std::cerr << "FAILED: " << message << '\n' << " actual: " << actual << '\n' << " expected: " << expected << '\n'; std::exit(1); } } inline void require_float_close(const float actual, const float expected, const std::string& message) { if (std::fabs(actual - expected) > 0.0001F) { std::cerr << "FAILED: " << message << '\n' << " actual: " << actual << '\n' << " expected: " << expected << '\n'; std::exit(1); } } inline void require_bytes_equal(const std::vector& actual, const std::vector& expected, const std::string& message) { if (actual != expected) { std::cerr << "FAILED: " << message << '\n' << " actual size: " << actual.size() << '\n' << " expected size: " << expected.size() << '\n'; std::exit(1); } } } // 命名空间 test_support