public ColumnStatistic fillColumnStats(Column col) {
        ColumnStatistic.Builder builder = ColumnStatistic.builder();
        String colName = col.getName();
        Type colType = col.getType();

        // set default value
        builder.setNullsFraction(0);
        builder.setAverageRowSize(colType.getTypeSize());
        builder.setDistinctValuesCount(1);
        builder.setType(ColumnStatistic.StatisticType.UNKNOWN);

        if (schema == null) {
            return builder.build();
        }
        StructField field = schema.get(colName);
        if (field == null) {
            return builder.build();
        }
        if (nonPartitionPrimitiveColumns.contains(colName) ||
                (partitionPrimitiveColumns != null && partitionPrimitiveColumns.contains(colName))) {
            fillMinMaxValue(builder, colName, field.getDataType());
        }
        return builder.build();
    }
@Test
    public void testGetMinMaxString() {
        Map<String, Object> minValues = new HashMap<>() {
            {
                put("c_char", "char_111");
                put("c_string", "string_111");
            }
        };

        Map<String, Object> maxValues = new HashMap<>() {
            {
                put("c_char", "char_999");
                put("c_string", "string_999");
            }
        };

        Map<String, Object> nullCounts = new HashMap<>() {
            {
                put("c_char", 0d);
                put("c_string", 0d);
            }
        };

        Set<String> nonPartitionPrimitiveColumns = new HashSet<>() {
            {
                add("c_int");
                add("c_char");
                add("c_string");
            }
        };

        DeltaLakeAddFileStatsSerDe stat = new DeltaLakeAddFileStatsSerDe(10, minValues, maxValues, nullCounts);
        DeltaLakeFileStats stats = new DeltaLakeFileStats(schema, nonPartitionPrimitiveColumns,
                null, stat, null, 10, 4096);

        ColumnStatistic columnStatistic = stats.fillColumnStats(new Column("c_char", Type.CHAR));
        ColumnStatistic checkStatistic = new ColumnStatistic(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY,
                0, 16, 1, null, ColumnStatistic.StatisticType.UNKNOWN);
        checkStatistic.setMinString("char_111");
        checkStatistic.setMaxString("char_999");
        checkColumnStatisticsEqual(checkStatistic, columnStatistic);

        columnStatistic = stats.fillColumnStats(new Column("c_string", Type.STRING));
        checkStatistic = new ColumnStatistic(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY,
                0, 16, 1, null, ColumnStatistic.StatisticType.UNKNOWN);
        checkStatistic.setMinString("string_111");
        checkStatistic.setMaxString("string_999");
        checkColumnStatisticsEqual(checkStatistic, columnStatistic);
    }