1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #include "test/Test.h"
- Core::HashMap<Core::Test::Internal::FileName, Core::Test::Internal::Result>
- Core::Test::Internal::results;
- bool 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 false;
- }
- 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 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();
- }
|