diff options
Diffstat (limited to 'test')
l--------- | test/.#matrixtest.cpp | 1 | ||||
-rw-r--r-- | test/matrixtest.cpp | 9 | ||||
-rw-r--r-- | test/testbench.cpp | 57 | ||||
-rw-r--r-- | test/testbench.hpp | 23 |
4 files changed, 89 insertions, 1 deletions
diff --git a/test/.#matrixtest.cpp b/test/.#matrixtest.cpp new file mode 120000 index 00000000..a5af3c6f --- /dev/null +++ b/test/.#matrixtest.cpp @@ -0,0 +1 @@ +yannherklotz@yann-arch.18525:1497988195
\ No newline at end of file diff --git a/test/matrixtest.cpp b/test/matrixtest.cpp index 16548164..4150641f 100644 --- a/test/matrixtest.cpp +++ b/test/matrixtest.cpp @@ -8,7 +8,16 @@ #include "Math/math.hpp" +#include "testbench.hpp" + int main() { + TestBench tb; + tb.startTest("Hello"); + tb.endTest(true); + tb.startTest("Bye"); + tb.endTest(true); + + tb.printResults(); return 0; } 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"); +} diff --git a/test/testbench.hpp b/test/testbench.hpp index 0d2424fa..ba3a3212 100644 --- a/test/testbench.hpp +++ b/test/testbench.hpp @@ -8,11 +8,32 @@ #ifndef TEST_BENCH_HPP #define TEST_BENCH_HPP +#include <string> +#include <vector> + +struct Test +{ + std::string name; + bool passed; + + Test(const std::string &_name, bool _passed) : name(_name), passed(_passed) {} +}; + class TestBench { private: -public: + int incrementer=0; + int passed=0; + int failed=0; + + std::vector<Test> tests_; +public: + TestBench() : tests_() {} + + void startTest(const std::string &test_name); + void endTest(bool pass); + void printResults(); }; #endif |