docs: private BestMergeInNode calculateBestMergeInNode(Node node) {
          assert (node.numFreeEntries() == 0);
  
          Entry[] entries = node.getEntries();
  
          int toMerge1 = -1;
          int toMerge2 = -1;
          double distanceBetweenMergeEntries = Double.NaN;
  
          double minDistance = Double.MAX_VALUE;
          for (int i = 0; i < entries.length; i++) {
              Entry e1 = entries[i];
              for (int j = i + 1; j < entries.length; j++) {
                  Entry e2 = entries[j];
                  double distance = e1.calcDistance(e2);
                  if (distance < minDistance) {
                      toMerge1 = i;
                      toMerge2 = j;
                      distanceBetweenMergeEntries = distance;
                  }
              }
          }
  
          assert (toMerge1 != -1 && toMerge2 != -1);
          if (Double.isNaN(distanceBetweenMergeEntries)) {
              throw new RuntimeException("The minimal distance between two "
                      + "Entrys in a Node was Double.MAX_VAUE. That can hardly "
                      + "be right.");
          }
  
          return new BestMergeInNode(toMerge1, toMerge2,
                  distanceBetweenMergeEntries);
      }