#ifndef __UTEST__
#define __UTEST__

#include <cstdio>

#define __UTest_VERSION "1.0.0"

class UTest {
private:
	UTest( UTest & );					// no copy constructor
	UTest operator = ( UTest & );		// no assignment operator
	UTest(){}
public:
	static const char * version() { return __UTest_VERSION; }

	UTest( const char * );
	void init( const char * );
	void test( const char * description, const int flag );
	void report() const;

	static void OverAllReport();

private:
	unsigned long int m_pass = 0;
	unsigned long int m_fail = 0;

	const char * mp_tstr = nullptr;

	const static char * sp_pstr; /*= "pass";*/
	const static char * sp_fstr; /*= "fail";*/

	static unsigned long int s_pass;
	static unsigned long int s_fail;
};

#endif // __UTEST__
