bool contains_ht(SerialHashTable_t * htable,int key){ int myMask = htable->size - 1; if( htable->table[key & myMask] != NULL ) return contains_list(htable->table[key & myMask],key); else return false; }
// check_list static void check_list(const BList &toCheck, const BList &base, const BList &extendedBase, const BList &expected) { // toCheck and extendedBase must have prefix base int32 baseCount = base.CountItems(); for (int32 i = 0; i < baseCount; i++) { CHK(base.ItemAt(i) == toCheck.ItemAt(i)); CHK(base.ItemAt(i) == extendedBase.ItemAt(i)); } // toCheck must have correct size int32 toCheckCount = toCheck.CountItems(); int32 extendedBaseCount = extendedBase.CountItems(); int32 expectedCount = expected.CountItems(); CHK(toCheckCount == extendedBaseCount + expectedCount); // toCheck must contain all elements of extendedBase and expected // (arbitrary order) BList list(extendedBase); list.AddList((BList*)&expected); CHK(contains_list(toCheck, list)); CHK(contains_list(list, toCheck)); }