fn test_schemable_filter_all_operators()

in crates/core/src/expr/filter.rs [312:344]


    fn test_schemable_filter_all_operators() -> Result<()> {
        let schema = create_test_schema();
        let test_array = Int64Array::from(vec![40, 50, 60]);

        let test_cases = vec![
            (ExprOperator::Eq, "50", vec![false, true, false]),
            (ExprOperator::Ne, "50", vec![true, false, true]),
            (ExprOperator::Lt, "50", vec![true, false, false]),
            (ExprOperator::Lte, "50", vec![true, true, false]),
            (ExprOperator::Gt, "50", vec![false, false, true]),
            (ExprOperator::Gte, "50", vec![false, true, true]),
        ];

        for (operator, value, expected) in test_cases {
            let filter = Filter {
                field_name: "int_col".to_string(),
                operator,
                field_value: value.to_string(),
            };

            let schemable = SchemableFilter::try_from((filter, &schema))?;
            let result = schemable.apply_comparsion(&test_array)?;
            assert_eq!(
                result,
                BooleanArray::from(expected),
                "Failed for operator {:?} with value {}",
                operator,
                value
            );
        }

        Ok(())
    }