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