52 lines
1.5 KiB
C++
52 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include <cmath>
|
|
#include <cstdint>
|
|
#include <cstdlib>
|
|
#include <iostream>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
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 <typename T, typename U>
|
|
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<std::uint8_t>& actual,
|
|
const std::vector<std::uint8_t>& 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
|