public static Expression convert(Predicate[] predicates) {
    Expression expression = Expressions.alwaysTrue();
    for (Predicate predicate : predicates) {
      Expression converted = convert(predicate);
      Preconditions.checkArgument(
          converted != null, "Cannot convert Spark predicate to Iceberg expression: %s", predicate);
      expression = Expressions.and(expression, converted);
    }

    return expression;
  }
@Test
  public void testUnsupportedUDFConvert() {
    ScalarFunction<UTF8String> icebergVersionFunc =
        (ScalarFunction<UTF8String>) new IcebergVersionFunction().bind(new StructType());
    UserDefinedScalarFunc udf =
        new UserDefinedScalarFunc(
            icebergVersionFunc.name(),
            icebergVersionFunc.canonicalName(),
            new org.apache.spark.sql.connector.expressions.Expression[] {});
    LiteralValue literalValue = new LiteralValue("1.3.0", DataTypes.StringType);
    Predicate predicate = new Predicate("=", expressions(udf, literalValue));

    Expression icebergExpr = SparkV2Filters.convert(predicate);
    assertThat(icebergExpr).isNull();
  }