示例#1
0
def test_nested_logical_conditions(sample_df):
    step = FilterStep(
        name='filter',
        condition={
            'and': [
                {
                    'or': [
                        {
                            'column': 'colA',
                            'operator': 'eq',
                            'value': 'toto',
                        },
                        {
                            'column': 'colC',
                            'operator': 'lt',
                            'value': 33,
                        },
                    ]
                },
                {'column': 'colB', 'operator': 'gt', 'value': 2},
            ]
        },
    )
    df_result = execute_filter(step, sample_df)

    assert_dataframes_equals(df_result, DataFrame({'colA': ['tata'], 'colB': [3], 'colC': [25]}))
示例#2
0
def test_simple_notnull_filter(sample_df):
    step = FilterStep(
        name='filter',
        condition={
            'column': 'colA',
            'operator': 'notnull',
        },
    )
    df_result = execute_filter(step, sample_df)

    assert_dataframes_equals(df_result, sample_df)
示例#3
0
def test_simple_null_filter(sample_df):
    step = FilterStep(
        name='filter',
        condition={
            'column': 'colA',
            'operator': 'isnull',
        },
    )
    df_result = execute_filter(step, sample_df)

    assert df_result.empty
示例#4
0
def test_simple_lt_filter(sample_df):
    step = FilterStep(
        name='filter',
        condition={
            'column': 'colB',
            'operator': 'lt',
            'value': 2,
        },
    )
    df_result = execute_filter(step, sample_df)

    assert_dataframes_equals(df_result, DataFrame({'colA': ['toto'], 'colB': [1], 'colC': [100]}))
示例#5
0
def test_simple_eq_filter(sample_df):
    step = FilterStep(
        name='filter',
        condition={
            'column': 'colA',
            'operator': 'eq',
            'value': 'tutu',
        },
    )
    df_result = execute_filter(step, sample_df)

    assert_dataframes_equals(df_result, DataFrame({'colA': ['tutu'], 'colB': [2], 'colC': [50]}))
示例#6
0
def test_simple_matches_filter(sample_df):
    step = FilterStep(
        name='filter',
        condition={
            'column': 'colA',
            'operator': 'matches',
            'value': 'a.a',
        },
    )
    df_result = execute_filter(step, sample_df)

    assert_dataframes_equals(df_result, DataFrame({'colA': ['tata'], 'colB': [3], 'colC': [25]}))
示例#7
0
def test_simple_ne_filter(sample_df):
    step = FilterStep(
        name='filter',
        condition={
            'column': 'colA',
            'operator': 'ne',
            'value': 'tutu',
        },
    )
    df_result = execute_filter(step, sample_df)

    assert_dataframes_equals(
        df_result, DataFrame({'colA': ['toto', 'tata'], 'colB': [1, 3], 'colC': [100, 25]})
    )
示例#8
0
def test_and_logical_conditions(sample_df):
    step = FilterStep(
        name='filter',
        condition={
            'and': [
                {
                    'column': 'colB',
                    'operator': 'le',
                    'value': 2,
                },
                {
                    'column': 'colC',
                    'operator': 'gt',
                    'value': 75,
                },
            ]
        },
    )
    df_result = execute_filter(step, sample_df)

    assert_dataframes_equals(df_result, DataFrame({'colA': ['toto'], 'colB': [1], 'colC': [100]}))