#### Functional

##### Run the program using `cargo run`.

###### Does it compile and run without warnings?

##### Left click on the canvas to set one or more control points.

###### Does the program allow you to mark these control points?

###### Can you confirm that the program draws a small circle around the control points in order to identify them?

##### Left click on the canvas to set three or more control points and press `Enter`.

###### Does the animation of the Chaikin's algorithm start?

##### Press `Escape` to exit the program.

###### Does the program exit without errors?

##### Start the program and left click on the canvas to set just one control point and press `Enter`.

###### Can you confirm that only the control point is shown and nothing changes?

##### Restart the program and left click on the canvas to set just two control points and press `Enter`.

###### Can you confirm that only a straight line was drawn?

##### Restart the program and left click on the canvas to set three or more control points and press `Enter`.

###### Does the animation complete 7 steps before restarting?

##### Restart the program and left click on the canvas to set three or more control points and press `Enter`. Then press `Escape` to exit the program.

###### Does the program exit without errors?

##### Start the program and press `Enter` without selecting any points.

###### Does the program continue without errors?

###### After you pressed `Enter` before selecting points, is it possible to place points without needing to kill the program?

##### Bonus

###### +When you pressed `Enter` without drawing any points, was a message displayed to inform you that you forgot to draw any points?

###### +Is it possible to clear the screen and add new control points without killing and relaunching the program?

###### +Is it possible to drag the control points in real time and get a new curve?
