Package evaluation to test SimilaritySearch on Julia 1.14.0-DEV.2033 (8c59e8e9f1*) started at 2026-04-14T19:26:52.601 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Activating project at `~/.julia/environments/v1.14` Set-up completed after 13.94s ################################################################################ # 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.5.2 [66dad0bd] + AliasTables v1.1.3 [4fba245c] + ArrayInterface v7.23.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.124 [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.7.1 [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.3 [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 [ae029012] + Requires v1.3.1 [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.3.1 [0d7ed370] + StaticArrayInterface v1.9.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.8 [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.0.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.3.0+1 [4536629a] + OpenBLAS_jll v0.3.30+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.9s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... Precompiling project... 3.2 s ✓ SearchModels 8.8 s ✓ SimilaritySearch 2 dependencies successfully precompiled in 13 seconds. 108 already precompiled. Precompilation completed after 40.26s ################################################################################ # Testing # Testing SimilaritySearch Status `/tmp/jl_BgC2M1/Project.toml` [7d9f7c33] Accessors v0.1.44 [4c88cf16] Aqua v0.8.14 [b4f34e82] Distances v0.10.12 [31c24e10] Distributions v0.25.124 [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.8 [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_BgC2M1/Manifest.toml` [7d9f7c33] Accessors v0.1.44 [79e6a3ab] Adapt v4.5.2 [66dad0bd] AliasTables v1.1.3 [4c88cf16] Aqua v0.8.14 [4fba245c] ArrayInterface v7.23.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.124 [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.7.1 [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.3 [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 [ae029012] Requires v1.3.1 [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.3.1 [0d7ed370] StaticArrayInterface v1.9.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.8 [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.0.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.3.0+1 [deac9b47] LibCURL_jll v8.19.0+0 [e37daf67] LibGit2_jll v1.9.2+0 [29816b5a] LibSSH2_jll v1.11.3+1 [14a3606d] MozillaCACerts_jll v2026.3.19 [4536629a] OpenBLAS_jll v0.3.30+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.68.1+0 [3f19e933] p7zip_jll v17.8.0+0 Testing Running tests... Test Summary: | Pass Total Time test database abstractions | 57 57 17.5s Test Summary: | Pass Total Time heap | 16 16 0.1s Test Summary: | Pass Total Time KnnHeap | 30005 30005 3.7s Test Summary: | Pass Total Time XKnn | 25005 25005 2.8s Test Summary: | Pass Total Time XKnn pop ops | 9603 9603 1.2s [ Info: (MatrixDatabase{Matrix{Float32}}, SubDatabase{MatrixDatabase{Matrix{Float32}}, Vector{Int64}}) SimilaritySearch.Dist.L2: 0.031755 seconds SimilaritySearch.Dist.L2: 0.031181 seconds SimilaritySearch.Dist.L1: 0.032270 seconds SimilaritySearch.Dist.L1: 0.031160 seconds SimilaritySearch.Dist.LInfty: 0.030277 seconds SimilaritySearch.Dist.LInfty: 0.031280 seconds SimilaritySearch.Dist.SqL2: 0.030336 seconds SimilaritySearch.Dist.SqL2: 0.029732 seconds SimilaritySearch.Dist.Lp: 0.132251 seconds SimilaritySearch.Dist.Lp: 0.132450 seconds SimilaritySearch.Dist.Lp: 0.261090 seconds SimilaritySearch.Dist.Lp: 0.266735 seconds SimilaritySearch.Dist.Angle: 0.187886 seconds (5.21 k allocations: 279.062 KiB) SimilaritySearch.Dist.Angle: 0.181438 seconds SimilaritySearch.Dist.Cosine: 0.167705 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.Cosine: 0.161049 seconds Test Summary: | Pass Total Time Searching vectors | 800 800 24.1s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Seqs.CommonPrefix: 0.016624 seconds SimilaritySearch.Dist.Seqs.CommonPrefix: 0.016628 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.329986 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.334137 seconds SimilaritySearch.Dist.Seqs.LCS: 0.262996 seconds SimilaritySearch.Dist.Seqs.LCS: 0.277481 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.028921 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.027802 seconds Test Summary: | Pass Total Time Searching sequences | 400 400 11.5s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Sets.Jaccard: 0.082591 seconds SimilaritySearch.Dist.Sets.Jaccard: 0.073967 seconds SimilaritySearch.Dist.Sets.Dice: 0.069918 seconds SimilaritySearch.Dist.Sets.Dice: 0.068658 seconds SimilaritySearch.Dist.Sets.Intersection: 0.072560 seconds SimilaritySearch.Dist.Sets.Intersection: 0.071917 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.072113 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.070564 seconds Test Summary: | Pass Total Time Searching on sets (ordered lists) | 400 400 9.6s SimilaritySearch.Dist.NormAngle: 0.004014 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.NormAngle: 0.003989 seconds SimilaritySearch.Dist.NormCosine: 0.003043 seconds SimilaritySearch.Dist.NormCosine: 0.002960 seconds Test Summary: | Pass Total Time Searching with angle-based distances | 200 200 5.0s SimilaritySearch.Dist.Bits.Hamming: 0.004548 seconds SimilaritySearch.Dist.Bits.Hamming: 0.004779 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.008608 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.008695 seconds Test Summary: | Pass Total Time Binary distances | 200 200 4.4s quantile(length.(hsp_knns), 0:0.1:1) = [3.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 5.0] Test Summary: | Total Time HSP | 0 4.8s computing farthest point 1, dmax: Inf, imax: 3, n: 30 computing farthest point 2, dmax: 0.89367193, imax: 10, n: 30 computing farthest point 3, dmax: 0.8523357, imax: 9, n: 30 computing farthest point 4, dmax: 0.7291101, imax: 23, n: 30 computing farthest point 5, dmax: 0.7193032, imax: 1, n: 30 computing farthest point 6, dmax: 0.632846, imax: 18, n: 30 computing farthest point 7, dmax: 0.5738204, imax: 20, n: 30 computing farthest point 8, dmax: 0.56496245, imax: 5, n: 30 computing farthest point 9, dmax: 0.5643779, imax: 30, n: 30 computing farthest point 10, dmax: 0.5582262, imax: 28, n: 30 Test Summary: | Pass Total Time farthest first traversal | 3 3 2.2s n = 10 Test Summary: | Pass Total Time AdjList | 28 28 4.2s 5.113652 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.003674 seconds SEARCH Exhaustive 2: 0.003720 seconds SEARCH Exhaustive 3: 0.005131 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-04-14T19:30:22.175 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-04-14T19:30:25.677 LOG n.size quantiles:[1.0, 1.0, 1.0, 1.0, 1.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=6, Δ=0.86, maxvisits=262) mem=1GB max-rss=1GB 2026-04-14T19:30:35.024 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=12857 ep=12857 n=12856 BeamSearch(bsize=14, Δ=1.1340001, maxvisits=812) mem=1GB max-rss=1GB 2026-04-14T19:30:37.024 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=24495 ep=24495 n=24494 BeamSearch(bsize=6, Δ=0.86, maxvisits=516) mem=1GB max-rss=1GB 2026-04-14T19:30:39.024 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=36365 ep=36365 n=36364 BeamSearch(bsize=6, Δ=0.861678, maxvisits=576) mem=1GB max-rss=1GB 2026-04-14T19:30:41.024 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=47665 ep=47665 n=47664 BeamSearch(bsize=4, Δ=0.9, maxvisits=544) mem=1GB max-rss=1GB 2026-04-14T19:30:43.024 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=57598 ep=57598 n=57597 BeamSearch(bsize=8, Δ=1.0, maxvisits=942) mem=1GB max-rss=1GB 2026-04-14T19:30:45.024 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=66197 ep=66197 n=66196 BeamSearch(bsize=8, Δ=1.0, maxvisits=942) mem=1GB max-rss=1GB 2026-04-14T19:30:47.024 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=74887 ep=74887 n=74886 BeamSearch(bsize=8, Δ=1.0, maxvisits=942) mem=1GB max-rss=1GB 2026-04-14T19:30:49.024 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=83134 ep=83134 n=83133 BeamSearch(bsize=8, Δ=1.0, maxvisits=942) mem=1GB max-rss=1GB 2026-04-14T19:30:51.025 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=91936 ep=91936 n=91935 BeamSearch(bsize=4, Δ=0.8062484, maxvisits=644) mem=1GB max-rss=1GB 2026-04-14T19:30:53.025 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, 24.0, 30.0, 118.0] [ Info: minrecall: queries per second: 12904.094293623684, recall: 0.900375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0476191, maxvisits=834)) 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, 118.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.82857144, maxvisits=660)), 1000, 8) [ Info: rebuild: queries per second: 14829.464788155088, recall: 0.890625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.82857144, maxvisits=660)) 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, 54.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=6, Δ=0.7568863, maxvisits=956)), 1000, 8) 2.684902 seconds (488.81 k allocations: 29.705 MiB, 2.10% gc time, 96.43% compilation time) [ Info: matrixhints: queries per second: 10652.959290887895, recall: 0.905125 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=6, Δ=0.7568863, maxvisits=956)) 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, 118.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-04-14T19:32:25.885 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=6, Δ=0.86, maxvisits=262) mem=1GB max-rss=1GB 2026-04-14T19:32:29.088 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=16836 ep=16836 n=16835 BeamSearch(bsize=6, Δ=0.86, maxvisits=516) mem=1GB max-rss=1GB 2026-04-14T19:32:31.223 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=31748 ep=31748 n=31747 BeamSearch(bsize=6, Δ=0.861678, maxvisits=576) mem=1GB max-rss=1GB 2026-04-14T19:32:33.223 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=44848 ep=44848 n=44847 BeamSearch(bsize=4, Δ=0.9, maxvisits=544) mem=1GB max-rss=1GB 2026-04-14T19:32:35.223 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=56817 ep=56817 n=56816 BeamSearch(bsize=8, Δ=1.0, maxvisits=942) mem=1GB max-rss=1GB 2026-04-14T19:32:37.335 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=66464 ep=66464 n=66463 BeamSearch(bsize=8, Δ=1.0, maxvisits=942) mem=1GB max-rss=1GB 2026-04-14T19:32:39.336 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=75851 ep=75851 n=75850 BeamSearch(bsize=8, Δ=1.0, maxvisits=942) mem=1GB max-rss=1GB 2026-04-14T19:32:41.336 LOG n.size quantiles:[13.0, 13.0, 13.0, 13.0, 13.0] LOG add! sp=84888 ep=84888 n=84887 BeamSearch(bsize=8, Δ=1.0, maxvisits=942) mem=1GB max-rss=1GB 2026-04-14T19:32:43.336 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=95353 ep=95353 n=95352 BeamSearch(bsize=4, Δ=0.8062484, maxvisits=644) mem=1GB max-rss=1GB 2026-04-14T19:32:45.336 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.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, 118.0] [ Info: minrecall: queries per second: 11888.39257888017, recall: 0.900375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0476191, maxvisits=834)) 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, 118.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.82857144, maxvisits=660)), 1000, 8) [ Info: rebuild: queries per second: 14948.969748397776, recall: 0.890625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.82857144, maxvisits=660)) 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, 54.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=6, Δ=0.7568863, maxvisits=956)), 1000, 8) 2.279523 seconds (483.67 k allocations: 29.229 MiB, 95.63% compilation time) [ Info: matrixhints: queries per second: 10056.002177808281, recall: 0.905125 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=6, Δ=0.7568863, maxvisits=956)) 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, 118.0] 1.121798 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.001106 seconds SEARCH Exhaustive 2: 0.001117 seconds SEARCH Exhaustive 3: 0.001114 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-04-14T19:34:15.536 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=9, Δ=1.155, maxvisits=326) mem=1GB max-rss=1GB 2026-04-14T19:34:23.347 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=18663 ep=18663 n=18662 BeamSearch(bsize=4, Δ=0.99047613, maxvisits=516) mem=1GB max-rss=1GB 2026-04-14T19:34:25.347 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=33191 ep=33191 n=33190 BeamSearch(bsize=6, Δ=0.91, maxvisits=656) mem=1GB max-rss=1GB 2026-04-14T19:34:27.347 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=44340 ep=44340 n=44339 BeamSearch(bsize=8, Δ=1.02, maxvisits=812) mem=1GB max-rss=1GB 2026-04-14T19:34:29.347 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=55135 ep=55135 n=55134 BeamSearch(bsize=8, Δ=1.02, maxvisits=812) mem=1GB max-rss=1GB 2026-04-14T19:34:31.348 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=67267 ep=67267 n=67266 BeamSearch(bsize=4, Δ=0.84229064, maxvisits=646) mem=1GB max-rss=1GB 2026-04-14T19:34:33.348 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=79845 ep=79845 n=79844 BeamSearch(bsize=4, Δ=0.84229064, maxvisits=646) mem=1GB max-rss=1GB 2026-04-14T19:34:35.348 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=90266 ep=90266 n=90265 BeamSearch(bsize=6, Δ=0.84229064, maxvisits=734) mem=1GB max-rss=1GB 2026-04-14T19:34:37.348 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.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, 8.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 23.0, 30.0, 120.0] [ Info: minrecall: queries per second: 15578.770728119185, recall: 0.902375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0666667, maxvisits=910)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 8.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 23.0, 30.0, 120.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.84656084, maxvisits=656)), 1000, 8) [ Info: rebuild: queries per second: 16007.116635999433, recall: 0.8985 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.84656084, maxvisits=656)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [5.0, 16.0, 19.0, 21.0, 22.0, 24.0, 26.0, 28.0, 30.0, 34.0, 58.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.79999995, maxvisits=890)), 1000, 8) 2.810337 seconds (427.82 k allocations: 25.927 MiB, 2.31% gc time, 97.38% compilation time) [ Info: matrixhints: queries per second: 13516.776719136315, recall: 0.898625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.79999995, maxvisits=890)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 8.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 23.0, 30.0, 120.0] Test Summary: | Pass Total Time vector indexing with SearchGraph | 27 27 5m49.1s [ Info: neardup> starting: 1:100, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:53.311 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-14T19:35:53.602 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> finished current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:55.246 D.map = UInt32[0x00000001, 0x00000002, 0x00000004, 0x00000005, 0x00000007, 0x00000008, 0x00000027, 0x0000002b, 0x00000030, 0x0000004d] D.nn = Int32[1, 2, 2, 4, 5, 4, 7, 8, 8, 7, 2, 1, 2, 5, 1, 5, 5, 1, 8, 4, 5, 8, 4, 7, 2, 2, 4, 2, 2, 7, 4, 4, 2, 1, 8, 4, 2, 1, 39, 39, 4, 2, 43, 4, 8, 43, 39, 48, 2, 48, 39, 1, 39, 43, 5, 2, 43, 8, 5, 43, 43, 4, 43, 8, 1, 5, 43, 7, 8, 4, 48, 7, 4, 8, 43, 4, 77, 77, 2, 43, 8, 43, 5, 2, 39, 43, 7, 8, 5, 7, 8, 1, 43, 4, 39, 8, 43, 5, 2, 1] D.dist = Float32[0.0, 0.0, 0.070366025, 0.0, 0.0, 0.073630035, 0.0, 0.0, 0.080972016, 0.009631872, 0.029970348, 0.023869455, 0.09688139, 0.043168247, 0.021396637, 0.029306889, 0.035177648, 0.07895434, 0.069675684, 0.07306802, 0.0095127225, 0.05793178, 0.0108991265, 0.015003741, 0.099338174, 0.050046325, 0.08087897, 0.008865714, 0.042045236, 0.058062732, 0.07304913, 0.046525, 0.09116399, 0.08936405, 0.06564325, 0.026397467, 0.013243318, 0.08198261, 0.0, 0.05066657, 0.024926126, 0.024888992, 0.0, 0.027610362, 0.090916395, 0.0837878, 0.029102027, 0.0, 0.025671482, 0.039758265, 0.04796636, 0.05457163, 0.056582868, 0.033574343, 0.029338777, 0.011432767, 0.014657021, 0.02563554, 0.027782321, 0.03925824, 0.050211012, 0.0552997, 0.019332051, 0.044429243, 0.018859923, 0.027289748, 0.029963136, 0.04074371, 0.06633651, 0.03644073, 0.014585316, 0.01762402, 0.03461176, 0.026617348, 0.06995565, 0.03499186, 0.0, 0.061057866, 0.09282988, 0.024838805, 0.09154302, 0.055829227, 0.055753827, 0.017938197, 0.05336964, 0.05270219, 0.04579532, 0.032221317, 0.043980718, 0.0697068, 0.04840213, 0.035760462, 0.013983011, 0.03687513, 0.006475508, 0.07648724, 0.02119273, 0.046138227, 0.016667724, 0.035743356] Test Summary: | Pass Total Time neardup single block | 3 3 20.9s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.265 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-14T19:35:56.265 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> range: 17:32, current elements: 6, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.265 [ Info: neardup> range: 33:48, current elements: 6, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.265 [ Info: neardup> range: 49:64, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.266 [ Info: neardup> range: 65:80, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.266 [ Info: neardup> range: 81:96, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.266 [ Info: neardup> range: 97:100, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.266 [ Info: neardup> finished current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.266 D.map = UInt32[0x00000001, 0x00000002, 0x00000004, 0x00000005, 0x00000007, 0x00000008, 0x00000027, 0x0000002b, 0x00000030, 0x0000004d] D.nn = Int32[1, 2, 2, 4, 5, 4, 7, 8, 8, 7, 2, 1, 2, 5, 1, 5, 5, 1, 8, 4, 5, 8, 4, 7, 2, 2, 4, 2, 2, 7, 4, 4, 2, 1, 8, 4, 2, 1, 39, 8, 4, 2, 43, 4, 8, 7, 39, 48, 2, 48, 39, 1, 39, 43, 5, 2, 43, 8, 5, 43, 43, 4, 43, 8, 1, 5, 43, 7, 8, 4, 48, 7, 4, 8, 43, 4, 77, 43, 2, 43, 8, 43, 5, 2, 39, 43, 7, 8, 5, 7, 8, 1, 43, 4, 39, 8, 43, 5, 2, 1] D.dist = Float32[0.0, 0.0, 0.070366025, 0.0, 0.0, 0.073630035, 0.0, 0.0, 0.080972016, 0.009631872, 0.029970348, 0.023869455, 0.09688139, 0.043168247, 0.021396637, 0.029306889, 0.035177648, 0.07895434, 0.069675684, 0.07306802, 0.0095127225, 0.05793178, 0.0108991265, 0.015003741, 0.099338174, 0.050046325, 0.08087897, 0.008865714, 0.042045236, 0.058062732, 0.07304913, 0.046525, 0.09116399, 0.08936405, 0.06564325, 0.026397467, 0.013243318, 0.08198261, 0.0, 0.070094705, 0.024926126, 0.024888992, 0.0, 0.027610362, 0.090916395, 0.08823401, 0.029102027, 0.0, 0.025671482, 0.039758265, 0.04796636, 0.05457163, 0.056582868, 0.033574343, 0.029338777, 0.011432767, 0.014657021, 0.02563554, 0.027782321, 0.03925824, 0.050211012, 0.0552997, 0.019332051, 0.044429243, 0.018859923, 0.027289748, 0.029963136, 0.04074371, 0.06633651, 0.03644073, 0.014585316, 0.01762402, 0.03461176, 0.026617348, 0.06995565, 0.03499186, 0.0, 0.09460127, 0.09282988, 0.024838805, 0.09154302, 0.055829227, 0.055753827, 0.017938197, 0.05336964, 0.05270219, 0.04579532, 0.032221317, 0.043980718, 0.0697068, 0.04840213, 0.035760462, 0.013983011, 0.03687513, 0.006475508, 0.07648724, 0.02119273, 0.046138227, 0.016667724, 0.035743356] 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-04-14T19:35:56.416 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-14T19:35:56.416 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-04-14T19:35:56.417 [ Info: neardup> range: 33:48, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.417 [ Info: neardup> range: 49:64, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.417 [ Info: neardup> range: 65:80, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.417 [ Info: neardup> range: 81:96, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.418 [ Info: neardup> range: 97:100, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.418 [ Info: neardup> finished current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:35:56.418 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x0000000e, 0x0000000f, 0x00000010, 0x00000027, 0x0000002f] D.nn = Int32[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 15, 9, 4, 16, 9, 4, 7, 6, 11, 9, 2, 13, 7, 4, 4, 3, 15, 9, 4, 2, 15, 39, 8, 4, 2, 3, 6, 9, 7, 47, 3, 2, 4, 39, 15, 39, 3, 16, 2, 8, 8, 5, 11, 15, 4, 15, 8, 12, 16, 15, 7, 9, 4, 3, 7, 4, 8, 8, 4, 6, 6, 2, 11, 8, 4, 3, 2, 47, 7, 7, 8, 3, 16, 8, 15, 3, 6, 39, 8, 3, 16, 2, 15] 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.0065389276, 0.033317804, 0.040112317, 0.07306802, 0.007024586, 0.02987653, 0.0108991265, 0.015003741, 0.010514319, 0.021277964, 0.03911996, 0.008865714, 0.041840613, 0.058062732, 0.07304913, 0.046525, 0.0098308325, 0.04463613, 0.008765101, 0.026397467, 0.013243318, 0.029335797, 0.0, 0.070094705, 0.024926126, 0.024888992, 0.027821124, 0.017916322, 0.010054529, 0.08823401, 0.0, 0.07308608, 0.025671482, 0.043000698, 0.04796636, 0.028241754, 0.056582868, 0.06748861, 0.020948231, 0.011432767, 0.07092899, 0.02563554, 0.027782321, 0.02853775, 0.01819408, 0.0552997, 0.059177637, 0.044429243, 0.013046563, 0.011277676, 0.06241405, 0.04074371, 0.028668642, 0.03644073, 0.038230777, 0.01762402, 0.03461176, 0.026617348, 0.070546925, 0.03499186, 0.04368192, 0.015797675, 0.09282988, 0.047673643, 0.09154302, 0.057783425, 0.044696033, 0.017938197, 0.04545802, 0.06001383, 0.04579532, 0.032221317, 0.03751111, 0.055594027, 0.04840213, 0.01822567, 0.029925048, 0.011036873, 0.006475508, 0.07648724, 0.038127363, 0.02899319, 0.016667724, 0.019479811] Test Summary: | Pass Total Time neardup small block with filterblocks=false | 3 3 0.1s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:36:07.298 LOG append_items! ExhaustiveSearch{SimilaritySearch.Dist.Hacks.DistanceWithIdentifiers{SimilaritySearch.Dist.Cosine, MatrixDatabase{Matrix{Float32}}}, VectorDatabase{Vector{Int32}}} sp=0 ep=6 n=6 mem=32768 max-rss=688 2026-04-14T19:36:07.298 [ Info: neardup> range: 17:32, current elements: 6, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:36:07.303 [ Info: neardup> range: 33:48, current elements: 6, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:36:07.303 [ Info: neardup> range: 49:64, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:36:07.303 [ Info: neardup> range: 65:80, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:36:07.303 [ Info: neardup> range: 81:96, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:36:07.304 [ Info: neardup> range: 97:100, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:36:07.304 [ Info: neardup> finished current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-14T19:36:07.304 D.map = UInt32[0x00000001, 0x00000002, 0x00000004, 0x00000005, 0x00000007, 0x00000008, 0x00000027, 0x0000002b, 0x00000030, 0x0000004d] D.nn = Int32[1, 2, 2, 4, 5, 4, 7, 8, 8, 7, 2, 1, 2, 5, 1, 5, 5, 1, 8, 4, 5, 8, 4, 7, 2, 2, 4, 2, 2, 7, 4, 4, 2, 1, 8, 4, 2, 1, 39, 8, 4, 2, 43, 4, 8, 7, 39, 48, 2, 48, 39, 1, 39, 43, 5, 2, 43, 8, 5, 43, 43, 4, 43, 8, 1, 5, 43, 7, 8, 4, 48, 7, 4, 8, 43, 4, 77, 43, 2, 43, 8, 43, 5, 2, 39, 43, 7, 8, 5, 7, 8, 1, 43, 4, 39, 8, 43, 5, 2, 1] D.dist = Float32[0.0, 0.0, 0.070366025, 0.0, 0.0, 0.073630035, 0.0, 0.0, 0.080972016, 0.009631872, 0.029970348, 0.023869455, 0.09688139, 0.043168247, 0.021396637, 0.029306889, 0.035177648, 0.07895434, 0.069675684, 0.07306802, 0.0095127225, 0.05793178, 0.0108991265, 0.015003741, 0.099338174, 0.050046325, 0.08087897, 0.008865714, 0.042045236, 0.058062732, 0.07304913, 0.046525, 0.09116399, 0.08936405, 0.06564325, 0.026397467, 0.013243318, 0.08198261, 0.0, 0.070094705, 0.024926126, 0.024888992, 0.0, 0.027610362, 0.090916395, 0.08823401, 0.029102027, 0.0, 0.025671482, 0.039758265, 0.04796636, 0.05457163, 0.056582868, 0.033574343, 0.029338777, 0.011432767, 0.014657021, 0.02563554, 0.027782321, 0.03925824, 0.050211012, 0.0552997, 0.019332051, 0.044429243, 0.018859923, 0.027289748, 0.029963136, 0.04074371, 0.06633651, 0.03644073, 0.014585316, 0.01762402, 0.03461176, 0.026617348, 0.06995565, 0.03499186, 0.0, 0.09460127, 0.09282988, 0.024838805, 0.09154302, 0.055829227, 0.055753827, 0.017938197, 0.05336964, 0.05270219, 0.04579532, 0.032221317, 0.043980718, 0.0697068, 0.04840213, 0.035760462, 0.013983011, 0.03687513, 0.006475508, 0.07648724, 0.02119273, 0.046138227, 0.016667724, 0.035743356] Test Summary: | Pass Total Time neardup small block with filterblocks=false | 3 3 10.9s ExhaustiveSearch allknn: 1.554371 seconds (470.87 k allocations: 28.076 MiB, 99.95% 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.06844071298837662, 0.17258727550506592, 0.19935642182826996, 0.2507242411375046, 0.3653927147388458] [ Info: All KNN quartile 3-th: [ Info: 3 => [0.161098450422287, 0.22325652837753296, 0.2580992728471756, 0.3092957213521004, 0.46584784984588623] [ Info: All KNN quartile 4-th: [ Info: 4 => [0.20065675675868988, 0.25683122128248215, 0.29481203854084015, 0.34729404002428055, 0.5755014419555664] [ Info: All KNN quartile 5-th: [ Info: 5 => [0.21888171136379242, 0.282667338848114, 0.3322330564260483, 0.3743091896176338, 0.6054328680038452] [ Info: All KNN quartile 6-th: [ Info: 6 => [0.2296561598777771, 0.3254459649324417, 0.36037057638168335, 0.39801254123449326, 0.6260712742805481] LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-14T19:36:15.811 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] SearchGraph allknn: 4.488206 seconds (598.36 k allocations: 37.737 MiB, 99.99% compilation time) recall = 0.9783333333333332 recall > 0.8 = true recall = 0.9783333333333332 quantile(neighbors_length.(Ref(G.adj), 1:length(G)), 0:0.25:1) = [2.0, 4.0, 6.0, 8.0, 23.0] Test Summary: | Pass Total Time allknn | 3 3 24.1s LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-14T19:36:37.193 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.88435376, maxvisits=156) mem=1GB max-rss=1GB 2026-04-14T19:36:47.377 LOG n.size quantiles:[2.0, 2.0, 2.0, 2.0, 2.0] (i, j, d) = (13, 843, -1.1920929f-7) (i, j, d, :parallel) = (46, 362, -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 => 17.817972654000002, :exact => 1.053111856) Test Summary: | Pass Total Time closestpair | 4 4 19.4s Testing SimilaritySearch tests passed Testing completed after 534.77s PkgEval succeeded after 608.65s