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; }
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; }