Package evaluation to test SimilaritySearch on Julia 1.14.0-DEV.2082 (4fdd12e277*) started at 2026-04-26T19:34:52.585 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Activating project at `~/.julia/environments/v1.14` Set-up completed after 15.12s ################################################################################ # 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.24.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.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.4.0+0 [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 6.16s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... Precompiling project... 3.5 s ✓ SearchModels 9.3 s ✓ SimilaritySearch 2 dependencies successfully precompiled in 14 seconds. 108 already precompiled. Precompilation completed after 42.16s ################################################################################ # Testing # Testing SimilaritySearch Status `/tmp/jl_nUTsab/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.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_nUTsab/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.24.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.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.4.0+0 [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.69.0+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.2s Test Summary: | Pass Total Time KnnHeap | 30005 30005 4.1s Test Summary: | Pass Total Time XKnn | 25005 25005 2.8s Test Summary: | Pass Total Time XKnn pop ops | 9603 9603 1.4s [ Info: (MatrixDatabase{Matrix{Float32}}, SubDatabase{MatrixDatabase{Matrix{Float32}}, Vector{Int64}}) SimilaritySearch.Dist.L2: 0.030341 seconds SimilaritySearch.Dist.L2: 0.030004 seconds SimilaritySearch.Dist.L1: 0.031169 seconds SimilaritySearch.Dist.L1: 0.030431 seconds SimilaritySearch.Dist.LInfty: 0.027732 seconds SimilaritySearch.Dist.LInfty: 0.027791 seconds SimilaritySearch.Dist.SqL2: 0.028112 seconds SimilaritySearch.Dist.SqL2: 0.028515 seconds SimilaritySearch.Dist.Lp: 0.135666 seconds SimilaritySearch.Dist.Lp: 0.134253 seconds SimilaritySearch.Dist.Lp: 0.267910 seconds SimilaritySearch.Dist.Lp: 0.263594 seconds SimilaritySearch.Dist.Angle: 0.185065 seconds (5.21 k allocations: 279.094 KiB) SimilaritySearch.Dist.Angle: 0.177151 seconds SimilaritySearch.Dist.Cosine: 0.154965 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.Cosine: 0.158162 seconds Test Summary: | Pass Total Time Searching vectors | 800 800 24.8s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Seqs.CommonPrefix: 0.015562 seconds SimilaritySearch.Dist.Seqs.CommonPrefix: 0.015452 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.257324 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.262516 seconds SimilaritySearch.Dist.Seqs.LCS: 0.255185 seconds SimilaritySearch.Dist.Seqs.LCS: 0.250989 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.026728 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.025558 seconds Test Summary: | Pass Total Time Searching sequences | 400 400 11.3s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Sets.Jaccard: 0.068558 seconds SimilaritySearch.Dist.Sets.Jaccard: 0.067242 seconds SimilaritySearch.Dist.Sets.Dice: 0.068142 seconds SimilaritySearch.Dist.Sets.Dice: 0.068333 seconds SimilaritySearch.Dist.Sets.Intersection: 0.070185 seconds SimilaritySearch.Dist.Sets.Intersection: 0.068359 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.071333 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.069904 seconds Test Summary: | Pass Total Time Searching on sets (ordered lists) | 400 400 10.3s SimilaritySearch.Dist.NormAngle: 0.003882 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.NormAngle: 0.003837 seconds SimilaritySearch.Dist.NormCosine: 0.002824 seconds SimilaritySearch.Dist.NormCosine: 0.002833 seconds Test Summary: | Pass Total Time Searching with angle-based distances | 200 200 5.7s SimilaritySearch.Dist.Bits.Hamming: 0.003828 seconds SimilaritySearch.Dist.Bits.Hamming: 0.003725 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.008782 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.009180 seconds Test Summary: | Pass Total Time Binary distances | 200 200 5.2s 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 5.5s computing farthest point 1, dmax: Inf, imax: 17, n: 30 computing farthest point 2, dmax: 1.2837257, imax: 3, n: 30 computing farthest point 3, dmax: 1.0187205, imax: 25, n: 30 computing farthest point 4, dmax: 0.9147483, imax: 28, n: 30 computing farthest point 5, dmax: 0.8302742, imax: 13, n: 30 computing farthest point 6, dmax: 0.8185073, imax: 6, n: 30 computing farthest point 7, dmax: 0.8043785, imax: 19, n: 30 computing farthest point 8, dmax: 0.68505186, imax: 2, n: 30 computing farthest point 9, dmax: 0.64749104, imax: 24, n: 30 computing farthest point 10, dmax: 0.63064474, imax: 29, 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.339659 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.004396 seconds SEARCH Exhaustive 2: 0.004720 seconds SEARCH Exhaustive 3: 0.006101 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-26T19:38:31.064 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-26T19:38:34.775 LOG n.size quantiles:[1.0, 1.0, 1.0, 1.0, 1.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=8, Δ=0.9047619, maxvisits=270) mem=1GB max-rss=1GB 2026-04-26T19:38:44.290 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=15102 ep=15102 n=15101 BeamSearch(bsize=8, Δ=0.88435376, maxvisits=572) mem=1GB max-rss=1GB 2026-04-26T19:38:46.290 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=26828 ep=26828 n=26827 BeamSearch(bsize=6, Δ=0.79999995, maxvisits=646) mem=1GB max-rss=1GB 2026-04-26T19:38:48.290 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=38106 ep=38106 n=38105 BeamSearch(bsize=4, Δ=0.86, maxvisits=570) mem=1GB max-rss=1GB 2026-04-26T19:38:50.290 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=49464 ep=49464 n=49463 BeamSearch(bsize=4, Δ=0.86, maxvisits=570) mem=1GB max-rss=1GB 2026-04-26T19:38:52.290 LOG n.size quantiles:[14.0, 14.0, 14.0, 14.0, 14.0] LOG add! sp=58574 ep=58574 n=58573 BeamSearch(bsize=6, Δ=1.0476191, maxvisits=736) mem=1GB max-rss=1GB 2026-04-26T19:38:54.291 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=67868 ep=67868 n=67867 BeamSearch(bsize=6, Δ=1.0476191, maxvisits=736) mem=1GB max-rss=1GB 2026-04-26T19:38:56.291 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=76635 ep=76635 n=76634 BeamSearch(bsize=6, Δ=1.0476191, maxvisits=736) mem=1GB max-rss=1GB 2026-04-26T19:38:58.291 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=85187 ep=85187 n=85186 BeamSearch(bsize=6, Δ=1.0476191, maxvisits=736) mem=1GB max-rss=1GB 2026-04-26T19:39:00.291 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=92468 ep=92468 n=92467 BeamSearch(bsize=6, Δ=0.8952381, maxvisits=734) mem=1GB max-rss=1GB 2026-04-26T19:39:02.291 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, 23.0, 30.0, 113.0] [ Info: minrecall: queries per second: 12860.707808602521, recall: 0.903375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.075, 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, 23.0, 30.0, 113.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=642)), 1000, 8) [ Info: rebuild: queries per second: 13951.875600166088, recall: 0.895625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=642)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [4.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.79, maxvisits=958)), 1000, 8) 2.807598 seconds (488.81 k allocations: 29.707 MiB, 1.44% gc time, 96.87% compilation time) [ Info: matrixhints: queries per second: 11345.101304380332, recall: 0.899 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.79, maxvisits=958)) 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, 113.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-26T19:40:34.488 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, Δ=0.9047619, maxvisits=270) mem=1GB max-rss=1GB 2026-04-26T19:40:37.799 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=20574 ep=20574 n=20573 BeamSearch(bsize=6, Δ=0.8809524, maxvisits=590) mem=1GB max-rss=1GB 2026-04-26T19:40:39.800 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=38199 ep=38199 n=38198 BeamSearch(bsize=4, Δ=0.86, maxvisits=570) mem=1GB max-rss=1GB 2026-04-26T19:40:41.800 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=52380 ep=52380 n=52379 BeamSearch(bsize=4, Δ=0.86, maxvisits=570) mem=1GB max-rss=1GB 2026-04-26T19:40:43.800 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=62291 ep=62291 n=62290 BeamSearch(bsize=6, Δ=1.0476191, maxvisits=736) mem=1GB max-rss=1GB 2026-04-26T19:40:45.800 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=71797 ep=71797 n=71796 BeamSearch(bsize=6, Δ=1.0476191, maxvisits=736) mem=1GB max-rss=1GB 2026-04-26T19:40:47.800 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=80702 ep=80702 n=80701 BeamSearch(bsize=6, Δ=1.0476191, maxvisits=736) mem=1GB max-rss=1GB 2026-04-26T19:40:49.800 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=88720 ep=88720 n=88719 BeamSearch(bsize=6, Δ=0.8952381, maxvisits=734) mem=1GB max-rss=1GB 2026-04-26T19:40:51.800 LOG n.size quantiles:[15.0, 15.0, 15.0, 15.0, 15.0] LOG add! sp=98828 ep=98828 n=98827 BeamSearch(bsize=6, Δ=0.8952381, maxvisits=734) mem=1GB max-rss=1GB 2026-04-26T19:40:53.800 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, 23.0, 30.0, 113.0] [ Info: minrecall: queries per second: 11440.62186827277, recall: 0.903375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.075, 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, 23.0, 30.0, 113.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=642)), 1000, 8) [ Info: rebuild: queries per second: 14492.210480343447, recall: 0.895625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=642)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [4.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.79, maxvisits=958)), 1000, 8) 2.783843 seconds (483.67 k allocations: 29.231 MiB, 3.14% gc time, 96.86% compilation time) [ Info: matrixhints: queries per second: 11533.224168291055, recall: 0.899 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.79, maxvisits=958)) 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, 113.0] 1.100639 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.001393 seconds SEARCH Exhaustive 2: 0.001470 seconds SEARCH Exhaustive 3: 0.001260 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-26T19:42:27.292 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, Δ=1.075, maxvisits=280) mem=1GB max-rss=1GB 2026-04-26T19:42:36.608 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=15306 ep=15306 n=15305 BeamSearch(bsize=5, Δ=0.7947306, maxvisits=502) mem=1GB max-rss=1GB 2026-04-26T19:42:38.608 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=28984 ep=28984 n=28983 BeamSearch(bsize=4, Δ=0.803369, maxvisits=592) mem=1GB max-rss=1GB 2026-04-26T19:42:40.608 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=41370 ep=41370 n=41369 BeamSearch(bsize=8, Δ=0.98, maxvisits=652) mem=1GB max-rss=1GB 2026-04-26T19:42:42.608 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=51958 ep=51958 n=51957 BeamSearch(bsize=8, Δ=0.98, maxvisits=652) mem=1GB max-rss=1GB 2026-04-26T19:42:44.608 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=61449 ep=61449 n=61448 BeamSearch(bsize=8, Δ=0.98, maxvisits=720) mem=1GB max-rss=1GB 2026-04-26T19:42:46.608 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=70730 ep=70730 n=70729 BeamSearch(bsize=8, Δ=0.98, maxvisits=720) mem=1GB max-rss=1GB 2026-04-26T19:42:48.945 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=79684 ep=79684 n=79683 BeamSearch(bsize=8, Δ=0.98, maxvisits=720) mem=1GB max-rss=1GB 2026-04-26T19:42:50.945 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=88410 ep=88410 n=88409 BeamSearch(bsize=5, Δ=0.84761906, maxvisits=658) mem=1GB max-rss=1GB 2026-04-26T19:42:52.945 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=98266 ep=98266 n=98265 BeamSearch(bsize=5, Δ=0.84761906, maxvisits=658) mem=1GB max-rss=1GB 2026-04-26T19:42:54.945 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, 23.0, 30.0, 112.0] [ Info: minrecall: queries per second: 13984.087115716588, recall: 0.90325 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.81, maxvisits=894)) 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, 112.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0666667, maxvisits=704)), 1000, 8) [ Info: rebuild: queries per second: 17292.71840980035, recall: 0.904375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0666667, maxvisits=704)) 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, 33.0, 55.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.7990498, maxvisits=868)), 1000, 8) 2.770572 seconds (427.82 k allocations: 25.928 MiB, 97.22% compilation time) [ Info: matrixhints: queries per second: 13148.391563834191, recall: 0.899375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.7990498, maxvisits=868)) 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, 112.0] Test Summary: | Pass Total Time vector indexing with SearchGraph | 27 27 5m56.6s [ Info: neardup> starting: 1:100, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:08.673 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-26T19:44:08.978 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-26T19:44:11.267 LOG n.size quantiles:[1.0, 1.0, 1.0, 1.0, 1.0] [ Info: neardup> finished current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:11.269 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000006, 0x00000007, 0x00000010, 0x00000012, 0x0000002e, 0x00000041, 0x0000004b] D.nn = Int32[1, 2, 3, 1, 3, 6, 7, 7, 7, 6, 1, 1, 1, 3, 3, 16, 16, 18, 18, 18, 3, 16, 7, 18, 7, 2, 16, 7, 16, 18, 3, 3, 1, 3, 3, 6, 16, 3, 1, 2, 3, 2, 2, 16, 18, 46, 16, 7, 18, 6, 7, 18, 7, 3, 18, 2, 3, 18, 3, 16, 18, 6, 1, 1, 65, 18, 7, 7, 3, 2, 7, 3, 18, 18, 75, 65, 6, 3, 6, 46, 18, 7, 2, 18, 75, 18, 16, 18, 2, 18, 1, 16, 3, 2, 18, 1, 75, 6, 7, 18] D.dist = Float32[0.0, 0.0, 0.0, 0.057955682, 0.009292901, 0.0, 0.0, 0.01974678, 0.005447328, 0.014975131, 0.058260083, 0.0671258, 0.08581561, 0.08725244, 0.004221976, 0.0, 0.007659316, 0.0, 0.05223781, 0.017701805, 0.013202846, 0.0054139495, 0.06544542, 0.055753052, 0.075687826, 0.039106548, 0.04916054, 0.050373018, 0.032609463, 0.04941207, 0.033665597, 0.014618039, 0.05114436, 0.028707862, 0.05952871, 0.03911847, 0.005567074, 0.02382505, 0.015275538, 0.031052947, 0.054796934, 0.04470992, 0.027403176, 0.004499376, 0.039195895, 0.0, 0.07291967, 0.02144581, 0.048537314, 0.07048291, 0.014821947, 0.04485947, 0.072051704, 0.015969396, 0.026899159, 0.034060776, 0.09635997, 0.01092577, 0.02821058, 0.013707519, 0.030742884, 0.0437302, 0.09437466, 0.009863496, 0.0, 0.019527853, 0.032243967, 0.034369946, 0.039993584, 0.035613358, 0.045255303, 0.08460152, 0.028727353, 0.032462, 0.0, 0.001067996, 0.07924956, 0.041177034, 0.046289027, 0.021722853, 0.038672626, 0.04358822, 0.022898257, 0.07973832, 0.02625364, 0.01004976, 0.039354324, 0.007999659, 0.01705718, 0.071900785, 0.05267155, 0.024756253, 0.016242921, 0.06328213, 0.042206883, 0.06763309, 0.031844616, 0.041641057, 0.042726934, 0.027870417] 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-04-26T19:44:12.294 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-26T19:44:12.295 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-26T19:44:12.296 [ Info: neardup> range: 33:48, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:12.296 [ Info: neardup> range: 49:64, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:12.296 [ Info: neardup> range: 65:80, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:12.296 [ Info: neardup> range: 81:96, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:12.296 [ Info: neardup> range: 97:100, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:12.296 [ Info: neardup> finished current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:12.296 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000006, 0x00000007, 0x00000010, 0x00000012, 0x0000002e, 0x00000041, 0x0000004b] D.nn = Int32[1, 2, 3, 1, 3, 6, 7, 7, 7, 6, 1, 1, 1, 3, 3, 16, 16, 18, 7, 3, 3, 16, 7, 3, 7, 2, 16, 7, 16, 7, 3, 3, 1, 3, 3, 6, 16, 3, 1, 2, 3, 2, 2, 16, 18, 46, 16, 7, 18, 6, 7, 18, 7, 3, 18, 2, 3, 18, 3, 16, 18, 6, 1, 1, 65, 18, 7, 7, 3, 2, 7, 3, 18, 18, 75, 7, 6, 3, 6, 46, 18, 7, 2, 18, 75, 18, 16, 18, 2, 18, 1, 16, 3, 2, 18, 1, 75, 6, 7, 18] D.dist = Float32[0.0, 0.0, 0.0, 0.057955682, 0.009292901, 0.0, 0.0, 0.01974678, 0.005447328, 0.014975131, 0.058260083, 0.0671258, 0.08581561, 0.08725244, 0.004221976, 0.0, 0.007659316, 0.0, 0.075473785, 0.048836112, 0.013202846, 0.0054139495, 0.06544542, 0.057643533, 0.075687826, 0.039106548, 0.04916054, 0.050373018, 0.032609463, 0.08090228, 0.033665597, 0.014618039, 0.05114436, 0.028707862, 0.05952871, 0.03911847, 0.005567074, 0.02382505, 0.015275538, 0.031052947, 0.054796934, 0.04470992, 0.027403176, 0.004499376, 0.039195895, 0.0, 0.07291967, 0.02144581, 0.048537314, 0.07048291, 0.014821947, 0.04485947, 0.072051704, 0.015969396, 0.026899159, 0.034060776, 0.09635997, 0.01092577, 0.02821058, 0.013707519, 0.030742884, 0.0437302, 0.09437466, 0.009863496, 0.0, 0.019527853, 0.032243967, 0.034369946, 0.039993584, 0.035613358, 0.045255303, 0.08460152, 0.028727353, 0.032462, 0.0, 0.091842175, 0.07924956, 0.041177034, 0.046289027, 0.021722853, 0.038672626, 0.04358822, 0.022898257, 0.07973832, 0.02625364, 0.01004976, 0.039354324, 0.007999659, 0.01705718, 0.071900785, 0.05267155, 0.024756253, 0.016242921, 0.06328213, 0.042206883, 0.06763309, 0.031844616, 0.041641057, 0.042726934, 0.027870417] 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-26T19:44:12.448 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-26T19:44:12.448 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-26T19:44:12.450 [ Info: neardup> range: 33:48, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:12.450 [ Info: neardup> range: 49:64, current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:12.450 [ Info: neardup> range: 65:80, current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:12.450 [ Info: neardup> range: 81:96, current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:12.450 [ Info: neardup> range: 97:100, current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:12.450 [ Info: neardup> finished current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:12.450 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x0000000e, 0x0000000f, 0x00000010, 0x0000002e] D.nn = Int32[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 8, 9, 15, 15, 16, 9, 11, 9, 2, 4, 8, 11, 8, 15, 3, 11, 5, 15, 10, 16, 5, 11, 2, 5, 2, 2, 16, 11, 46, 16, 9, 9, 10, 8, 8, 9, 15, 15, 2, 15, 46, 15, 16, 8, 10, 4, 1, 9, 11, 7, 8, 14, 2, 9, 15, 15, 4, 14, 9, 11, 15, 10, 46, 46, 4, 2, 13, 14, 46, 4, 8, 2, 11, 13, 16, 15, 2, 8, 12, 8, 6, 7, 46] 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.007659316, 0.06916165, 0.053681374, 0.031594574, 0.011368275, 0.0054139495, 0.045703173, 0.03349179, 0.05199629, 0.039106548, 0.030720651, 0.035224617, 0.014646292, 0.047498345, 0.025187075, 0.014618039, 0.03040719, 0.008892417, 0.04185587, 0.021689177, 0.005567074, 0.008656979, 0.01489675, 0.031052947, 0.04526955, 0.04470992, 0.027403176, 0.004499376, 0.034778595, 0.0, 0.07291967, 0.0054653883, 0.0649513, 0.022588849, 0.0018289685, 0.009707749, 0.06793338, 0.010143518, 0.040174723, 0.034060776, 0.07293147, 0.08485317, 0.027622104, 0.013707519, 0.01096487, 0.025344968, 0.031969607, 0.009863496, 0.08094281, 0.043864727, 0.032243967, 0.013286531, 0.029609084, 0.035613358, 0.021590114, 0.067640066, 0.045846462, 0.06955409, 0.08720964, 0.07200885, 0.02821976, 0.020599425, 0.027398169, 0.021722853, 0.04839009, 0.040418684, 0.022898257, 0.034380496, 0.032379866, 0.08378887, 0.011803746, 0.031479776, 0.01705718, 0.009070516, 0.02158606, 0.024756253, 0.0145561695, 0.06328213, 0.03392154, 0.018519819, 0.058969855, 0.041641057, 0.042726934, 0.06502789] 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-26T19:44:23.621 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=687 2026-04-26T19:44:23.622 [ Info: neardup> range: 17:32, current elements: 6, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:23.628 [ Info: neardup> range: 33:48, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:23.628 [ Info: neardup> range: 49:64, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:23.628 [ Info: neardup> range: 65:80, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:23.628 [ Info: neardup> range: 81:96, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:23.629 [ Info: neardup> range: 97:100, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:23.629 [ Info: neardup> finished current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-04-26T19:44:23.629 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000006, 0x00000007, 0x00000010, 0x00000012, 0x0000002e, 0x00000041, 0x0000004b] D.nn = Int32[1, 2, 3, 1, 3, 6, 7, 7, 7, 6, 1, 1, 1, 3, 3, 16, 16, 18, 7, 3, 3, 16, 7, 3, 7, 2, 16, 7, 16, 7, 3, 3, 1, 3, 3, 6, 16, 3, 1, 2, 3, 2, 2, 16, 18, 46, 16, 7, 18, 6, 7, 18, 7, 3, 18, 2, 3, 18, 3, 16, 18, 6, 1, 1, 65, 18, 7, 7, 3, 2, 7, 3, 18, 18, 75, 7, 6, 3, 6, 46, 18, 7, 2, 18, 75, 18, 16, 18, 2, 18, 1, 16, 3, 2, 18, 1, 75, 6, 7, 18] D.dist = Float32[0.0, 0.0, 0.0, 0.057955682, 0.009292901, 0.0, 0.0, 0.01974678, 0.005447328, 0.014975131, 0.058260083, 0.0671258, 0.08581561, 0.08725244, 0.004221976, 0.0, 0.007659316, 0.0, 0.075473785, 0.048836112, 0.013202846, 0.0054139495, 0.06544542, 0.057643533, 0.075687826, 0.039106548, 0.04916054, 0.050373018, 0.032609463, 0.08090228, 0.033665597, 0.014618039, 0.05114436, 0.028707862, 0.05952871, 0.03911847, 0.005567074, 0.02382505, 0.015275538, 0.031052947, 0.054796934, 0.04470992, 0.027403176, 0.004499376, 0.039195895, 0.0, 0.07291967, 0.02144581, 0.048537314, 0.07048291, 0.014821947, 0.04485947, 0.072051704, 0.015969396, 0.026899159, 0.034060776, 0.09635997, 0.01092577, 0.02821058, 0.013707519, 0.030742884, 0.0437302, 0.09437466, 0.009863496, 0.0, 0.019527853, 0.032243967, 0.034369946, 0.039993584, 0.035613358, 0.045255303, 0.08460152, 0.028727353, 0.032462, 0.0, 0.091842175, 0.07924956, 0.041177034, 0.046289027, 0.021722853, 0.038672626, 0.04358822, 0.022898257, 0.07973832, 0.02625364, 0.01004976, 0.039354324, 0.007999659, 0.01705718, 0.071900785, 0.05267155, 0.024756253, 0.016242921, 0.06328213, 0.042206883, 0.06763309, 0.031844616, 0.041641057, 0.042726934, 0.027870417] Test Summary: | Pass Total Time neardup small block with filterblocks=false | 3 3 11.2s ExhaustiveSearch allknn: 1.608736 seconds (470.95 k allocations: 28.075 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.08390872925519943, 0.1803918555378914, 0.2201504111289978, 0.2582293376326561, 0.3645845353603363] [ Info: All KNN quartile 3-th: [ Info: 3 => [0.13688021898269653, 0.22638052701950073, 0.27136509120464325, 0.3191608637571335, 0.4115774929523468] [ Info: All KNN quartile 4-th: [ Info: 4 => [0.19392453134059906, 0.2806035652756691, 0.3148263692855835, 0.3502243161201477, 0.4877392053604126] [ Info: All KNN quartile 5-th: [ Info: 5 => [0.21065770089626312, 0.3054675981402397, 0.3442008048295975, 0.3814430981874466, 0.5376037359237671] [ Info: All KNN quartile 6-th: [ Info: 6 => [0.23910404741764069, 0.33685435354709625, 0.37096239626407623, 0.4138626679778099, 0.5534763932228088] LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-26T19:44:32.520 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] SearchGraph allknn: 4.612655 seconds (598.36 k allocations: 37.739 MiB, 99.99% compilation time) recall = 0.9633333333333333 recall > 0.8 = true recall = 0.9633333333333333 quantile(neighbors_length.(Ref(G.adj), 1:length(G)), 0:0.25:1) = [2.0, 4.0, 6.0, 8.0, 18.0] Test Summary: | Pass Total Time allknn | 3 3 24.6s LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-26T19:44:54.916 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.88543355, maxvisits=158) mem=1GB max-rss=1GB 2026-04-26T19:45:05.460 LOG n.size quantiles:[2.0, 2.0, 2.0, 2.0, 2.0] (i, j, d) = (20, 119, -1.1920929f-7) (i, j, d, :parallel) = (20, 119, -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 => 19.107433562, :exact => 1.116287482) Test Summary: | Pass Total Time closestpair | 4 4 20.7s Testing SimilaritySearch tests passed Testing completed after 549.67s PkgEval succeeded after 628.72s