diff --git a/test.cpp b/test.cpp index 9bbe081..4fdb349 100644 --- a/test.cpp +++ b/test.cpp @@ -1,15 +1,14 @@ #include +#include #include #include -typedef std::function TestFunction; - class Test { private: - TestFunction complete; + std::function complete; public: std::string test_name; - Test(std::string name, TestFunction complete): test_name(name), complete(complete){}; + Test(std::string name, std::function complete): test_name(name), complete(complete){}; bool evaluate(); }; @@ -21,11 +20,14 @@ class TestSuite { std::vector tests; public: TestSuite(std::string); + void run(); + template TestSuite* eq(std::string, T, T); template TestSuite* neq(std::string, T, T); + TestSuite* custom(std::string, std::function); }; TestSuite::TestSuite(std::string name): suite_name(name) { @@ -44,6 +46,11 @@ TestSuite* TestSuite::neq(std::string test_name, T test_value, T expected_value) return this; } +TestSuite* TestSuite::custom(std::string test_name, std::function completness_function) { + tests.push_back(Test(test_name, completness_function)); + return this; +} + void TestSuite::run() { std::cout << "=== " << suite_name << " ===" << std::endl; int completed = 0;