code: public boolean canMergeRemainderFilter(FilteringScore<S> other) {
          if (this == other || (!hasAnyMatches() && !other.hasAnyMatches())) {
              return true;
          }
  
          return isIndexClustered() == other.isIndexClustered()
              && isIndexUnique() == other.isIndexUnique()
              && getIndexPropertyCount() == other.getIndexPropertyCount()
              && getArrangementScore() == other.getArrangementScore()
              && getPreferenceScore().equals(other.getPreferenceScore())
              && shouldReverseRange() == other.shouldReverseRange()
              // List comparisons assume identical ordering, but this is
              // not strictly required. Since the different scores likely
              // originated from the same complex filter, the ordering
              // likely matches. A set equality test is not needed.
              && getIdentityFilters().equals(other.getIdentityFilters())
              && getRangeStartFilters().equals(other.getRangeStartFilters())
              && getRangeEndFilters().equals(other.getRangeEndFilters());
      }
docs: Returns true if the given score uses an index exactly the same as this
  one. The only allowed differences are in the remainder filter.