#### Functional ##### Try to run the program. ###### Does the program compile and run without any error or warning? ###### Set one or more control points by left-clicking on the canvas. ###### Confirm that the program allows you to mark these control points. ###### Check if the program draws a small circle around the control points for identification purposes. ###### Set three or more control points on the canvas and press `Enter`. ###### Observe whether Chaikin's algorithm starts the animation. ###### To exit the program, press the `Escape` key. ###### Ensure the program exits without any errors. ###### Start the program and set only one control point by left-clicking on the canvas. Then, press `Enter`. ###### Confirm that only the selected control point is visible, and nothing else changes. ###### Restart the program, set two control points by left-clicking on the canvas, and press `Enter`. ###### Check if only a straight line is drawn between the two control points. ###### Restart the program, set three or more control points by left-clicking on the canvas, and press `Enter`. ###### Confirm that the animation completes 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. ###### Verify that the program exits without any errors. ###### Start the program and press `Enter` without selecting any points. ###### Check if the program continues without any errors. ###### After pressing `Enter` without selecting points, try placing points without needing to restart the program. #### Bonus Features ###### Check if a message is displayed when you press `Enter` without drawing any points, reminding you to add points. ###### Verify if you can clear the screen and add new control points without restarting the program. ###### Check if it's possible to drag the control points in real time and observe the generation of a new curve.