int test_remove( void ) { ASSERT_TRUE(table_put(&test_table, L"test2", value, NULL)); ASSERT_TRUE(table_has(&test_table, L"test2")); table_remove(&test_table, L"test2", NULL); ASSERT_FALSE(table_has(&test_table, L"test2")); return 0; }
void test_hash(int prime, int table_size, int elems_count) { struct HashTableParams params = GET_HASH_PARAMS(&prime, hash_func, 0, int); struct HashTable *table = allocate_table(table_size, params); for (int i = 0; i != elems_count; ++i) { for (int j = 0; j != i; ++j) { int value = j * j; assert(table_has(table, &value)); assert(table_insert(table, &value) == 1); } for (int j = i; j != elems_count; ++j) { int value = j * j; assert(!table_has(table, &value)); assert(!table_remove(table, &value)); } int value = i * i; assert(!table_insert(table, &value)); } for (int i = 0; i != elems_count; ++i) { for (int j = i; j != elems_count; ++j) { int value = j * j; assert(table_has(table, &value)); } int value = i * i; assert(table_remove(table, &value)); assert(!table_remove(table, &value)); for (int j = 0; j != i; ++j) { int value = j * j; assert(!table_has(table, &value)); } } deallocate_table(table); }
int test_hasnt( void ) { ASSERT_FALSE(table_has(&test_table, L"test2")); return 0; }
int test_has( void ) { ASSERT_TRUE(table_has(&test_table, L"test")); return 0; }