<commit_before>def find_start_pos(A, target):
    if len(A) == 0:
        return None
    elif [target] == A:
        return 0
    elif len(A) == 1 and target != A[0]:
        return None

    mid = (len(A) - 1) / 2

    if A[mid] == target:
        return find_start_pos(A[:mid + 1], target)
    elif A[mid] < target:
        tmp = find_start_pos(A[mid + 1:], target)
        return None if tmp is None else tmp + mid + 1
    else: # >
        return find_start_pos(A[:mid], target)


if __name__ == '__main__':
    A = [1, 1, 2, 2, 3, 3, 4, 4, 4]
    target = 3
    print A, target, find_start_pos(A, target)<commit_msg>more test cases<commit_after>def find_start_pos(A, target):
    if len(A) == 0:
        return None
    elif [target] == A:
        return 0
    elif len(A) == 1 and target != A[0]:
        return None

    mid = (len(A) - 1) / 2

    if A[mid] == target:
        return find_start_pos(A[:mid + 1], target)
    elif A[mid] < target:
        tmp = find_start_pos(A[mid + 1:], target)
        return None if tmp is None else tmp + mid + 1
    else: # >
        return find_start_pos(A[:mid], target)


if __name__ == '__main__':
    A = [1, 1, 2, 2, 3, 3, 4, 4, 4]
    print A
    for target in range(6):
        print target, find_start_pos(A, target)
{'fraction_non_alphanumeric': 0.14229559748427673, 'fraction_numerical': 0.029874213836477988, 'mean_word_length': 2.1904761904761907, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5876318', 'n_tokens_mistral': 504, 'n_tokens_neox': 463, 'n_words': 150}