def test_apply_filter(s, c, list, min_value, max_value): table = Table(s) table.add_columns([c]) for v in list: table.columns[c].add_value(v) filter = dict() filter["table"] = s filter["column"] = c filter["from"] = min_value filter["to"] = max_value filtered_table = table.apply_filter(filter) schema = filtered_table.get_schema() column_in_schema = c in schema column_has_values_inside_range = (schema[c]["count"] > 0 and schema[c]["min_value"] >= min_value and schema[c]["max_value"] <= max_value) column_is_empty = (schema[c]["count"] == 0) wrong_filter_range = min_value > max_value assert column_in_schema and (column_has_values_inside_range or column_is_empty or wrong_filter_range)