protected NR findChildByMinimumEnlargementCost(NR n, NS bounds) {
		assert !n.getType().isLeafParent() && n.getType().isDirectory();
		NR bestChild = null;
		double bestAreaEnlargement = 0;
		for (NR child : getNodeChildrenOf(n)) {
			double candidateAreaEnlargement =
				child.getShape().computeAreaUnionBounds(bounds) - child.getShape().getArea();
			if (bestChild == null || candidateAreaEnlargement < bestAreaEnlargement ||
				(candidateAreaEnlargement == bestAreaEnlargement &&
					child.getShape().getArea() < bestChild.getShape().getArea())) {
				bestChild = child;
				bestAreaEnlargement = candidateAreaEnlargement;
			}
		}
		assert bestChild != null;
		return bestChild;
	}
For ChooseSubTree, the part which chooses a leaf node using the minimum area enlargement
cost.

@param n
@param bounds
@return
Ghidra/Debug/ProposedUtils/src/main/java/ghidra/util/database/spatial/AbstractRStarConstraintsTree.java