code: private static boolean multiPathExactlyEqualsMultiPath_(
  			MultiPath multipathA, MultiPath multipathB, double tolerance,
  			ProgressTracker progress_tracker) {
  		if (multipathA.getPathCount() != multipathB.getPathCount()
  				|| multipathA.getPointCount() != multipathB.getPointCount())
  			return false;
  
  		Point2D ptA = new Point2D(), ptB = new Point2D();
  		boolean bAllPointsEqual = true;
  		double tolerance_sq = tolerance * tolerance;
  
  		for (int ipath = 0; ipath < multipathA.getPathCount(); ipath++) {
  			if (multipathA.getPathEnd(ipath) != multipathB.getPathEnd(ipath)) {
  				bAllPointsEqual = false;
  				break;
  			}
  
  			for (int i = multipathA.getPathStart(ipath); i < multipathB
  					.getPathEnd(ipath); i++) {
  				multipathA.getXY(i, ptA);
  				multipathB.getXY(i, ptB);
  
  				if (Point2D.sqrDistance(ptA, ptB) > tolerance_sq) {
  					bAllPointsEqual = false;
  					break;
  				}
  			}
  
  			if (!bAllPointsEqual)
  				break;
  		}
  
  		if (!bAllPointsEqual)
  			return false;
  
  		return true;
  	}
docs: those in multipathB, within a tolerance, and in the same order.