| 8 | |
| 9 | template <typename T> |
| 10 | void ALP_ASSERT(T original_val, T decoded_val, size_t idx) { |
| 11 | if (original_val == 0.0 && std::signbit(original_val)) { |
| 12 | if (!(decoded_val == 0.0 && std::signbit(decoded_val))) { |
| 13 | std::cerr << "Assertion failed: decoded_val is not -0.0 as expected.\n"; |
| 14 | std::cerr << idx << " | original_val: " << original_val << ", decoded_val: " << decoded_val << "\n"; |
| 15 | std::terminate(); // Immediately stop the program |
| 16 | } |
| 17 | } else if (std::isnan(original_val)) { |
| 18 | if (!std::isnan(decoded_val)) { |
| 19 | std::cerr << "Assertion failed: decoded_val is not NaN as expected.\n"; |
| 20 | std::cerr << idx << " | original_val: " << original_val << ", decoded_val: " << decoded_val << "\n"; |
| 21 | std::terminate(); |
| 22 | } |
| 23 | } else { |
| 24 | if (original_val != decoded_val) { |
| 25 | std::cerr << "Assertion failed: original_val != decoded_val.\n"; |
| 26 | std::cerr << idx << "| original_val: " << original_val << ", decoded_val: " << decoded_val << "\n"; |
| 27 | std::terminate(); |
| 28 | } |
| 29 | } |
| 30 | } |
| 31 | |
| 32 | void write_result_header(std::ofstream& ofile) { |
| 33 | // |
nothing calls this directly
no outgoing calls
no test coverage detected