aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-06-22 22:23:16 +0100
committerYann Herklotz <ymherklotz@gmail.com>2017-06-22 22:23:16 +0100
commitb002697e19db546c3f7f70c7385f3106310e4579 (patch)
tree4ef419413c5e093f443ea8cda9489e4e8d0a7a51 /test
parenta4b4047e48e435253efea0c188b808995a477d8c (diff)
downloadYAGE-b002697e19db546c3f7f70c7385f3106310e4579.tar.gz
YAGE-b002697e19db546c3f7f70c7385f3106310e4579.zip
Adding testbench
Diffstat (limited to 'test')
l---------test/.#matrixtest.cpp1
-rw-r--r--test/matrixtest.cpp9
-rw-r--r--test/testbench.cpp57
-rw-r--r--test/testbench.hpp23
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