////////////////////////////////////////////////////////////////////// // Test Jig // Written by Jonathan A. Foster // Started June 28th, 2021 // Copyright 2021 JF Possibilities, Inc. All Rights Reserved ////////////////////////////////////////////////////////////////////// #include #include "testit.h" using namespace std; ////////////////////////////////////////////////////////////////////// // TestIt ////////////////////////////////////////////////////////////////////// const string bools[2] = { vt100::RED+"FAIL"+vt100::RST, vt100::GRN+"ok"+vt100::RST }; void TestIt::module(const string &title) { cout << "\n" << vt100::CYN << title << ":\n" << string(title.size()+1, '=') << vt100::RST << endl; } bool TestIt::test(const string &title, int result, int match) { bool r = result==match; cout << vt100::YLW << title << '\t' << bools[r] << endl; count++; if(r) passes++; else fails.push_back(title); return r; } int TestIt::report() { int r = 0; if(fails.size()==count) r = 3; // Oh! That's miserable else if(fails.size()) r = 2; // something worked. cout << "\n" << vt100::CYN << "RESULTS: Tests " << (r ? vt100::YLW : vt100::GRN) << count << vt100::CYN << " Passes " << vt100::GRN << passes << vt100::CYN << " Fails " << (r ? vt100::RED : vt100::GRN) << fails.size() << vt100::RST << "\n"; return r; }