docs: protected <T> List<List<T>> trivialPartition(List<T> objects, int minEntries, int maxEntries) {
      // build partitions
      final int size = objects.size();
      final int numberPartitions = (int) Math.ceil(((double) size) / maxEntries);
      List<List<T>> partitions = new ArrayList<>(numberPartitions);
      int start = 0;
      for(int pnum = 0; pnum < numberPartitions; pnum++) {
        int end = (int) ((pnum + 1.) * size / numberPartitions);
        if(pnum == numberPartitions - 1) {
          end = size;
        }
        assert ((end - start) >= minEntries && (end - start) <= maxEntries);
        partitions.add(objects.subList(start, end));
        start = end;
      }
      return partitions;
    }