diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-06-22 22:23:16 +0100 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-06-22 22:23:16 +0100 |
commit | b002697e19db546c3f7f70c7385f3106310e4579 (patch) | |
tree | 4ef419413c5e093f443ea8cda9489e4e8d0a7a51 /test/testbench.cpp | |
parent | a4b4047e48e435253efea0c188b808995a477d8c (diff) | |
download | YAGE-b002697e19db546c3f7f70c7385f3106310e4579.tar.gz YAGE-b002697e19db546c3f7f70c7385f3106310e4579.zip |
Adding testbench
Diffstat (limited to 'test/testbench.cpp')
-rw-r--r-- | test/testbench.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/test/testbench.cpp b/test/testbench.cpp index e69de29b..6b2a6084 100644 --- a/test/testbench.cpp +++ b/test/testbench.cpp @@ -0,0 +1,57 @@ +#include "testbench.hpp" + +#include <stdexcept> + +void TestBench::startTest(const std::string &test_name) +{ + incrementer++; + + Test test(test_name, false); + + tests_.push_back(test); +} + +void TestBench::endTest(bool pass) +{ + incrementer--; + + if(incrementer!=0) + { + throw std::runtime_error("Start and End don't match"); + } + + if(pass) + { + passed++; + } + else + { + failed++; + } + + tests_[passed+failed-1].passed=pass; +} + +void TestBench::printResults() +{ + printf("+------------+---------+\n"); + printf("| Test Name | Result |\n"); + printf("+------------+---------+\n"); + for(auto test : tests_) + { + std::string result; + if(test.passed) + result="PASS"; + else + result="FAIL"; + + printf("| %10s | %6s |\n", test.name.c_str(), result.c_str()); + } + printf("+------------+---------+\n"); + printf("\n"); + printf("+--------+--------+\n"); + printf("| Passed | %6d |\n", passed); + printf("| Failed | %6d |\n", failed); + printf("| Ratio | %5.1f%% |\n", (float)passed/(float)(failed+passed) * 100.f); + printf("+--------+--------+\n"); +} |