def test_null_list(): bin_search = BinarySearch(None, 0) assert not bin_search.was_found() assert bin_search.index == 0 bin_search = BinarySearch(None, 15) assert not bin_search.was_found() assert bin_search.index == 0
def test_not_found_odd_edges(): data = [i + 10 for i in range(101)] # Ensure one less than lowest element was not found. bin_search = BinarySearch(data, 9) assert not bin_search.was_found() # Ensure one more than highest element was not found. bin_search = BinarySearch(data, 111) assert not bin_search.was_found()
def test_empty_list(): data = [] bin_search = BinarySearch(data, 0) assert not bin_search.was_found() assert bin_search.index == 0 data = [] bin_search = BinarySearch(data, 15) assert not bin_search.was_found() assert bin_search.index == 0
def test_negative_positive(): data = [i - 100 for i in range(200)] # Ensure the search finds every element in the list of test data. for i in range(len(data)): bin_search = BinarySearch(data, data[i]) assert bin_search.was_found() assert bin_search.index == i
def test_find_other_type(): data = [ 'A', 'C', 'F', 'X', 'Z', 'a', 'b', 'i', 'k', 'm', 'q', 'r', 'u', 'v' ] for i in range(len(data)): bin_search = BinarySearch(data, data[i]) assert bin_search.was_found() assert bin_search.index == i
def test_correct_partial_insert_index(): data = [2, 4, 6, 8, 10, 12] input_data = [3, 5, 7, 9, 11, 13] # Ensure the input items are not found, then insert them. for item in input_data: bin_search = BinarySearch(data, item) assert not bin_search.was_found() data.insert(bin_search.index, item) expected_data = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] # Ensure the inserted data matches the expected data. assert len(data) == len(expected_data) for i in range(len(expected_data)): assert data[i] == expected_data[i]
def test_correct_insert_index(): data = [] input_data = [4, 1, 3, 7, 8, 6, 2, 0, 9] # Ensure the input items are not found, then insert them. for item in input_data: bin_search = BinarySearch(data, item) assert not bin_search.was_found() data.insert(bin_search.index, item) expected_data = [0, 1, 2, 3, 4, 6, 7, 8, 9] # Ensure the inserted data matches the expected data. assert len(data) == len(expected_data) for i in range(len(expected_data)): assert data[i] == expected_data[i]
def test_insert_other_type(): data = [] input_data = [ 'i', 'A', 'm', 'F', 'u', 'r', 'Z', 'a', 'C', 'k', 'X', 'q', 'b', 'v' ] # Ensure the input items are not found, then insert them. for item in input_data: bin_search = BinarySearch(data, item) assert not bin_search.was_found() data.insert(bin_search.index, item) expected_data = [ 'A', 'C', 'F', 'X', 'Z', 'a', 'b', 'i', 'k', 'm', 'q', 'r', 'u', 'v' ] # Ensure the inserted data matches the expected data. assert len(data) == len(expected_data) for i in range(len(expected_data)): assert data[i] == expected_data[i]
def test_not_found_long_length(): data = [i * 2 for i in range(10000)] # Ensure the search doesn't find an element in the list of test data. for i in range(len(data)): bin_search = BinarySearch(data, data[i] + 1) assert not bin_search.was_found()