Add an ellipse benchmark + unit test (WIP)
[master-thesis.git] / Parasitemia / Tests / ParasitemiaCore.Tests / EllipsesTests.fs
1 namespace ParasitemiaCore.Tests
2
3 open Xunit
4 open Xunit.Abstractions
5
6 open Swensen.Unquote
7
8 open ParasitemiaCore.Ellipse
9
10 type EllipsesTests (output : ITestOutputHelper) =
11
12 [<Fact>]
13 member this.``Compare the old and new ellipse construction implementations`` () =
14 let rng = System.Random (42)
15
16 let generateParameters () : float * float * float * float * float * float * float * float =
17 rng.NextDouble (),
18 rng.NextDouble (),
19 rng.NextDouble (),
20 rng.NextDouble (),
21 rng.NextDouble (),
22 rng.NextDouble (),
23 rng.NextDouble (),
24 rng.NextDouble ()
25
26 for i in 1 .. 100 do
27 let p1x, p1y, m1, p2x, p2y, m2, p3x, p3y = generateParameters ()
28 let e = ellipse p1x p1y m1 p2x p2y m2 p3x p3y
29 let e' = ellipse' p1x p1y m1 p2x p2y m2 p3x p3y
30
31 output.WriteLine (string e)
32
33 test <@ e = e' @>
34
35 ()