예제 #1
0
파일: a.cpp 프로젝트: rfree2monero/misc
bool test_vector_size(T_INT AI, size_t BV, bool loud) {
	using namespace std; 
	if (loud) { std::cout << setw(20) << AI << " vs vector size BV="<< setw(20) << BV <<"... " << std::flush; }
	T_VECTOR tab;
	tab.resize(BV);

	bool all_ok=1;

// @TODO test:
	#define COMPARE(OPERATOR, OPERATOR_NAME) \
	do { \
		bool c1 = ( (AI)  OPERATOR  ((xsize_t_struct)tab.size()) ); \
		bool c2 = ( (long double)AI)      OPERATOR  ((long double)BV); \
		bool OK = (c1==c2); \
		if (OK) { if (loud) { cout << "ok" << OPERATOR_NAME << " "; } } \
		else { cout <<"\nFAILED AI="<<AI<<"  " << "(" << OPERATOR_NAME << ")" << "  " << "BV="<<BV<<" c1="<<c1<<" c2(double)="<<c2<<"! "; } \
		all_ok = all_ok && OK; \
	} while(0)

	COMPARE( < , "<" );
	COMPARE( <= , "<=" );
//	COMPARE( > , ">" );
//	COMPARE( > , ">=" );
//	COMPARE( == , "==" );
//	COMPARE( != , "!=" );
	#undef COMPARE


	#define COMPARE(OPERATOR, OPERATOR_NAME) \
	do { \
		bool c1 = ( (xsize_t_struct)(tab.size())       OPERATOR  (AI) ); \
		bool c2 = ( ((long double)BV)  OPERATOR  ((long double)AI) ); \
		bool OK = (c1==c2); \
		if (OK) { if (loud) { cout << "ok" << OPERATOR_NAME << " "; } } \
		else { cout <<"\nFAILED BV="<<BV<<"  " << "(" << OPERATOR_NAME << ")" << "  " << "AI="<<AI<<". INFO: check1="<<c1<<" check2(is good, on double)="<<c2<<"! "; } \
		all_ok = all_ok && OK; \
	} while(0)
	COMPARE( < , "<" );
	COMPARE( <= , "<=" );
//	COMPARE( > , ">" );
//	COMPARE( > , ">=" );
//	COMPARE( == , "==" );
//	COMPARE( != , "!=" );
	#undef COMPARE

	cout << "." << endl;

	if (!all_ok) abort();
	return all_ok;
}
예제 #2
0
bool test_vector_size(long long int AI, size_t BV) {
	using namespace std;
	std::cout << setw(20) << AI << " vs vector size BV="<< setw(20) << BV <<"... " << std::flush;
	T_VECTOR tab;
	tab.resize(BV);

	bool all_ok=1;

	#define COMPARE(OPERATOR, OPERATOR_NAME) \
	do { \
		bool c1 = ( ((xsize_t_struct)AI)  OPERATOR  (tab.size()) ); \
		bool c2 = ( (long double)AI)      OPERATOR  ((long double)BV); \
		bool OK = (c1==c2); \
		if (OK) cout << "ok" << OPERATOR_NAME << " "; \
		else { cout <<"\nFAILED AI="<<AI<<"  " << "(" << OPERATOR_NAME << ")" << "  " << "BV="<<BV<<" c1="<<c1<<" c2(double)="<<c2<<"! "; } \
		all_ok = all_ok && OK; \
	} while(0)
	COMPARE( < , "<" );
	COMPARE( <= , "<=" );
	COMPARE( > , ">" );
	COMPARE( > , ">=" );
	COMPARE( == , "==" );
	COMPARE( != , "!=" );
	#undef COMPARE

	#define COMPARE(OPERATOR, OPERATOR_NAME) \
	do { \
		bool c1 = ( (tab.size())       OPERATOR  ((xsize_t_struct)AI) ); \
		bool c2 = ( ((long double)BV)  OPERATOR  ((long double)AI) ); \
		bool OK = (c1==c2); \
		if (OK) cout << "ok" << OPERATOR_NAME << " "; \
		else { cout <<"\nFAILED BV="<<BV<<"  " << "(" << OPERATOR_NAME << ")" << "  " << "AI="<<AI<<" c1="<<c1<<" c2(double)="<<c2<<"! "; } \
		all_ok = all_ok && OK; \
	} while(0)
	COMPARE( < , "<" );
	COMPARE( <= , "<=" );
	COMPARE( > , ">" );
	COMPARE( > , ">=" );
	COMPARE( == , "==" );
	COMPARE( != , "!=" );
	#undef COMPARE

	cout << "." << endl;

	if (!all_ok) abort();
	return all_ok;
}