Permutation matrices research.
at master 1.1 kB view raw
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