Permutation matrices research.
1#include "test.hpp"
2#ifdef TEST
3
4Test::Test(CString name) : test_name(name) {
5}
6
7Test& Test::operator=(std::initializer_list<bool> checks) {
8 std::cout << test_name << std::endl;
9 U64 counter = 0;
10 for (auto check : checks) {
11 if (check) {
12 std::cout << "\t| " << counter << ": passed";
13 } else {
14 std::cerr << format_err(test_name) << std::endl;
15 throw TestFail();
16 }
17 ++counter;
18 std::cout << std::endl;
19 }
20 return *this;
21}
22
23Test operator""_test(CString str, U64 length) {
24 static_cast<void>(length);
25 return Test(str);
26}
27
28Test& Test::operator=(bool passed) {
29 if (passed) {
30 std::cout << test_name << ": passed" << std::endl;
31 } else {
32 std::cerr << format_err(test_name) << std::endl;
33 throw TestFail();
34 }
35 return *this;
36}
37
38auto red(String const& str) noexcept -> String {
39 auto const prefix = "\033[31m";
40 auto const suffix = "\033[0m";
41 return prefix + str + suffix;
42}
43
44auto format_err(String const& test_name) noexcept -> String {
45 return test_name + ": " + red("failed");
46}
47#endif