#### Functional ##### Execute the program using the command `Java Main`. ###### Does the program compile and run without any warnings? ##### Set one or more control points by left-clicking on the canvas. ###### Does the program allow you to mark these control points? ##### Check if the program draws a small circle around the control points for identification purposes. ###### Does the program draw a small circle around the control points? ##### Set three or more control points on the canvas and press `Enter`. ###### Does Chaikin's algorithm start the animation? ##### To exit the program, press the `Escape` key. ###### Does the program exit without any errors? ##### Start the program and set only one control point by left-clicking on the canvas. Then, press `Enter`. ###### Is only the selected control point visible, and nothing else changes? ##### Restart the program, set two control points by left-clicking on the canvas, and press `Enter`. ###### Is only a straight line drawn between the two control points? ##### Restart the program, set three or more control points by left-clicking on the canvas, and press `Enter`. ###### Does the animation complete 7 steps before restarting? ##### Restart the program, set three or more control points by left-clicking on the canvas, and press `Enter`. Then, press `Escape` to exit the program. ###### Does the program exit without any errors? ##### Start the program and press `Enter` without selecting any points. ###### Does the program continue without any errors? ##### After pressing `Enter` without selecting points, try placing points without needing to restart the program. ###### Does the program allow placement of points without needing to restart? #### Bonus Features ###### +Is a message displayed when you press `Enter` without drawing any points, reminding you to add points? ###### +Can you clear the screen and add new control points without restarting the program? ###### +Is it possible to drag the control points in real-time and observe the generation of a new curve?