private double getTablePenaltyFactor(long dataFiles, long dataFilesSize) {
    // if the number of table files is less than or equal to 1,
    // there is no penalty, i.e., the table is considered to be perfectly healthy
    if (dataFiles <= 1) {
      return 0;
    }
    // The small table has very little impact on performance,
    // so there is only a small penalty
    return getNormalizedRatio(dataFiles, config.getMinorLeastFileCount())
        * getNormalizedRatio(dataFilesSize, config.getTargetSize());
  }
Segment files has enough content.

<p>1. The total size of all undersized segment files is greater than target size

<p>2. There are two undersized segment file that can be merged into one
amoro-format-iceberg/src/main/java/org/apache/amoro/optimizing/plan/CommonPartitionEvaluator.java