Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
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);
}
Ejemplo n.º 3
0
int test_hasnt( void ) {
	ASSERT_FALSE(table_has(&test_table, L"test2"));
	return 0;
}
Ejemplo n.º 4
0
int test_has( void ) {
	ASSERT_TRUE(table_has(&test_table, L"test"));
	return 0;
}