// Name_t.cxx #include "Name.h" using hes::Index; using hes::IndexVector; using hes::Name; int main() { string line = "--------------------------------------"; cout << line << endl; { cout << "Size of Name index is " << sizeof(Index) << " bytes" << endl; cout << "Size of Name is " << sizeof(Name) << " bytes" << endl; assert( sizeof(Index) == 4 ); cout << line << endl; } { cout << "Version: " << Name::version() << endl; assert( Name::version() == 1 ); cout << line << endl; } { Name nam(""); cout << nam << endl; assert( ! nam.is_valid() ); cout << line << endl; } { string vlong = "1234567890"; vlong += vlong; vlong += vlong; vlong += vlong; vlong += vlong; Name nam(vlong); cout << nam << endl; assert( ! nam.is_valid() ); cout << line << endl; } { Name nam; cout << nam << endl; assert( ! nam.is_valid() ); cout << line << endl; } { Name nam("a"); cout << nam << endl; assert( nam.is_valid() ); IndexVector idxs = nam.indices(); const Index* iidx = idxs.begin(); const Index* iidx_last = iidx + idxs.size(); cout << iidx << " " << iidx_last << endl; Name nam2(iidx); cout << iidx << endl; assert( iidx == iidx_last ); cout << nam2 << endl; cout << line << endl; } { Name nam("abc"); cout << nam << endl; assert( nam.is_valid() ); IndexVector idxs = nam.indices(); IndexVector::const_iterator iidx = idxs.begin(); Name nam2(iidx); assert( iidx == idxs.end() ); cout << nam2 << endl; cout << line << endl; } { Name nam("abcd"); cout << nam << endl; assert( nam.is_valid() ); IndexVector idxs = nam.indices(); IndexVector::const_iterator iidx = idxs.begin(); Name nam2(iidx); assert( iidx == idxs.end() ); cout << nam2 << endl; cout << line << endl; } { Name nam0("testnam"); Name nam1("testnam"); Name nam2 = nam0; Name nam3("testke"); Name nam4("testnam2"); assert( nam0 == nam0 ); assert( nam0 == nam1 ); assert( nam1 == nam0 ); assert( nam2 == nam0 ); assert( nam3 != nam0 ); assert( nam4 != nam0 ); assert( nam3 < nam0 ); assert( nam0 < nam4 ); } return 0; }