Test.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "test/Test.h"
  2. Core::HashMap<Core::Test::Internal::FileName, Core::Test::Internal::Result>
  3. Core::Test::Internal::results;
  4. void Core::Test::Internal::checkFloat(const char* file, int line, float wanted,
  5. float actual, float error) {
  6. FileName fileName;
  7. if(fileName.append(file)) {
  8. CORE_LOG_WARNING("cannot append file name: #", file);
  9. return;
  10. }
  11. Result* result = results.search(fileName);
  12. if(result == nullptr) {
  13. result = results.add(fileName, Result());
  14. if(result == nullptr) {
  15. CORE_LOG_WARNING("cannot add test result for #", file);
  16. return;
  17. }
  18. }
  19. result->tests++;
  20. float diff = wanted - actual;
  21. diff = diff < 0.0f ? -diff : diff;
  22. if(diff < error) {
  23. result->successTests++;
  24. } else {
  25. CORE_LOG_ERROR("#:# - expected '#' got '#'", fileName, line, wanted,
  26. actual)
  27. }
  28. }
  29. void Core::Test::finalize() {
  30. using namespace Internal;
  31. for(const auto& e : results) {
  32. if(e.value.successTests == e.value.tests) {
  33. CORE_LOG_DEBUG("# - # / # tests succeeded", e.getKey(),
  34. e.value.successTests, e.value.tests);
  35. } else {
  36. CORE_LOG_ERROR("# - # / # tests succeeded", e.getKey(),
  37. e.value.successTests, e.value.tests);
  38. }
  39. }
  40. results.clear();
  41. }