public static void main(String[] args) {
		// test deep copy
		//Random rn = new Random();
		
		List<Point> path = new ArrayList<>();
		int size = 10;
		for (int i = 0; i < size - 1; i++) {
			path.add(new Point(i, 0, 0.0));
		}
		
		for (int i = 1; i < size - 1; i++) {
			path.add(new Point(size - 1, i, 0.0));
		}
		
		for (int i = size - 2; i > 0; i--) {
			path.add(new Point(i, size - 1, 0.0));
		}
		
		for (int i = 0; i < size - 1; i++) {
			path.add(new Point(0, i + size, 0.0));
		}
		
		for (int i = 1; i < size; i++) {
			path.add(new Point(i,  2*size - 1, 0.0));
		}
		
		PathSmoother nns = new PathSmoother(path);
		
		System.out.println("PATH SIZE: " + nns.getPath().size());
		nns.printPath();
		
		
		for(int i = 1; i < 15; i++){
			nns.smooth(6);
			System.out.println("SMOOTH: " + i);
			System.out.println("OPTIMAL PATH SIZE: " + nns.getSmoothPath().size());
			
			nns.printOptimalPath();
			
			nns.simpleCornerElimination();
			
			System.out.println("CORNER CLEAN: " + i);
			System.out.println("OPTIMAL PATH SIZE: " + nns.getSmoothPath().size());
			
			nns.printOptimalPath();
		}

		
	}