Exemple #1
0
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
Exemple #2
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()
Exemple #3
0
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
Exemple #4
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
Exemple #5
0
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
Exemple #6
0
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]
Exemple #7
0
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]
Exemple #8
0
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]
Exemple #9
0
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()