Source

codehound / tests / test-sparse.c

#include "test.h"
#include "../sparse.c"

static int test_sparse_set_create_destroy() {
	struct sparse_set *set;

	set = sparse_set_create(10);
	check(set != NULL);
	check(set->densesz == 0);
	sparse_set_destroy(set);
	return 0;
}

static int test_sparse_set_add() {
	struct sparse_set *set;

	set = sparse_set_create(10);
	sparse_set_add(set, 5);
	check(sparse_set_len(set) == 1);
	check(sparse_set_add(set, 7) == 0);
	check(sparse_set_add(set, 7) == -EEXIST);
	check(sparse_set_len(set) == 2);
	check(sparse_set_has(set, 5) != 0);
	check(sparse_set_has(set, 6) == 0);
	return 0;
}

static int test_sparse_set_reset() {
	struct sparse_set *set;
	set = sparse_set_create(10);
	sparse_set_add(set, 5);
	sparse_set_add(set, 6);
	sparse_set_add(set, 7);
	check(sparse_set_len(set) == 3);
	sparse_set_reset(set);
	check(sparse_set_len(set) == 0);
	check(sparse_set_has(set, 4) == 0);
	check(sparse_set_has(set, 5) == 0);
	sparse_set_add(set, 4);
	check(sparse_set_has(set, 4) != 0);
	return 0;
}

int main() {
	test(test_sparse_set_create_destroy, "Sparse set: create/destroy");
	test(test_sparse_set_add, "Sparse set: add/check items");
	test(test_sparse_set_reset, "Sparse set: reset");
	fprintf(stderr, "Passed: %d tests\n", test_passed);
	fprintf(stderr, "Failed: %d tests\n", test_failed);
	return 0;
}