Package evaluation to test SimilaritySearch on Julia 1.14.0-DEV.2224 (c07cf8ff6a*) started at 2026-05-24T12:30:46.530 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Activating project at `~/.julia/environments/v1.14` Set-up completed after 15.83s ################################################################################ # Installation # Installing SimilaritySearch... Resolving package versions... Updating `~/.julia/environments/v1.14/Project.toml` [053f045d] + SimilaritySearch v0.14.3 Updating `~/.julia/environments/v1.14/Manifest.toml` [7d9f7c33] + Accessors v0.1.44 [79e6a3ab] + Adapt v4.6.0 [66dad0bd] + AliasTables v1.1.3 [4fba245c] + ArrayInterface v7.25.0 [62783981] + BitTwiddlingConvenienceFunctions v0.1.6 [2a0fbf3d] + CPUSummary v0.2.7 [fb6a15b2] + CloseOpenIntervals v0.1.13 [f70d9fcc] + CommonWorldInvalidations v1.0.0 [34da2185] + Compat v4.18.1 [a33af91c] + CompositionsBase v0.1.2 [187b0558] + ConstructionBase v1.6.0 [adafc99b] + CpuId v0.3.1 [9a962f9c] + DataAPI v1.16.0 [864edb3b] + DataStructures v0.19.4 [b4f34e82] + Distances v0.10.12 [31c24e10] + Distributions v0.25.125 [ffbed154] + DocStringExtensions v0.9.5 [1a297f60] + FillArrays v1.16.0 [34004b35] + HypergeometricFunctions v0.3.28 [615f187c] + IfElse v0.1.1 [3587e190] + InverseFunctions v0.1.17 [92d709cd] + IrrationalConstants v0.2.6 [692b3bcd] + JLLWrappers v1.8.0 [10f19ff3] + LayoutPointers v0.1.17 [2ab3a3ac] + LogExpFunctions v0.3.29 [1914dd2f] + MacroTools v0.5.16 [d125e4d3] + ManualMemory v0.1.8 [e1d29d7a] + Missings v1.2.0 [bac558e1] + OrderedCollections v1.8.1 [90014a1f] + PDMats v0.11.37 [f517fe37] + Polyester v0.7.19 [1d0040c9] + PolyesterWeave v0.2.2 [aea7be01] + PrecompileTools v1.3.4 [21216c6a] + Preferences v1.5.2 [92933f4c] + ProgressMeter v1.11.0 [43287f4e] + PtrArrays v1.4.0 [1fd47b50] + QuadGK v2.11.3 [189a3867] + Reexport v1.2.2 [79098fc4] + Rmath v0.9.0 [94e857df] + SIMDTypes v0.1.0 [431bcebd] + SciMLPublic v1.0.1 [0e966ebe] + SearchModels v0.5.1 [053f045d] + SimilaritySearch v0.14.3 [a2af1166] + SortingAlgorithms v1.2.2 [276daf66] + SpecialFunctions v2.7.2 [aedffcd0] + Static v1.4.0 [0d7ed370] + StaticArrayInterface v1.10.0 [10745b16] + Statistics v1.11.1 [82ae8749] + StatsAPI v1.8.0 [2913bbd2] + StatsBase v0.34.10 [4c63d2b9] + StatsFuns v1.5.2 [7792a7ef] + StrideArraysCore v0.5.9 [8290d209] + ThreadingUtilities v0.5.5 [efe28fd5] + OpenSpecFun_jll v0.5.6+0 [f50d1b31] + Rmath_jll v0.5.1+0 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [8ba89e20] + Distributed v1.11.0 [ac6e5ff7] + JuliaSyntaxHighlighting v1.13.0 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.13.0 [d6f4376e] + Markdown v1.11.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v1.13.0 [9e88b42a] + Serialization v1.11.0 [6462fe0b] + Sockets v1.11.0 [2f01184e] + SparseArrays v1.13.0 [f489334b] + StyledStrings v1.13.0 [4607b0f0] + SuiteSparse [fa267f1f] + TOML v1.0.3 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.5.1+0 [4536629a] + OpenBLAS_jll v0.3.33+0 [05823500] + OpenLibm_jll v0.8.7+0 [bea87d4a] + SuiteSparse_jll v7.10.1+0 [8e850b90] + libblastrampoline_jll v5.15.0+0 Installation completed after 5.7s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... Precompiling project... 9.0 s ✓ SimilaritySearch 1 dependency successfully precompiled in 12 seconds. 108 already precompiled. Precompilation completed after 37.35s ################################################################################ # Testing # Testing SimilaritySearch Status `/tmp/jl_3U4wrk/Project.toml` [7d9f7c33] Accessors v0.1.44 [4c88cf16] Aqua v0.8.14 [b4f34e82] Distances v0.10.12 [31c24e10] Distributions v0.25.125 [f517fe37] Polyester v0.7.19 [92933f4c] ProgressMeter v1.11.0 [0e966ebe] SearchModels v0.5.1 [053f045d] SimilaritySearch v0.14.3 [10745b16] Statistics v1.11.1 [2913bbd2] StatsBase v0.34.10 [7792a7ef] StrideArraysCore v0.5.9 [ade2ca70] Dates v1.11.0 [37e2e46d] LinearAlgebra v1.13.0 [9a3f8284] Random v1.11.0 [2f01184e] SparseArrays v1.13.0 [8dfed614] Test v1.11.0 Status `/tmp/jl_3U4wrk/Manifest.toml` [7d9f7c33] Accessors v0.1.44 [79e6a3ab] Adapt v4.6.0 [66dad0bd] AliasTables v1.1.3 [4c88cf16] Aqua v0.8.14 [4fba245c] ArrayInterface v7.25.0 [62783981] BitTwiddlingConvenienceFunctions v0.1.6 [2a0fbf3d] CPUSummary v0.2.7 [fb6a15b2] CloseOpenIntervals v0.1.13 [f70d9fcc] CommonWorldInvalidations v1.0.0 [34da2185] Compat v4.18.1 [a33af91c] CompositionsBase v0.1.2 [187b0558] ConstructionBase v1.6.0 [adafc99b] CpuId v0.3.1 [9a962f9c] DataAPI v1.16.0 [864edb3b] DataStructures v0.19.4 [b4f34e82] Distances v0.10.12 [31c24e10] Distributions v0.25.125 [ffbed154] DocStringExtensions v0.9.5 [1a297f60] FillArrays v1.16.0 [34004b35] HypergeometricFunctions v0.3.28 [615f187c] IfElse v0.1.1 [3587e190] InverseFunctions v0.1.17 [92d709cd] IrrationalConstants v0.2.6 [692b3bcd] JLLWrappers v1.8.0 [10f19ff3] LayoutPointers v0.1.17 [2ab3a3ac] LogExpFunctions v0.3.29 [1914dd2f] MacroTools v0.5.16 [d125e4d3] ManualMemory v0.1.8 [e1d29d7a] Missings v1.2.0 [bac558e1] OrderedCollections v1.8.1 [90014a1f] PDMats v0.11.37 [f517fe37] Polyester v0.7.19 [1d0040c9] PolyesterWeave v0.2.2 [aea7be01] PrecompileTools v1.3.4 [21216c6a] Preferences v1.5.2 [92933f4c] ProgressMeter v1.11.0 [43287f4e] PtrArrays v1.4.0 [1fd47b50] QuadGK v2.11.3 [189a3867] Reexport v1.2.2 [79098fc4] Rmath v0.9.0 [94e857df] SIMDTypes v0.1.0 [431bcebd] SciMLPublic v1.0.1 [0e966ebe] SearchModels v0.5.1 [053f045d] SimilaritySearch v0.14.3 [a2af1166] SortingAlgorithms v1.2.2 [276daf66] SpecialFunctions v2.7.2 [aedffcd0] Static v1.4.0 [0d7ed370] StaticArrayInterface v1.10.0 [10745b16] Statistics v1.11.1 [82ae8749] StatsAPI v1.8.0 [2913bbd2] StatsBase v0.34.10 [4c63d2b9] StatsFuns v1.5.2 [7792a7ef] StrideArraysCore v0.5.9 [8290d209] ThreadingUtilities v0.5.5 [efe28fd5] OpenSpecFun_jll v0.5.6+0 [f50d1b31] Rmath_jll v0.5.1+0 [0dad84c5] ArgTools v1.1.2 [56f22d72] Artifacts v1.11.0 [2a0f44e3] Base64 v1.11.0 [ade2ca70] Dates v1.11.0 [8ba89e20] Distributed v1.11.0 [f43a241f] Downloads v1.7.0 [7b1f6079] FileWatching v1.11.0 [b77e0a4c] InteractiveUtils v1.11.0 [ac6e5ff7] JuliaSyntaxHighlighting v1.13.0 [b27032c2] LibCURL v1.0.0 [76f85450] LibGit2 v1.11.0 [8f399da3] Libdl v1.11.0 [37e2e46d] LinearAlgebra v1.13.0 [56ddb016] Logging v1.11.0 [d6f4376e] Markdown v1.11.0 [ca575930] NetworkOptions v1.3.0 [44cfe95a] Pkg v1.14.0 [de0858da] Printf v1.11.0 [9a3f8284] Random v1.11.0 [ea8e919c] SHA v1.13.0 [9e88b42a] Serialization v1.11.0 [6462fe0b] Sockets v1.11.0 [2f01184e] SparseArrays v1.13.0 [f489334b] StyledStrings v1.13.0 [4607b0f0] SuiteSparse [fa267f1f] TOML v1.0.3 [a4e569a6] Tar v1.10.0 [8dfed614] Test v1.11.0 [cf7118a7] UUIDs v1.11.0 [4ec0a83e] Unicode v1.11.0 [e66e0078] CompilerSupportLibraries_jll v1.5.1+0 [deac9b47] LibCURL_jll v8.20.0+1 [e37daf67] LibGit2_jll v1.9.3+0 [29816b5a] LibSSH2_jll v1.11.101+0 [14a3606d] MozillaCACerts_jll v2026.5.14 [4536629a] OpenBLAS_jll v0.3.33+0 [05823500] OpenLibm_jll v0.8.7+0 [458c3c95] OpenSSL_jll v3.5.6+0 [efcefdf7] PCRE2_jll v10.47.0+0 [bea87d4a] SuiteSparse_jll v7.10.1+0 [83775a58] Zlib_jll v1.3.2+0 [3161d3a3] Zstd_jll v1.5.7+1 [8e850b90] libblastrampoline_jll v5.15.0+0 [8e850ede] nghttp2_jll v1.69.0+0 [3f19e933] p7zip_jll v17.8.0+0 Testing Running tests... Test Summary: | Pass Total Time test database abstractions | 57 57 16.8s Test Summary: | Pass Total Time heap | 16 16 0.2s Test Summary: | Pass Total Time KnnHeap | 30005 30005 3.9s Test Summary: | Pass Total Time XKnn | 25005 25005 2.8s Test Summary: | Pass Total Time XKnn pop ops | 9603 9603 1.3s [ Info: (MatrixDatabase{Matrix{Float32}}, SubDatabase{MatrixDatabase{Matrix{Float32}}, Vector{Int64}}) SimilaritySearch.Dist.L2: 0.033158 seconds SimilaritySearch.Dist.L2: 0.034007 seconds SimilaritySearch.Dist.L1: 0.031348 seconds SimilaritySearch.Dist.L1: 0.031367 seconds SimilaritySearch.Dist.LInfty: 0.031018 seconds SimilaritySearch.Dist.LInfty: 0.028318 seconds SimilaritySearch.Dist.SqL2: 0.026539 seconds SimilaritySearch.Dist.SqL2: 0.026907 seconds SimilaritySearch.Dist.Lp: 0.134954 seconds SimilaritySearch.Dist.Lp: 0.134063 seconds SimilaritySearch.Dist.Lp: 0.259941 seconds SimilaritySearch.Dist.Lp: 0.259418 seconds SimilaritySearch.Dist.Angle: 0.184864 seconds (5.21 k allocations: 279.062 KiB) SimilaritySearch.Dist.Angle: 0.179851 seconds SimilaritySearch.Dist.Cosine: 0.155622 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.Cosine: 0.156075 seconds Test Summary: | Pass Total Time Searching vectors | 800 800 25.8s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Seqs.CommonPrefix: 0.016030 seconds SimilaritySearch.Dist.Seqs.CommonPrefix: 0.016230 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.260598 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.261409 seconds SimilaritySearch.Dist.Seqs.LCS: 0.264325 seconds SimilaritySearch.Dist.Seqs.LCS: 0.263821 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.027776 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.027076 seconds Test Summary: | Pass Total Time Searching sequences | 400 400 11.1s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Sets.Jaccard: 0.070555 seconds SimilaritySearch.Dist.Sets.Jaccard: 0.067750 seconds SimilaritySearch.Dist.Sets.Dice: 0.067457 seconds SimilaritySearch.Dist.Sets.Dice: 0.075737 seconds SimilaritySearch.Dist.Sets.Intersection: 0.081804 seconds SimilaritySearch.Dist.Sets.Intersection: 0.081551 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.074609 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.079276 seconds Test Summary: | Pass Total Time Searching on sets (ordered lists) | 400 400 10.5s SimilaritySearch.Dist.NormAngle: 0.003893 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.NormAngle: 0.003844 seconds SimilaritySearch.Dist.NormCosine: 0.002686 seconds SimilaritySearch.Dist.NormCosine: 0.002704 seconds Test Summary: | Pass Total Time Searching with angle-based distances | 200 200 5.7s SimilaritySearch.Dist.Bits.Hamming: 0.004139 seconds SimilaritySearch.Dist.Bits.Hamming: 0.003546 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.008911 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.008758 seconds Test Summary: | Pass Total Time Binary distances | 200 200 5.0s quantile(length.(hsp_knns), 0:0.1:1) = [2.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 6.0] Test Summary: | Total Time HSP | 0 4.9s computing farthest point 1, dmax: Inf, imax: 23, n: 30 computing farthest point 2, dmax: 1.3008875, imax: 10, n: 30 computing farthest point 3, dmax: 0.9769668, imax: 13, n: 30 computing farthest point 4, dmax: 0.95788264, imax: 5, n: 30 computing farthest point 5, dmax: 0.7960204, imax: 12, n: 30 computing farthest point 6, dmax: 0.6801458, imax: 8, n: 30 computing farthest point 7, dmax: 0.6663892, imax: 27, n: 30 computing farthest point 8, dmax: 0.6046697, imax: 16, n: 30 computing farthest point 9, dmax: 0.5727439, imax: 1, n: 30 computing farthest point 10, dmax: 0.54099, imax: 21, n: 30 Test Summary: | Pass Total Time farthest first traversal | 3 3 2.7s n = 10 Test Summary: | Pass Total Time AdjList | 28 28 4.4s 5.591679 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.003902 seconds SEARCH Exhaustive 2: 0.004073 seconds SEARCH Exhaustive 3: 0.004903 seconds typeof(seq) = ExhaustiveSearch{SimilaritySearch.Dist.SqL2, MatrixDatabase{Matrix{Float32}}} typeof(ectx) = GenericContext{KnnSorted} typeof(q) = SubArray{Float32, 1, Matrix{Float32}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true} typeof(res) = KnnSorted{Vector{IdDist}} [ Info: ===================== minrecall Base.Pairs{Symbol, Union{}, Nothing, @NamedTuple{}}() ============================== LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-24T12:34:26.517 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=2 ep=2 n=1 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-24T12:34:29.911 LOG n.size quantiles:[1.0, 1.0, 1.0, 1.0, 1.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=12, Δ=0.94285715, maxvisits=292) mem=1GB max-rss=1GB 2026-05-24T12:34:39.050 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=14257 ep=14257 n=14256 BeamSearch(bsize=6, Δ=0.87, maxvisits=592) mem=1GB max-rss=1GB 2026-05-24T12:34:41.051 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=25904 ep=25904 n=25903 BeamSearch(bsize=6, Δ=0.9523809, maxvisits=596) mem=1GB max-rss=1GB 2026-05-24T12:34:43.051 LOG n.size quantiles:[14.0, 14.0, 14.0, 14.0, 14.0] LOG add! sp=37403 ep=37403 n=37402 BeamSearch(bsize=6, Δ=0.9523809, maxvisits=596) mem=1GB max-rss=1GB 2026-05-24T12:34:45.051 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=47694 ep=47694 n=47693 BeamSearch(bsize=6, Δ=0.81904763, maxvisits=702) mem=1GB max-rss=1GB 2026-05-24T12:34:47.051 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=58188 ep=58188 n=58187 BeamSearch(bsize=4, Δ=0.8952381, maxvisits=624) mem=1GB max-rss=1GB 2026-05-24T12:34:49.051 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=69531 ep=69531 n=69530 BeamSearch(bsize=4, Δ=0.8952381, maxvisits=624) mem=1GB max-rss=1GB 2026-05-24T12:34:51.051 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=80410 ep=80410 n=80409 BeamSearch(bsize=4, Δ=0.8952381, maxvisits=624) mem=1GB max-rss=1GB 2026-05-24T12:34:53.051 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=89242 ep=89242 n=89241 BeamSearch(bsize=6, Δ=0.8761905, maxvisits=758) mem=1GB max-rss=1GB 2026-05-24T12:34:55.051 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=97707 ep=97707 n=97706 BeamSearch(bsize=6, Δ=0.8761905, maxvisits=758) mem=1GB max-rss=1GB 2026-05-24T12:34:57.052 LOG n.size quantiles:[15.0, 15.0, 15.0, 15.0, 15.0] (length(graph.adj), length(graph), length(B.db)) = (100000, 100000, 100000) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 24.0, 30.0, 103.0] [ Info: minrecall: queries per second: 12367.41482023431, recall: 0.9035 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0761905, maxvisits=828)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 24.0, 30.0, 103.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.94285715, maxvisits=656)), 1000, 8) [ Info: rebuild: queries per second: 15464.472014780076, recall: 0.898875 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.94285715, maxvisits=656)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [5.0, 16.0, 19.0, 21.0, 23.0, 24.0, 26.0, 28.0, 30.0, 34.0, 56.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.82, maxvisits=822)), 1000, 8) 2.819362 seconds (488.46 k allocations: 29.641 MiB, 6.79% gc time, 97.08% compilation time) [ Info: matrixhints: queries per second: 12883.501083173913, recall: 0.901375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.82, maxvisits=822)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 24.0, 30.0, 103.0] [ Info: ===================== minrecall Base.Pairs{Symbol, AdjDict{UInt32}, Nothing, @NamedTuple{adj::AdjDict{UInt32}}}(:adj => AdjDict{UInt32}(Dict{UInt32, Vector{UInt32}}(), ReentrantLock())) ============================== LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-24T12:36:26.766 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=12, Δ=0.94285715, maxvisits=292) mem=1GB max-rss=1GB 2026-05-24T12:36:29.912 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=18514 ep=18514 n=18513 BeamSearch(bsize=6, Δ=1.05, maxvisits=688) mem=1GB max-rss=1GB 2026-05-24T12:36:31.912 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=32194 ep=32194 n=32193 BeamSearch(bsize=6, Δ=0.9523809, maxvisits=596) mem=1GB max-rss=1GB 2026-05-24T12:36:33.913 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=44981 ep=44981 n=44980 BeamSearch(bsize=6, Δ=0.81904763, maxvisits=702) mem=1GB max-rss=1GB 2026-05-24T12:36:35.913 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=56817 ep=56817 n=56816 BeamSearch(bsize=4, Δ=0.8952381, maxvisits=624) mem=1GB max-rss=1GB 2026-05-24T12:36:38.046 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=69180 ep=69180 n=69179 BeamSearch(bsize=4, Δ=0.8952381, maxvisits=624) mem=1GB max-rss=1GB 2026-05-24T12:36:40.046 LOG n.size quantiles:[15.0, 15.0, 15.0, 15.0, 15.0] LOG add! sp=81169 ep=81169 n=81168 BeamSearch(bsize=4, Δ=0.8952381, maxvisits=624) mem=1GB max-rss=1GB 2026-05-24T12:36:42.047 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=90697 ep=90697 n=90696 BeamSearch(bsize=6, Δ=0.8761905, maxvisits=758) mem=1GB max-rss=1GB 2026-05-24T12:36:44.047 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] (length(graph.adj), length(graph), length(B.db)) = (100000, 100000, 100000) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 24.0, 30.0, 103.0] [ Info: minrecall: queries per second: 11702.287532740953, recall: 0.9035 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0761905, maxvisits=828)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 24.0, 30.0, 103.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.94285715, maxvisits=656)), 1000, 8) [ Info: rebuild: queries per second: 16023.815235155096, recall: 0.898875 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.94285715, maxvisits=656)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [5.0, 16.0, 19.0, 21.0, 23.0, 24.0, 26.0, 28.0, 30.0, 34.0, 56.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.82, maxvisits=822)), 1000, 8) 2.581846 seconds (483.33 k allocations: 29.174 MiB, 96.69% compilation time) [ Info: matrixhints: queries per second: 11899.414109737421, recall: 0.901375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.82, maxvisits=822)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 24.0, 30.0, 103.0] 1.007364 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.001227 seconds SEARCH Exhaustive 2: 0.001212 seconds SEARCH Exhaustive 3: 0.001206 seconds typeof(seq) = ExhaustiveSearch{SimilaritySearch.Dist.SqL2, StrideMatrixDatabase{StrideArraysCore.StrideArray{Float32, 2, (1, 2), Tuple{Int64, Int64}, Tuple{Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}}, Matrix{Float32}}}} typeof(ectx) = GenericContext{KnnSorted} typeof(q) = StrideArraysCore.StrideArray{Float32, 1, (1,), Tuple{Int64}, Tuple{Nothing}, Tuple{Static.StaticInt{1}}, Matrix{Float32}} typeof(res) = KnnSorted{Vector{IdDist}} [ Info: ===================== minrecall Base.Pairs{Symbol, Union{}, Nothing, @NamedTuple{}}() ============================== LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-24T12:38:15.496 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=8, Δ=1.0238096, maxvisits=276) mem=1GB max-rss=1GB 2026-05-24T12:38:24.392 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=16836 ep=16836 n=16835 BeamSearch(bsize=4, Δ=0.92862546, maxvisits=562) mem=1GB max-rss=1GB 2026-05-24T12:38:26.435 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=30967 ep=30967 n=30966 BeamSearch(bsize=10, Δ=0.99999994, maxvisits=816) mem=1GB max-rss=1GB 2026-05-24T12:38:28.435 LOG n.size quantiles:[13.0, 13.0, 13.0, 13.0, 13.0] LOG add! sp=42942 ep=42942 n=42941 BeamSearch(bsize=4, Δ=0.82270247, maxvisits=648) mem=1GB max-rss=1GB 2026-05-24T12:38:30.435 LOG n.size quantiles:[14.0, 14.0, 14.0, 14.0, 14.0] LOG add! sp=55882 ep=55882 n=55881 BeamSearch(bsize=4, Δ=0.82270247, maxvisits=648) mem=1GB max-rss=1GB 2026-05-24T12:38:32.435 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=67566 ep=67566 n=67565 BeamSearch(bsize=4, Δ=0.87, maxvisits=638) mem=1GB max-rss=1GB 2026-05-24T12:38:34.435 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=79158 ep=79158 n=79157 BeamSearch(bsize=4, Δ=0.87, maxvisits=638) mem=1GB max-rss=1GB 2026-05-24T12:38:36.435 LOG n.size quantiles:[15.0, 15.0, 15.0, 15.0, 15.0] LOG add! sp=88408 ep=88408 n=88407 BeamSearch(bsize=10, Δ=0.99999994, maxvisits=822) mem=1GB max-rss=1GB 2026-05-24T12:38:38.435 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=96609 ep=96609 n=96608 BeamSearch(bsize=10, Δ=0.99999994, maxvisits=822) mem=1GB max-rss=1GB 2026-05-24T12:38:40.435 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] (length(graph.adj), length(graph), length(B.db)) = (100000, 100000, 100000) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 23.0, 30.0, 104.0] [ Info: minrecall: queries per second: 14138.288494293342, recall: 0.90125 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0476191, maxvisits=876)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 23.0, 30.0, 104.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.9714286, maxvisits=720)), 1000, 8) [ Info: rebuild: queries per second: 15697.286741253789, recall: 0.90475 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.9714286, maxvisits=720)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [5.0, 16.0, 19.0, 21.0, 23.0, 24.0, 26.0, 28.0, 30.0, 34.0, 55.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.7904762, maxvisits=838)), 1000, 8) 2.766962 seconds (427.62 k allocations: 25.884 MiB, 97.23% compilation time) [ Info: matrixhints: queries per second: 13837.472301185759, recall: 0.899875 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.7904762, maxvisits=838)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 23.0, 30.0, 104.0] Test Summary: | Pass Total Time vector indexing with SearchGraph | 27 27 5m45.7s [ Info: neardup> starting: 1:100, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:53.029 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-24T12:39:53.438 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> finished current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:55.080 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000008, 0x0000000d, 0x0000003d, 0x00000060] D.nn = Int32[1, 2, 3, 4, 5, 1, 2, 8, 1, 3, 4, 2, 13, 8, 4, 4, 2, 3, 5, 2, 8, 2, 4, 8, 3, 8, 3, 3, 5, 2, 8, 4, 3, 3, 3, 3, 3, 13, 8, 3, 3, 1, 3, 2, 2, 2, 3, 3, 3, 8, 3, 2, 3, 13, 5, 8, 2, 3, 8, 5, 61, 3, 3, 2, 2, 1, 13, 3, 1, 3, 5, 3, 3, 3, 3, 3, 3, 3, 8, 4, 13, 8, 5, 61, 3, 3, 3, 4, 3, 5, 13, 5, 8, 3, 5, 96, 1, 2, 2, 4] D.dist = Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.055107832, 0.009189665, 0.0, 0.009727597, 0.0423581, 0.0791834, 0.012912095, 0.0, 0.008655012, 0.041184247, 0.019983888, 0.016846538, 0.06486142, 0.039278984, 0.0639869, 0.024420321, 0.023392498, 0.028521478, 0.019526243, 0.07073879, 0.0041646957, 0.02783221, 0.03596592, 0.015302241, 0.02672267, 0.035701156, 0.05488199, 0.009670377, 0.05462712, 0.05077952, 0.03820032, 0.06881559, 0.02447033, 0.010304868, 0.0592162, 0.07937819, 0.029274344, 0.04041952, 0.04199165, 0.048106432, 0.020984888, 0.021198869, 0.029627562, 0.02416873, 0.018526733, 0.052176833, 0.061787307, 0.07052302, 0.06432408, 0.024641454, 0.027226985, 0.03641659, 0.011386216, 0.011566579, 0.061558843, 0.0, 0.05482918, 0.07172114, 0.066587865, 0.02534616, 0.05352795, 0.05586517, 0.06010008, 0.025385797, 0.08235425, 0.020665586, 0.0891062, 0.058710873, 0.07951677, 0.037202537, 0.0770517, 0.054206133, 0.041751027, 0.070872426, 0.034312785, 0.06055671, 0.091682196, 0.037323117, 0.0773896, 0.024135947, 0.029896617, 0.08990437, 0.028342545, 0.010110199, 0.07159096, 0.07197517, 0.06947428, 0.087792695, 0.06577349, 0.026830435, 0.0, 0.058068752, 0.019303203, 0.07249683, 0.0322392] Test Summary: | Pass Total Time neardup single block | 3 3 21.3s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.067 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-24T12:39:56.067 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> range: 17:32, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.068 [ Info: neardup> range: 33:48, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.068 [ Info: neardup> range: 49:64, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.068 [ Info: neardup> range: 65:80, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.068 [ Info: neardup> range: 81:96, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.069 [ Info: neardup> range: 97:100, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.069 [ Info: neardup> finished current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.069 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000008, 0x0000000d, 0x0000003d, 0x00000060] D.nn = Int32[1, 2, 3, 4, 5, 1, 2, 8, 1, 3, 4, 2, 13, 8, 4, 4, 2, 3, 5, 2, 8, 2, 4, 8, 3, 8, 3, 3, 5, 2, 8, 4, 3, 3, 3, 3, 3, 13, 8, 3, 3, 1, 3, 2, 2, 2, 3, 3, 3, 8, 3, 2, 3, 13, 5, 8, 2, 3, 8, 5, 61, 3, 3, 2, 2, 1, 13, 3, 1, 3, 5, 3, 3, 3, 3, 3, 3, 3, 8, 4, 13, 8, 5, 61, 3, 3, 3, 4, 3, 5, 13, 5, 8, 3, 5, 96, 1, 2, 2, 4] D.dist = Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.055107832, 0.009189665, 0.0, 0.009727597, 0.0423581, 0.0791834, 0.012912095, 0.0, 0.008655012, 0.041184247, 0.019983888, 0.016846538, 0.06486142, 0.039278984, 0.0639869, 0.024420321, 0.023392498, 0.028521478, 0.019526243, 0.07073879, 0.0041646957, 0.02783221, 0.03596592, 0.015302241, 0.02672267, 0.035701156, 0.05488199, 0.009670377, 0.05462712, 0.05077952, 0.03820032, 0.06881559, 0.02447033, 0.010304868, 0.0592162, 0.07937819, 0.029274344, 0.04041952, 0.04199165, 0.048106432, 0.020984888, 0.021198869, 0.029627562, 0.02416873, 0.018526733, 0.052176833, 0.061787307, 0.07052302, 0.06432408, 0.024641454, 0.027226985, 0.03641659, 0.011386216, 0.011566579, 0.061558843, 0.0, 0.05482918, 0.07172114, 0.066587865, 0.02534616, 0.05352795, 0.05586517, 0.06010008, 0.025385797, 0.08235425, 0.020665586, 0.0891062, 0.058710873, 0.07951677, 0.037202537, 0.0770517, 0.054206133, 0.041751027, 0.070872426, 0.034312785, 0.06055671, 0.091682196, 0.037323117, 0.0773896, 0.024135947, 0.029896617, 0.08990437, 0.028342545, 0.010110199, 0.07159096, 0.07197517, 0.06947428, 0.087792695, 0.06577349, 0.026830435, 0.0, 0.058068752, 0.019303203, 0.07249683, 0.0322392] Test Summary: | Pass Total Time neardup small block | 3 3 0.1s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.233 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-24T12:39:56.233 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> range: 17:32, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.235 [ Info: neardup> range: 33:48, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.235 [ Info: neardup> range: 49:64, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.236 [ Info: neardup> range: 65:80, current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.236 [ Info: neardup> range: 81:96, current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.236 [ Info: neardup> range: 97:100, current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.236 [ Info: neardup> finished current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:39:56.236 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x0000000e, 0x0000000f, 0x00000010, 0x0000003d] D.nn = Int32[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 10, 5, 12, 8, 7, 15, 6, 10, 8, 3, 10, 5, 12, 8, 16, 3, 3, 3, 3, 3, 13, 8, 3, 16, 9, 3, 7, 7, 7, 3, 3, 3, 6, 3, 12, 16, 13, 5, 8, 12, 3, 6, 14, 61, 3, 16, 7, 12, 6, 13, 10, 15, 12, 5, 10, 3, 3, 3, 16, 3, 3, 8, 11, 13, 14, 5, 11, 3, 10, 10, 11, 3, 5, 9, 5, 15, 10, 5, 10, 16, 12, 12, 4] D.dist = Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.007680118, 0.046973586, 0.039278984, 0.029281735, 0.024420321, 0.0055057406, 0.007671654, 0.015538812, 0.031045496, 0.0041646957, 0.02783221, 0.012721002, 0.015302241, 0.008622289, 0.035701156, 0.012866497, 0.009670377, 0.05462712, 0.05077952, 0.03820032, 0.06881559, 0.02447033, 0.010304868, 0.0592162, 0.07682407, 0.011822641, 0.04041952, 0.031641006, 0.022419691, 0.011137366, 0.021198869, 0.029627562, 0.02416873, 0.013783574, 0.052176833, 0.033222497, 0.06751609, 0.06432408, 0.024641454, 0.027226985, 0.014021575, 0.011386216, 0.010588586, 0.061489403, 0.0, 0.05482918, 0.05137837, 0.027543128, 0.021205902, 0.020684302, 0.05586517, 0.032045484, 0.02286017, 0.072283864, 0.020665586, 0.07480937, 0.058710873, 0.07951677, 0.037202537, 0.06838411, 0.054206133, 0.041751027, 0.070872426, 0.028553307, 0.06055671, 0.07885194, 0.037323117, 0.053999186, 0.024135947, 0.024965346, 0.082389414, 0.019770622, 0.010110199, 0.07159096, 0.07001507, 0.06947428, 0.05663699, 0.014843106, 0.026830435, 0.04146421, 0.04416442, 0.0048559904, 0.035788536, 0.0322392] Test Summary: | Pass Total Time neardup small block with filterblocks=false | 3 3 0.2s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:40:13.209 LOG append_items! ExhaustiveSearch{SimilaritySearch.Dist.Hacks.DistanceWithIdentifiers{SimilaritySearch.Dist.Cosine, MatrixDatabase{Matrix{Float32}}}, VectorDatabase{Vector{Int32}}} sp=0 ep=7 n=7 mem=32768 max-rss=672 2026-05-24T12:40:13.209 [ Info: neardup> range: 17:32, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:40:13.215 [ Info: neardup> range: 33:48, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:40:13.215 [ Info: neardup> range: 49:64, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:40:13.215 [ Info: neardup> range: 65:80, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:40:13.215 [ Info: neardup> range: 81:96, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:40:13.216 [ Info: neardup> range: 97:100, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:40:13.216 [ Info: neardup> finished current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-05-24T12:40:13.216 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000008, 0x0000000d, 0x0000003d, 0x00000060] D.nn = Int32[1, 2, 3, 4, 5, 1, 2, 8, 1, 3, 4, 2, 13, 8, 4, 4, 2, 3, 5, 2, 8, 2, 4, 8, 3, 8, 3, 3, 5, 2, 8, 4, 3, 3, 3, 3, 3, 13, 8, 3, 3, 1, 3, 2, 2, 2, 3, 3, 3, 8, 3, 2, 3, 13, 5, 8, 2, 3, 8, 5, 61, 3, 3, 2, 2, 1, 13, 3, 1, 3, 5, 3, 3, 3, 3, 3, 3, 3, 8, 4, 13, 8, 5, 61, 3, 3, 3, 4, 3, 5, 13, 5, 8, 3, 5, 96, 1, 2, 2, 4] D.dist = Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.055107832, 0.009189665, 0.0, 0.009727597, 0.0423581, 0.0791834, 0.012912095, 0.0, 0.008655012, 0.041184247, 0.019983888, 0.016846538, 0.06486142, 0.039278984, 0.0639869, 0.024420321, 0.023392498, 0.028521478, 0.019526243, 0.07073879, 0.0041646957, 0.02783221, 0.03596592, 0.015302241, 0.02672267, 0.035701156, 0.05488199, 0.009670377, 0.05462712, 0.05077952, 0.03820032, 0.06881559, 0.02447033, 0.010304868, 0.0592162, 0.07937819, 0.029274344, 0.04041952, 0.04199165, 0.048106432, 0.020984888, 0.021198869, 0.029627562, 0.02416873, 0.018526733, 0.052176833, 0.061787307, 0.07052302, 0.06432408, 0.024641454, 0.027226985, 0.03641659, 0.011386216, 0.011566579, 0.061558843, 0.0, 0.05482918, 0.07172114, 0.066587865, 0.02534616, 0.05352795, 0.05586517, 0.06010008, 0.025385797, 0.08235425, 0.020665586, 0.0891062, 0.058710873, 0.07951677, 0.037202537, 0.0770517, 0.054206133, 0.041751027, 0.070872426, 0.034312785, 0.06055671, 0.091682196, 0.037323117, 0.0773896, 0.024135947, 0.029896617, 0.08990437, 0.028342545, 0.010110199, 0.07159096, 0.07197517, 0.06947428, 0.087792695, 0.06577349, 0.026830435, 0.0, 0.058068752, 0.019303203, 0.07249683, 0.0322392] Test Summary: | Pass Total Time neardup small block with filterblocks=false | 3 3 17.0s ExhaustiveSearch allknn: 1.617876 seconds (470.66 k allocations: 28.015 MiB, 99.94% compilation time) [ Info: All KNN quartile 1-th: [ Info: 1 => [0.0, 0.0, 0.0, 0.0, 0.0] [ Info: All KNN quartile 2-th: [ Info: 2 => [0.12374359369277954, 0.18077309057116508, 0.21457070857286453, 0.27778738737106323, 0.4016311466693878] [ Info: All KNN quartile 3-th: [ Info: 3 => [0.1690659373998642, 0.22616753354668617, 0.28005051612854004, 0.3096224218606949, 0.4497653841972351] [ Info: All KNN quartile 4-th: [ Info: 4 => [0.18404783308506012, 0.27885620296001434, 0.30270038545131683, 0.34272680431604385, 0.4868587851524353] [ Info: All KNN quartile 5-th: [ Info: 5 => [0.20975826680660248, 0.3018711134791374, 0.32784779369831085, 0.3765018731355667, 0.6081842184066772] [ Info: All KNN quartile 6-th: [ Info: 6 => [0.23318590223789215, 0.32125262916088104, 0.35682515799999237, 0.4051714390516281, 0.6206047534942627] LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-24T12:40:22.145 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] SearchGraph allknn: 4.632875 seconds (597.94 k allocations: 37.669 MiB, 0.74% gc time, 99.99% compilation time) recall = 0.9616666666666667 recall > 0.8 = true recall = 0.9616666666666667 quantile(neighbors_length.(Ref(G.adj), 1:length(G)), 0:0.25:1) = [2.0, 4.0, 6.0, 9.25, 22.0] Test Summary: | Pass Total Time allknn | 3 3 24.2s LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-24T12:40:43.854 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=4, Δ=0.8857143, maxvisits=152) mem=1GB max-rss=1GB 2026-05-24T12:40:54.289 LOG n.size quantiles:[2.0, 2.0, 2.0, 2.0, 2.0] (i, j, d) = (74, 274, -1.1920929f-7) (i, j, d, :parallel) = (45, 780, -1.1920929f-7, :parallel) [ Info: NOTE: the exact method will be faster on small datasets due to the preprocessing step of the approximation method [ Info: ("closestpair computation time", :approx => 18.730604243, :exact => 1.073224901) Test Summary: | Pass Total Time closestpair | 4 4 20.3s Testing SimilaritySearch tests passed Testing completed after 542.85s PkgEval succeeded after 620.81s