#include "test/Test.h" Core::HashMap Core::Test::Internal::results; void Core::Test::Internal::checkFloat(const char* file, int line, float wanted, float actual, float error) { FileName fileName; if(fileName.append(file)) { CORE_LOG_WARNING("cannot append file name: #", file); return; } Result* result = results.search(fileName); if(result == nullptr) { result = results.add(fileName, Result()); if(result == nullptr) { CORE_LOG_WARNING("cannot add test result for #", file); return; } } result->tests++; float diff = wanted - actual; diff = diff < 0.0f ? -diff : diff; if(diff < error) { result->successTests++; } else { CORE_LOG_ERROR("#:# - expected '#' got '#'", fileName, line, wanted, actual) } } 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(); }