docs: @Pure
  	protected double estimate(PT p1, PT p2) {
  		assert p1 != null && p2 != null;
  		if (this.heuristic == null) {
  			throw new IllegalStateException(Locale.getString("E1")); //$NON-NLS-1$
  		}
  		return this.heuristic.evaluate(p1, p2);
  	}