diff --git a/test/test_arraylist.c b/test/test_arraylist.c index f27c232..dbf9fbf 100644 --- a/test/test_arraylist.c +++ b/test/test_arraylist.c @@ -901,6 +901,63 @@ static void test_clear_non_empty_array(void **state) { arraylist_destroy(&arr); } +//Resize +static void test_resize_increase_capacity(void **state) { + (void) state; + + ArrayList *arr = arraylist_init(64, sizeof(int)); + assert_non_null(arr); + + assert_uint_equal(arraylist_resize(arr, 128), ARRLIST_OK); + assert_uint_equal(arraylist_capacity(arr), 128); + + arraylist_destroy(&arr); +} + +static void test_resize_decrease_capacity(void **state) { + (void) state; + + ArrayList *arr = arraylist_init(64, sizeof(int)); + assert_non_null(arr); + + assert_uint_equal(arraylist_resize(arr, 32), ARRLIST_OK); + assert_uint_equal(arraylist_capacity(arr), 32); + + arraylist_destroy(&arr); +} + +static void test_resize_to_zero(void **state) { + (void) state; + + ArrayList *arr = arraylist_init(64, sizeof(int)); + assert_non_null(arr); + + assert_uint_equal(arraylist_resize(arr, 0), ARRLIST_INVALID_CAPACITY); + assert_uint_equal(arraylist_capacity(arr), 64); + + arraylist_destroy(&arr); +} + +static void test_resize_to_size_max(void **state) { + (void) state; + + ArrayList *arr = arraylist_init(64, sizeof(int)); + assert_non_null(arr); + + assert_uint_equal(arraylist_resize(arr, SIZE_MAX), ARRLIST_ALLOC_OVERFLOW); + assert_uint_equal(arraylist_capacity(arr), 64); + + arraylist_destroy(&arr); +} + +static void test_resize_null_array(void **state) { + (void) state; + + ArrayList *arr = NULL; + + assert_uint_equal(arraylist_resize(arr, 65), ARRLIST_NULL_ARG); +} + static void test_clear_already_empty_array(void **state) { (void) state; @@ -1017,6 +1074,14 @@ int main(void) { cmocka_unit_test(test_clear_null_array), }; + const struct CMUnitTest resize[] = { + cmocka_unit_test(test_resize_increase_capacity), + cmocka_unit_test(test_resize_decrease_capacity), + cmocka_unit_test(test_resize_to_zero), + cmocka_unit_test(test_resize_to_size_max), + cmocka_unit_test(test_resize_null_array), + }; + int rc = 0; rc += cmocka_run_group_tests(init, NULL, NULL); @@ -1031,6 +1096,7 @@ int main(void) { rc += cmocka_run_group_tests(get, NULL, NULL); rc += cmocka_run_group_tests(set, NULL, NULL); rc += cmocka_run_group_tests(clear, NULL, NULL); + rc += cmocka_run_group_tests(resize, NULL, NULL); return rc; }