// PlacementCategoryType_t.cxx #include "PlacementCategoryType.h" using hes::EdoType; using hes::EdoKey; using hes::EdoTypeKey; using hes::PlacementCategoryType; int main() { string line = "--------------------------------------"; cout << line << endl; { PlacementCategoryType pct; cout << pct << endl; assert( ! pct.is_valid() ); assert( pct.name() == "" ); cout << line << endl; } PlacementCategoryType pct("mycat"); cout << pct << endl; PlacementCategoryType::TypeKeyList::size_type ntk = 0; PlacementCategoryType::TypeList::size_type nt = 0; assert( pct.is_valid() ); assert( pct.name() == "mycat" ); assert( pct.type_keys().size() == ntk ); assert( pct.types().size() == nt ); assert( ! pct.is_closed() ); cout << line << endl; EdoType t1(1); EdoType t2(2); EdoType t3(3); EdoKey k1("one"); EdoKey k2("two"); EdoKey k3("three"); EdoTypeKey tk11(t1,k1); EdoTypeKey tk12(t1,k2); EdoTypeKey tk22(t2,k2); EdoTypeKey tk21(t2,k1); EdoTypeKey tk13(t1,k3); EdoTypeKey tk31(t3,k1); pct.insert(t1, k1); ++ntk; pct.insert(tk12); ++ntk; cout << pct << endl; assert( pct.is_valid() ); assert( pct.name() == "mycat" ); assert( pct.type_keys().size() == ntk ); assert( pct.types().size() == nt ); assert( ! pct.is_closed() ); cout << line << endl; pct.insert(t2); ++nt; cout << pct << endl; assert( pct.is_valid() ); assert( pct.name() == "mycat" ); assert( pct.type_keys().size() == ntk ); assert( pct.types().size() == nt ); assert( ! pct.is_closed() ); cout << line << endl; pct.insert(tk11); pct.insert(tk22); cout << pct << endl; cout << line << endl; pct.close(); cout << pct << endl; assert( pct.is_valid() ); assert( pct.name() == "mycat" ); assert( pct.type_keys().size() == ntk ); assert( pct.types().size() == nt ); assert( pct.is_closed() ); assert( pct.allows(tk11) ); assert( pct.allows(tk12) ); assert( pct.allows(tk21) ); assert( pct.allows(tk22) ); assert( ! pct.allows(tk13) ); assert( ! pct.allows(tk31) ); assert( pct.allows(t1, k1) ); assert( ! pct.allows(t1, k3) ); cout << line << endl; { PlacementCategoryType pct1("mycat"); PlacementCategoryType pct2("mycat2"); PlacementCategoryType pct3("mycat"); PlacementCategoryType pct4("mycat"); pct1.insert(tk11); pct2.insert(tk11); pct3.insert(tk11); pct4.insert(tk11); pct4.insert(tk12); pct1.close(); pct2.close(); pct3.close(); pct4.close(); assert( pct1 != pct2 ); assert( pct1 == pct3 ); assert( pct1 != pct4 ); } return 0; }