def test_remove_persons_with_insufficient_results_minus_one_none() -> None:
    df_before = pd.DataFrame({'personId': ['person1', 'person1', 'person2',
        'person3', 'person3'], 'best': [50, 40, 50, 50, 40]}, index=[0,1,2,3,4])
    df_expected = df_before
    df_after = data_filter._remove_persons_with_insufficient_results(df_before, -1)
    debug_print(df_before, df_after, df_expected)
    assert df_expected.equals(df_after)
def test_remove_persons_with_insufficient_results_two_all() -> None:
    df_before = pd.DataFrame({'personId': ['person1', 'person2',
        'person3'], 'best': [50, 40, 50]}, index=[0,1,2])
    # create a row then drop it so that column type is identical to original one
    df_expected = pd.DataFrame({'personId': ['whatever'], 'best': [50]}, index=[0])
    df_expected = df_expected.drop(0)
    df_after = data_filter._remove_persons_with_insufficient_results(df_before, 2)
    debug_print(df_before, df_after, df_expected)
    assert df_expected.equals(df_after)
def test_remove_persons_with_insufficient_results_three_middle() -> None:
    df_before = pd.DataFrame({'personId': ['person1', 'person1', 'person1', 'person2',
        'person3', 'person3', 'person3'],
        'best': [50, 40, 50, 50, 40, 30, 20]}, index=[0,1,2,3,4,5,6])
    df_expected = pd.DataFrame({'personId': ['person1', 'person1', 'person1',
        'person3', 'person3', 'person3'],
        'best': [50, 40, 50, 40, 30, 20]}, index=[0,1,2,4,5,6])
    df_after = data_filter._remove_persons_with_insufficient_results(df_before, 3)
    debug_print(df_before, df_after, df_expected)
    assert df_expected.equals(df_after)