def test_missing_in_between(self): self.assertEqual(-1, binary_search.search_recursive(2, [1, 3, 5])) self.assertEqual(-1, binary_search.search_recursive(4, [1, 3, 5])) self.assertEqual(-1, binary_search.search_recursive(2, [1, 3, 5, 7])) self.assertEqual(-1, binary_search.search_recursive(4, [1, 3, 5, 7])) self.assertEqual(-1, binary_search.search_recursive(6, [1, 3, 5, 7]))
def test_search_out_of_boundary(self): self.assertEqual(-1, binary_search.search_recursive(3, [1])) self.assertEqual(-1, binary_search.search_recursive(0, [1, 3, 5])) self.assertEqual(-1, binary_search.search_recursive(6, [1, 3, 5])) self.assertEqual(-1, binary_search.search_recursive(0, [1, 3, 5, 7])) self.assertEqual(-1, binary_search.search_recursive(8, [1, 3, 5, 7]))
def test_find_in_four(self): self.assertEqual(0, binary_search.search_recursive(1, [1, 3, 5, 7])) self.assertEqual(1, binary_search.search_recursive(3, [1, 3, 5, 7])) self.assertEqual(2, binary_search.search_recursive(5, [1, 3, 5, 7])) self.assertEqual(3, binary_search.search_recursive(7, [1, 3, 5, 7])) self.assertEqual(3, binary_search.search_recursive(7, [1, 3, 5, 7, 9]))
def test_find_in_three(self): self.assertEqual(0, binary_search.search_recursive(1, [1, 3, 5])) self.assertEqual(1, binary_search.search_recursive(3, [1, 3, 5])) self.assertEqual(2, binary_search.search_recursive(5, [1, 3, 5]))
def test_find_in_two(self): self.assertEqual(0, binary_search.search_recursive(1, [1, 3]))
def test_search_empty(self): self.assertEqual(-1, binary_search.search_recursive(3, []))
def test_long_one_recursive(self): self.assertEqual(0, binary_search.search_recursive(0, self.long_array))