From b05021bb9ca6bc6f5189bfe8f2cf15e0a78fdb5e Mon Sep 17 00:00:00 2001 From: Andinus Date: Sun, 5 Sep 2021 16:38:19 +0530 Subject: C: Binary Search: Add solution --- c/binary-search/test_binary_search.c | 107 +++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 c/binary-search/test_binary_search.c (limited to 'c/binary-search/test_binary_search.c') diff --git a/c/binary-search/test_binary_search.c b/c/binary-search/test_binary_search.c new file mode 100644 index 0000000..6f95a94 --- /dev/null +++ b/c/binary-search/test_binary_search.c @@ -0,0 +1,107 @@ +#include "test-framework/unity.h" +#include "binary_search.h" + +void setUp(void) +{ +} + +void tearDown(void) +{ +} + +static void test_finds_a_value_in_an_array_with_one_element(void) +{ + int arr[] = { 6 }; + size_t length = sizeof(arr) / sizeof(arr[0]); + TEST_ASSERT(&arr[0] == binary_search(6, arr, length)); +} + +static void test_a_value_in_the_middle_of_an_array(void) +{ + int arr[] = { 1, 3, 4, 6, 8, 9, 11 }; + size_t length = sizeof(arr) / sizeof(arr[0]); + TEST_ASSERT(&arr[3] == binary_search(6, arr, length)); +} + +static void test_finds_a_value_at_the_beginning_of_an_array(void) +{ + int arr[] = { 1, 3, 4, 6, 8, 9, 11 }; + size_t length = sizeof(arr) / sizeof(arr[0]); + TEST_ASSERT(&arr[0] == binary_search(1, arr, length)); +} + +static void test_finds_a_value_at_the_end_of_an_array(void) +{ + int arr[] = { 1, 3, 4, 6, 8, 9, 11 }; + size_t length = sizeof(arr) / sizeof(arr[0]); + TEST_ASSERT(&arr[6] == binary_search(11, arr, length)); +} + +static void test_finds_a_value_in_an_array_of_odd_length(void) +{ + int arr[] = { 1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 634 }; + size_t length = sizeof(arr) / sizeof(arr[0]); + TEST_ASSERT(&arr[9] == binary_search(144, arr, length)); +} + +static void test_finds_a_value_in_an_array_of_even_length(void) +{ + int arr[] = { 1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377 }; + size_t length = sizeof(arr) / sizeof(arr[0]); + TEST_ASSERT(&arr[5] == binary_search(21, arr, length)); +} + +static void test_identifies_that_a_value_is_not_included_in_the_array(void) +{ + int arr[] = { 1, 3, 4, 6, 8, 9, 11 }; + size_t length = sizeof(arr) / sizeof(arr[0]); + TEST_ASSERT(NULL == binary_search(7, arr, length)); +} + +static void +test_a_value_smaller_than_the_arrays_smallest_value_is_not_found(void) +{ + int arr[] = { 1, 3, 4, 6, 8, 9, 11 }; + size_t length = sizeof(arr) / sizeof(arr[0]); + TEST_ASSERT(NULL == binary_search(0, arr, length)); +} + +static void test_a_value_larger_than_the_arrays_largest_value_is_not_found(void) +{ + int arr[] = { 1, 3, 4, 6, 8, 9, 11 }; + size_t length = sizeof(arr) / sizeof(arr[0]); + TEST_ASSERT(NULL == binary_search(13, arr, length)); +} + +static void test_nothing_is_found_in_an_empty_array(void) +{ + int arr[] = { 1 }; + size_t length = 0; + TEST_ASSERT(NULL == binary_search(1, arr, length)); +} + +static void test_nothing_is_found_when_the_left_and_right_bounds_cross(void) +{ + int arr[] = { 1, 2 }; + size_t length = sizeof(arr) / sizeof(arr[0]); + TEST_ASSERT(NULL == binary_search(0, arr, length)); +} + +int main(void) +{ + UnityBegin("test_binary_search.c"); + + RUN_TEST(test_finds_a_value_in_an_array_with_one_element); + RUN_TEST(test_a_value_in_the_middle_of_an_array); + RUN_TEST(test_finds_a_value_at_the_beginning_of_an_array); + RUN_TEST(test_finds_a_value_at_the_end_of_an_array); + RUN_TEST(test_finds_a_value_in_an_array_of_odd_length); + RUN_TEST(test_finds_a_value_in_an_array_of_even_length); + RUN_TEST(test_identifies_that_a_value_is_not_included_in_the_array); + RUN_TEST(test_a_value_smaller_than_the_arrays_smallest_value_is_not_found); + RUN_TEST(test_a_value_larger_than_the_arrays_largest_value_is_not_found); + RUN_TEST(test_nothing_is_found_in_an_empty_array); + RUN_TEST(test_nothing_is_found_when_the_left_and_right_bounds_cross); + + return UnityEnd(); +} -- cgit 1.4.1-2-gfad0