#include #include "vector.h" vector_t vec; int n = 16; void suitesetup(void){ vec = vector_init(n); } void suiteteardown(void){ destroy_vec(&vec); } TestSuite(vectortests, .init=suitesetup, .fini=suiteteardown); Test(vectortests, capacity_test){ cr_expect(capacity(vec) == n, "Vector should have a capacity of %d", n); cr_expect(capacity(vec) != n+1, "vector should have a capacity of %d", n); } Test(vectortests, is_empty_test){ cr_assert(is_empty(vec)==1, "is_empty should return 1"); push(&vec, 1); cr_assert(is_empty(vec)==0, "is_empty should return 0"); } Test(vectortests, is_full_test){ cr_assert(is_full(vec)==0, "is_full should return 0"); for (int i = 0; i < n; i++){ push(&vec, i); } cr_assert(is_full(vec)==1, "is_full should return 1"); } Test(vectortests, size_test){ cr_assert(size(vec)==0, "Size of vector should be 0 at first"); for (int i = 0; i < 10; i++){ push(&vec, i); } cr_assert(size(vec)==10, "Size of vector should be 10"); } Test(vectortests, at_test){ for (int i = 0; i < 10; i++){ push(&vec, i+3); } cr_assert(at(vec, 6)==9, "at(vec, 6) should return 9"); } Test(vectortests, at_invalid_index_test, .exit_code = -1, .disabled=true){ at(vec, -5); } Test(vectortests, push_test){ push(&vec, 3); push(&vec, 6); push(&vec, 9); cr_assert(at(vec, 1) == 6); cr_assert(size(vec) == 3); } Test(vectortests, insert_test){ push(&vec, 3); push(&vec, 6); push(&vec, 9); insert(&vec, 1, 55); cr_assert(at(vec, 1) == 55); cr_assert(at(vec, 2) == 6); cr_assert(at(vec, 3) == 9); cr_assert(size(vec) == 4); } Test(vectortests, delete_check){ push(&vec, 3); push(&vec, 6); push(&vec, 9); insert(&vec, 1, 55); delete_vec(&vec, 1); cr_assert(at(vec, 1) == 6); cr_assert(size(vec) == 3); } Test(vectortests, remove_test){ for (int i = 0; i < vec.max_size; i++){ if (i%2 == 0){ push(&vec, 5); continue; } push(&vec, i); } remove_val(&vec, 5); cr_assert(size(vec) == 7); cr_assert(at(vec, 2) == 7); } Test(vectortests, prepend_test){ prepend(&vec, 99); cr_assert(at(vec,0)==99); prepend(&vec, 66); cr_assert(at(vec,0)==66); } Test(vectortests, pop_test){ push(&vec, 3); push(&vec, 6); push(&vec, 9); cr_assert(pop(&vec)==9); cr_assert(pop(&vec)==6); cr_assert(pop(&vec)==3); }