X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=Parasitemia%2FTests%2FParasitemiaCore.Tests%2FKdTreeTests.fs;h=ec66fa0071d6c74629d870690f0aa60a9ba200c6;hb=d247f3a07ca3c7b192d8c2381ea85ba731fcc359;hp=929dd9e77b52b12c93ce63637b02c928b053bba9;hpb=c3f9ff71e0f80120b1f5b3e84e028b02b8cb1541;p=master-thesis.git diff --git a/Parasitemia/Tests/ParasitemiaCore.Tests/KdTreeTests.fs b/Parasitemia/Tests/ParasitemiaCore.Tests/KdTreeTests.fs index 929dd9e..ec66fa0 100644 --- a/Parasitemia/Tests/ParasitemiaCore.Tests/KdTreeTests.fs +++ b/Parasitemia/Tests/ParasitemiaCore.Tests/KdTreeTests.fs @@ -71,6 +71,8 @@ type KdTreeTests (output : ITestOutputHelper) = let min = -1_000. let max = +1_000. let windowSize = 10. + let nbPoints = 500_000 + let n = 1_000 let rng = System.Random 42 let nextNumber (min : float) (max : float) = @@ -78,21 +80,30 @@ type KdTreeTests (output : ITestOutputHelper) = let points = [ - for i = 1 to 200_000 do + for i = 1 to nbPoints do let x = nextNumber min max let y = nextNumber min max - yield Point (x, y) + Point (x, y) ] + let sw = System.Diagnostics.Stopwatch () + sw.Start () + let tree = Tree.BuildTree points - let mutable nb = 0 - for i = 1 to 1_000 do + sw.Stop () + output.WriteLine (sprintf "Time to build = %A ms" sw.ElapsedMilliseconds) + + sw.Restart () + + let mutable nbFound = 0 + for i = 1 to n do let minX = nextNumber min (max - windowSize) let minY = nextNumber min (max - windowSize) - nb <- nb + (tree.Search { minX = minX; maxX = minX + float32 windowSize; minY = minY; maxY = minY + float32 windowSize } |> List.length) + nbFound <- nbFound + (tree.Search { minX = minX; maxX = minX + float32 windowSize; minY = minY; maxY = minY + float32 windowSize } |> List.length) - output.WriteLine (sprintf "nb: %A" nb) + sw.Stop () + output.WriteLine (sprintf "nb found: %i. Time to search = %A ms" nbFound sw.ElapsedMilliseconds)