these tests don't pass (bin/test -k ellipse). When they do just append the work to the previous commit and do a forced update of this PR. Note that when you enter rational numbers like 123/456 you will get integer truncation or a floating point number depending on the settings of the environment; neither will be equal to the corresponding Rational. So you should enter them as Rational(123, 456) -- see your final tests for examples that will likely fail.

Also, the case for when a point is on the ellipse has to be considered because then pt and p are the same value. You can test whether p in on the ellipse with `p in ellipse`.