#include "test/Test.h" Core::HashMap Core::Test::Internal::results; bool Core::Test::Internal::checkFloat(const char* file, int line, float wanted, float actual, float error) { Error e = Error::NONE; FileName fileName; if(checkError(e, fileName.append(file))) { CORE_LOG_WARNING("cannot append file name '#' with error '#'", file, e); return false; } Result* result = results.search(fileName); if(result == nullptr && checkError(e, results.tryEmplace(result, fileName))) { CORE_LOG_WARNING("cannot add test result for #, error '#'", file, e); return false; } result->tests++; float diff = wanted - actual; diff = diff < 0.0f ? -diff : diff; if(diff <= error) { result->successTests++; return true; } CORE_LOG_ERROR("#:# - expected '#' got '#'", fileName, line, wanted, actual) return false; } void Core::Test::finalize() { using namespace Internal; for(const auto& e : results) { if(e.value.successTests == e.value.tests) { CORE_LOG_DEBUG("# - # / # tests succeeded", e.getKey(), e.value.successTests, e.value.tests); } else { CORE_LOG_ERROR("# - # / # tests succeeded", e.getKey(), e.value.successTests, e.value.tests); } } results.clear(); }