#### 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.