+++ /dev/null
-namespace ParasitemiaCore.Tests
-
-open Xunit
-open Xunit.Abstractions
-
-open ParasitemiaCore.KdTree
-
-type Point (x : float32, y : float32) =
- interface I2DCoords with
- member this.X = x
- member this.Y = y
-
- override this.ToString () =
- sprintf "(%.1f, %.1f)" x y
-
-type KdTreeTests (output : ITestOutputHelper) =
-
- // TODO: test with identical X or Y coords
- [<Fact>]
- member this.test () =
- let pts =
- [
- Point (1.0f, 1.0f)
- Point (2.0f, 2.0f)
- Point (1.5f, 3.6f)
- Point (3.0f, 3.2f)
- Point (4.0f, 4.0f)
- Point (3.5f, 1.5f)
- Point (2.5f, 0.5f)
- ]
-
- let tree = Tree.BuildTree pts
- output.WriteLine (sprintf "Tree: %A" tree)
-
- let s1 = tree.Search { minX = 0.0f; maxX = 5.0f; minY = 0.0f; maxY = 5.0f } // All points.
- output.WriteLine (sprintf "s1: %A" s1)
-
- let s2 = tree.Search { minX = 2.8f; maxX = 4.5f; minY = 3.0f; maxY = 4.5f }
- output.WriteLine (sprintf "s2: %A" s2)
-
- let s3 = tree.Search { minX = 2.0f; maxX = 2.0f; minY = 2.0f; maxY = 2.0f }
- output.WriteLine (sprintf "s3: %A" s3)
-
- [<Fact>]
- member this.test2 () =
- let pts =
- [
- Point (1.0f, 1.0f)
- Point (1.0f, 2.0f)
- Point (1.0f, 3.0f)
- ]
-
- let tree = Tree.BuildTree pts
- output.WriteLine (sprintf "Tree: %A" tree)
-
- let s1 = tree.Search { minX = 1.0f; maxX = 1.0f; minY = 1.0f; maxY = 1.0f }
- output.WriteLine (sprintf "s1: %A" s1)
-
- let s2 = tree.Search { minX = 1.0f; maxX = 1.0f; minY = 2.0f; maxY = 2.0f }
- output.WriteLine (sprintf "s2: %A" s2)
-
- // This case result is wrong: FIXME
- let s3 = tree.Search { minX = 1.0f; maxX = 1.0f; minY = 3.0f; maxY = 3.0f }
- output.WriteLine (sprintf "s3: %A" s3)
-
- let s4 = tree.Search { minX = 0.0f; maxX = 2.0f; minY = 0.0f; maxY = 4.0f }
- output.WriteLine (sprintf "s4: %A" s4)
-
-
-
-