feat: custom test

This commit is contained in:
Rendo 2026-09-02 19:39:42 +05:00
commit 3b25f2dd5c

View file

@ -1,15 +1,14 @@
#include <iostream>
#include <string>
#include <vector>
#include <functional>
typedef std::function<bool()> TestFunction;
class Test {
private:
TestFunction complete;
std::function<bool()> complete;
public:
std::string test_name;
Test(std::string name, TestFunction complete): test_name(name), complete(complete){};
Test(std::string name, std::function<bool()> complete): test_name(name), complete(complete){};
bool evaluate();
};
@ -21,11 +20,14 @@ class TestSuite {
std::vector<Test> tests;
public:
TestSuite(std::string);
void run();
template<class T>
TestSuite* eq(std::string, T, T);
template<class T>
TestSuite* neq(std::string, T, T);
TestSuite* custom(std::string, std::function<bool()>);
};
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<bool()> completness_function) {
tests.push_back(Test(test_name, completness_function));
return this;
}
void TestSuite::run() {
std::cout << "=== " << suite_name << " ===" << std::endl;
int completed = 0;