initial commit

This commit is contained in:
NeilClack
2026-08-07 14:51:41 -05:00
commit 9251b3a196
604 changed files with 464448 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
#pragma once
#include <iostream>
#include <string>
#include <vector>
#include <cstdlib>
struct TestCase {
std::string name;
void (*fn)();
};
inline std::vector<TestCase>& tests()
{
static std::vector<TestCase> t;
return t;
}
inline int register_test(const char* name, void (*fn)())
{
tests().push_back({name, fn});
return 0;
}
#define TEST(name) \
void test_##name(); \
static int reg_##name = register_test(#name, test_##name); \
void test_##name()
#define ASSERT_TRUE(expr) \
do { \
if (!(expr)) { \
std::cerr << " FAIL: " << #expr << " (" << __FILE__ << ":" \
<< __LINE__ << ")" << std::endl; \
std::exit(1); \
} \
} while (0)
#define ASSERT_FALSE(expr) ASSERT_TRUE(!(expr))
#define ASSERT_EQ(a, b) \
do { \
if ((a) != (b)) { \
std::cerr << " FAIL: " << #a << " == " << #b << " (" << __FILE__ \
<< ":" << __LINE__ << ")" << std::endl; \
std::exit(1); \
} \
} while (0)
#define RUN_ALL_TESTS() \
int main() { \
int passed = 0; \
int failed = 0; \
for (auto& tc : tests()) { \
std::cout << tc.name << "... "; \
try { \
tc.fn(); \
std::cout << "ok" << std::endl; \
passed++; \
} catch (...) { \
std::cout << "FAILED" << std::endl; \
failed++; \
} \
} \
std::cout << passed << " passed, " << failed << " failed" << std::endl;\
return failed > 0 ? 1 : 0; \
}