def test_apply_filters(s, t, c, list, min_value, max_value): dataset1 = DataSet(s) dataset1.add_table(t, [c]) for v in list: dataset1.tables[t].columns[c].add_value(v, v) filter = dict() filter["table"] = t filter["column"] = c filter["from"] = min_value filter["to"] = max_value filtered_dataset = dataset1.apply_filters([filter, filter]) schema = filtered_dataset.get_schema() assert t in schema assert schema[t] assert c in schema[t] assert "count" in schema[t][c] filteredItemsCount = schema[t][c]["count"] if filteredItemsCount > 0 and min_value <= max_value: assert schema[t][c]["min_value"] >= min_value assert schema[t][c]["max_value"] <= max_value elif filteredItemsCount == 0: assert schema[t][c]["count"] == 0 else: assert schema[t][c]["count"] == len(list)
def test_apply_filters(s, t, c, list, min_value, max_value): dataset1 = DataSet(s) dataset1.add_table(t, [c]) for v in list: dataset1.tables[t].columns[c].add_value(v) filter = dict() filter["table"] = t filter["column"] = c filter["from"] = min_value filter["to"] = max_value filtered_dataset = dataset1.apply_filters([filter, filter]) schema = filtered_dataset.get_schema() table_and_column_in_schema = t in schema and schema[t] and c in schema[t] column_has_values_inside_range = ( schema[t][c]["count"] > 0 and schema[t][c]["min_value"] >= min_value and schema[t][c]["max_value"] <= max_value) column_is_empty = schema[t][c]["count"] == 0 wrong_filter_range = min_value > max_value assert table_and_column_in_schema and (column_has_values_inside_range or column_is_empty or wrong_filter_range)