#ifndef __UTEST__
#define __UTEST__

#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* tstr );
	void init( const char* tstr );
	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;

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

	static unsigned long int s_pass; //= 0
	static unsigned long int s_fail; //= 0
};

#endif // __UTEST__
