[INFO] cloning repository https://github.com/benwuhua/knowhere-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/benwuhua/knowhere-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbenwuhua%2Fknowhere-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbenwuhua%2Fknowhere-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7deea22f825e605cbd71e404e20bce165df41d21
[INFO] testing benwuhua/knowhere-rs against beta-2026-03-05 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbenwuhua%2Fknowhere-rs" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/benwuhua/knowhere-rs
[INFO] finished tweaking git repo https://github.com/benwuhua/knowhere-rs
[INFO] tweaked toml for git repo https://github.com/benwuhua/knowhere-rs written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/benwuhua/knowhere-rs on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/benwuhua/knowhere-rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b44949ad8501c886e457034cc17f8d966555be3b1ffb74e70b719966216d84f7
[INFO] running `Command { std: "docker" "start" "-a" "b44949ad8501c886e457034cc17f8d966555be3b1ffb74e70b719966216d84f7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b44949ad8501c886e457034cc17f8d966555be3b1ffb74e70b719966216d84f7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b44949ad8501c886e457034cc17f8d966555be3b1ffb74e70b719966216d84f7", kill_on_drop: false }`
[INFO] [stdout] b44949ad8501c886e457034cc17f8d966555be3b1ffb74e70b719966216d84f7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9be263b1d3ccddafc85a6558c229069daa6bb157dde055e28feeaabbf58e3355
[INFO] running `Command { std: "docker" "start" "-a" "9be263b1d3ccddafc85a6558c229069daa6bb157dde055e28feeaabbf58e3355", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling knowhere-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling memmap2 v0.9.10
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/faiss/ivf_flat_cc.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let mut scan_cluster = |cluster_id: usize, acc: &mut Vec<(i64, f32)>| {
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/faiss/ivf_sq_cc.rs:291:13
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let mut scan_cluster = |cluster_id: usize, acc: &mut Vec<(i64, f32)>| {
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 59.90s
[INFO] running `Command { std: "docker" "inspect" "9be263b1d3ccddafc85a6558c229069daa6bb157dde055e28feeaabbf58e3355", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9be263b1d3ccddafc85a6558c229069daa6bb157dde055e28feeaabbf58e3355", kill_on_drop: false }`
[INFO] [stdout] 9be263b1d3ccddafc85a6558c229069daa6bb157dde055e28feeaabbf58e3355
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1872df2e3d61585c2673f6435b37898b930ed04c6acd7da3d2e801a92353b892
[INFO] running `Command { std: "docker" "start" "-a" "1872df2e3d61585c2673f6435b37898b930ed04c6acd7da3d2e801a92353b892", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling zerocopy-derive v0.8.39
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling hdrhistogram v7.5.4
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling knowhere-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/faiss/ivf_flat_cc.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let mut scan_cluster = |cluster_id: usize, acc: &mut Vec<(i64, f32)>| {
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/faiss/ivf_sq_cc.rs:291:13
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let mut scan_cluster = |cluster_id: usize, acc: &mut Vec<(i64, f32)>| {
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/atomic_utils.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     use std::thread;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[ignore]` attribute cannot be used on macro calls
[INFO] [stdout]    --> src/faiss/mem_index.rs:939:9
[INFO] [stdout]     |
[INFO] [stdout] 939 |         #[ignore]
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = help: `#[ignore]` can only be applied to functions
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Predicate`
[INFO] [stdout]    --> src/faiss/mem_index.rs:945:40
[INFO] [stdout]     |
[INFO] [stdout] 945 |         use crate::api::{IdsPredicate, Predicate};
[INFO] [stdout]     |                                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexParams`, `IndexType`, and `MetricType`
[INFO] [stdout]    --> src/faiss/sparse_inverted_cc.rs:507:22
[INFO] [stdout]     |
[INFO] [stdout] 507 |     use crate::api::{IndexParams, IndexType, MetricType};
[INFO] [stdout]     |                      ^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dataset::Dataset`
[INFO] [stdout]    --> src/index.rs:385:9
[INFO] [stdout]     |
[INFO] [stdout] 385 |     use crate::dataset::Dataset;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `faiss::hnsw_build::tests::test_hnsw_add_multiple`: Use hnsw.rs instead
[INFO] [stdout]    --> src/faiss/hnsw_build.rs:330:5
[INFO] [stdout]     |
[INFO] [stdout] 330 | /     fn test_hnsw_add_multiple() {
[INFO] [stdout] 331 | |         let mut hnsw = HnswIndex::new(4, 2, 10);
[INFO] [stdout] 332 | |
[INFO] [stdout] 333 | |         hnsw.add(&[1.0, 0.0, 0.0, 0.0]);
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         assert_eq!(hnsw.num_vectors(), 3);
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `faiss::hnsw_build::tests::test_hnsw_add_single`: Use hnsw.rs instead
[INFO] [stdout]    --> src/faiss/hnsw_build.rs:321:5
[INFO] [stdout]     |
[INFO] [stdout] 321 | /     fn test_hnsw_add_single() {
[INFO] [stdout] 322 | |         let mut hnsw = HnswIndex::new(4, 2, 10);
[INFO] [stdout] 323 | |         let v = vec![1.0, 2.0, 3.0, 4.0];
[INFO] [stdout] 324 | |         let id = hnsw.add(&v);
[INFO] [stdout] 325 | |         assert_eq!(id, 0);
[INFO] [stdout] 326 | |         assert_eq!(hnsw.num_vectors(), 1);
[INFO] [stdout] 327 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `faiss::hnsw_build::tests::test_hnsw_new`: Use hnsw.rs instead
[INFO] [stdout]    --> src/faiss/hnsw_build.rs:314:5
[INFO] [stdout]     |
[INFO] [stdout] 314 | /     fn test_hnsw_new() {
[INFO] [stdout] 315 | |         let hnsw = HnswIndex::new(128, 16, 200);
[INFO] [stdout] 316 | |         assert_eq!(hnsw.dim, 128);
[INFO] [stdout] 317 | |         assert_eq!(hnsw.m, 16);
[INFO] [stdout] 318 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `faiss::hnsw_build::tests::test_hnsw_search`: Use hnsw.rs instead
[INFO] [stdout]    --> src/faiss/hnsw_build.rs:341:5
[INFO] [stdout]     |
[INFO] [stdout] 341 | /     fn test_hnsw_search() {
[INFO] [stdout] 342 | |         let mut hnsw = HnswIndex::new(4, 2, 10);
[INFO] [stdout] ...   |
[INFO] [stdout] 355 | |         assert!(results[0].0 < 3);
[INFO] [stdout] 356 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `faiss::hnsw_complete::tests::test_hnsw_add`: Use hnsw.rs instead
[INFO] [stdout]    --> src/faiss/hnsw_complete.rs:461:5
[INFO] [stdout]     |
[INFO] [stdout] 461 | /     fn test_hnsw_add() {
[INFO] [stdout] 462 | |         let mut hnsw = HnswIndex::new(4);
[INFO] [stdout] 463 | |         hnsw.m = 2;
[INFO] [stdout] ...   |
[INFO] [stdout] 468 | |         assert_eq!(hnsw.len(), 2);
[INFO] [stdout] 469 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `faiss::hnsw_complete::tests::test_hnsw_batch`: Use hnsw.rs instead
[INFO] [stdout]    --> src/faiss/hnsw_complete.rs:503:5
[INFO] [stdout]     |
[INFO] [stdout] 503 | /     fn test_hnsw_batch() {
[INFO] [stdout] 504 | |         let mut hnsw = HnswIndex::new(4);
[INFO] [stdout] 505 | |         hnsw.m = 2;
[INFO] [stdout] ...   |
[INFO] [stdout] 511 | |         assert_eq!(hnsw.len(), 3);
[INFO] [stdout] 512 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `faiss::hnsw_complete::tests::test_hnsw_new`: Use hnsw.rs instead
[INFO] [stdout]    --> src/faiss/hnsw_complete.rs:455:5
[INFO] [stdout]     |
[INFO] [stdout] 455 | /     fn test_hnsw_new() {
[INFO] [stdout] 456 | |         let hnsw = HnswIndex::new(128);
[INFO] [stdout] 457 | |         assert_eq!(hnsw.dim, 128);
[INFO] [stdout] 458 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `faiss::hnsw_complete::tests::test_hnsw_search`: Use hnsw.rs instead
[INFO] [stdout]    --> src/faiss/hnsw_complete.rs:472:5
[INFO] [stdout]     |
[INFO] [stdout] 472 | /     fn test_hnsw_search() {
[INFO] [stdout] 473 | |         let mut hnsw = HnswIndex::new(4);
[INFO] [stdout] 474 | |         hnsw.m = 2;
[INFO] [stdout] 475 | |         hnsw.ef_search = 10;
[INFO] [stdout] ...   |
[INFO] [stdout] 483 | |         assert!(!results.is_empty());
[INFO] [stdout] 484 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `faiss::hnsw_complete::tests::test_hnsw_serialize`: Use hnsw.rs instead
[INFO] [stdout]    --> src/faiss/hnsw_complete.rs:487:5
[INFO] [stdout]     |
[INFO] [stdout] 487 | /     fn test_hnsw_serialize() {
[INFO] [stdout] 488 | |         let mut hnsw = HnswIndex::new(4);
[INFO] [stdout] 489 | |         hnsw.m = 2;
[INFO] [stdout] ...   |
[INFO] [stdout] 499 | |         assert_eq!(hnsw2.len(), 2);
[INFO] [stdout] 500 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `faiss::hnsw_search::tests::test_search_empty`: Use hnsw.rs instead
[INFO] [stdout]    --> src/faiss/hnsw_search.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 | /     fn test_search_empty() {
[INFO] [stdout] 144 | |         let s = HnswSearcher::new(10);
[INFO] [stdout] 145 | |         let result = s.search(&[0.0; 4], &[], &[], 4, 3);
[INFO] [stdout] 146 | |         assert!(result.is_empty());
[INFO] [stdout] 147 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `faiss::hnsw_search::tests::test_search_single_node`: Use hnsw.rs instead
[INFO] [stdout]    --> src/faiss/hnsw_search.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 | /     fn test_search_single_node() {
[INFO] [stdout] 151 | |         let s = HnswSearcher::new(10);
[INFO] [stdout] 152 | |         let vectors = vec![1.0, 2.0, 3.0, 4.0];
[INFO] [stdout] 153 | |         let graph = vec![vec![]; 1];
[INFO] [stdout] ...   |
[INFO] [stdout] 156 | |         assert!(!result.is_empty());
[INFO] [stdout] 157 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `faiss::hnsw_search::tests::test_searcher_creation`: Use hnsw.rs instead
[INFO] [stdout]    --> src/faiss/hnsw_search.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | /     fn test_searcher_creation() {
[INFO] [stdout] 138 | |         let s = HnswSearcher::new(50);
[INFO] [stdout] 139 | |         assert_eq!(s.ef_search, 50);
[INFO] [stdout] 140 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `assignment`
[INFO] [stdout]    --> src/clustering/kmeans_pp.rs:595:17
[INFO] [stdout]     |
[INFO] [stdout] 595 |             let assignment = result.assignments[i];
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_assignment`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/clustering/mini_batch_kmeans.rs:358:13
[INFO] [stdout]     |
[INFO] [stdout] 358 |         let mut mbkm = MiniBatchKMeans::with_config(10, 64, config);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/dataset/binary_dataset.rs:182:13
[INFO] [stdout]     |
[INFO] [stdout] 182 |         let mut dataset = BinaryDataset::from_vectors(vectors, 16);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reader`
[INFO] [stdout]   --> src/disk_io.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let reader = SyncReader;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dist`
[INFO] [stdout]     --> src/faiss/diskann.rs:1147:29
[INFO] [stdout]      |
[INFO] [stdout] 1147 |         while let Some((id, dist)) = iter.next() {
[INFO] [stdout]      |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_dist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/faiss/ivf_flat_cc.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let mut scan_cluster = |cluster_id: usize, acc: &mut Vec<(i64, f32)>| {
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/faiss/ivf_sq_cc.rs:291:13
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let mut scan_cluster = |cluster_id: usize, acc: &mut Vec<(i64, f32)>| {
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `distances`
[INFO] [stdout]    --> src/faiss/mem_index.rs:934:19
[INFO] [stdout]     |
[INFO] [stdout] 934 |         let (ids, distances) = index.range_search(&query, -0.5).unwrap();
[INFO] [stdout]     |                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distances`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:3970:28
[INFO] [stdout]      |
[INFO] [stdout] 3970 |         let initial_size = unsafe { knowhere_get_index_size(index) };
[INFO] [stdout]      |                            ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:3983:26
[INFO] [stdout]      |
[INFO] [stdout] 3983 |         let size_after = unsafe { knowhere_get_index_size(index) };
[INFO] [stdout]      |                          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:3987:24
[INFO] [stdout]      |
[INFO] [stdout] 3987 |         let type_ptr = unsafe { knowhere_get_index_type(index) };
[INFO] [stdout]      |                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:3995:26
[INFO] [stdout]      |
[INFO] [stdout] 3995 |         let metric_ptr = unsafe { knowhere_get_index_metric(index) };
[INFO] [stdout]      |                          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:4020:24
[INFO] [stdout]      |
[INFO] [stdout] 4020 |         let type_ptr = unsafe { knowhere_get_index_type(index) };
[INFO] [stdout]      |                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:4028:26
[INFO] [stdout]      |
[INFO] [stdout] 4028 |         let metric_ptr = unsafe { knowhere_get_index_metric(index) };
[INFO] [stdout]      |                          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:4036:20
[INFO] [stdout]      |
[INFO] [stdout] 4036 |         let size = unsafe { knowhere_get_index_size(index) };
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]     --> src/ffi.rs:4036:13
[INFO] [stdout]      |
[INFO] [stdout] 4036 |         let size = unsafe { knowhere_get_index_size(index) };
[INFO] [stdout]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:4084:20
[INFO] [stdout]      |
[INFO] [stdout] 4084 |         let size = unsafe { knowhere_get_index_size(std::ptr::null()) };
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:4087:24
[INFO] [stdout]      |
[INFO] [stdout] 4087 |         let type_ptr = unsafe { knowhere_get_index_type(std::ptr::null()) };
[INFO] [stdout]      |                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:4094:26
[INFO] [stdout]      |
[INFO] [stdout] 4094 |         let metric_ptr = unsafe { knowhere_get_index_metric(std::ptr::null()) };
[INFO] [stdout]      |                          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5067:9
[INFO] [stdout]      |
[INFO] [stdout] 5067 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5112:9
[INFO] [stdout]      |
[INFO] [stdout] 5112 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5231:21
[INFO] [stdout]      |
[INFO] [stdout] 5231 |         let count = unsafe { knowhere_bitset_count(bitset) };
[INFO] [stdout]      |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5235:9
[INFO] [stdout]      |
[INFO] [stdout] 5235 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5242:21
[INFO] [stdout]      |
[INFO] [stdout] 5242 |         let count = unsafe { knowhere_bitset_count(bitset) };
[INFO] [stdout]      |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5246:17
[INFO] [stdout]      |
[INFO] [stdout] 5246 |         assert!(unsafe { knowhere_bitset_get(bitset, 5) });
[INFO] [stdout]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5247:17
[INFO] [stdout]      |
[INFO] [stdout] 5247 |         assert!(unsafe { knowhere_bitset_get(bitset, 10) });
[INFO] [stdout]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5248:17
[INFO] [stdout]      |
[INFO] [stdout] 5248 |         assert!(unsafe { knowhere_bitset_get(bitset, 50) });
[INFO] [stdout]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5249:18
[INFO] [stdout]      |
[INFO] [stdout] 5249 |         assert!(!unsafe { knowhere_bitset_get(bitset, 0) });
[INFO] [stdout]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5250:18
[INFO] [stdout]      |
[INFO] [stdout] 5250 |         assert!(!unsafe { knowhere_bitset_get(bitset, 7) });
[INFO] [stdout]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5279:9
[INFO] [stdout]      |
[INFO] [stdout] 5279 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5334:9
[INFO] [stdout]      |
[INFO] [stdout] 5334 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5340:9
[INFO] [stdout]      |
[INFO] [stdout] 5340 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5346:9
[INFO] [stdout]      |
[INFO] [stdout] 5346 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5352:9
[INFO] [stdout]      |
[INFO] [stdout] 5352 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5358:9
[INFO] [stdout]      |
[INFO] [stdout] 5358 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5364:9
[INFO] [stdout]      |
[INFO] [stdout] 5364 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5375:20
[INFO] [stdout]      |
[INFO] [stdout] 5375 |         let data = unsafe { knowhere_bitset_data(bitset) };
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5398:9
[INFO] [stdout]      |
[INFO] [stdout] 5398 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5409:20
[INFO] [stdout]      |
[INFO] [stdout] 5409 |         assert_eq!(unsafe { knowhere_bitset_count(bitset) }, 0);
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5412:9
[INFO] [stdout]      |
[INFO] [stdout] 5412 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5418:20
[INFO] [stdout]      |
[INFO] [stdout] 5418 |         assert_eq!(unsafe { knowhere_bitset_count(bitset) }, 3);
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5429:18
[INFO] [stdout]      |
[INFO] [stdout] 5429 |         assert!(!unsafe { knowhere_bitset_test(bitset, 0) });
[INFO] [stdout]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5430:18
[INFO] [stdout]      |
[INFO] [stdout] 5430 |         assert!(!unsafe { knowhere_bitset_test(bitset, 50) });
[INFO] [stdout]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5433:9
[INFO] [stdout]      |
[INFO] [stdout] 5433 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5438:17
[INFO] [stdout]      |
[INFO] [stdout] 5438 |         assert!(unsafe { knowhere_bitset_test(bitset, 5) });
[INFO] [stdout]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5439:17
[INFO] [stdout]      |
[INFO] [stdout] 5439 |         assert!(unsafe { knowhere_bitset_test(bitset, 10) });
[INFO] [stdout]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5440:18
[INFO] [stdout]      |
[INFO] [stdout] 5440 |         assert!(!unsafe { knowhere_bitset_test(bitset, 0) });
[INFO] [stdout]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5441:18
[INFO] [stdout]      |
[INFO] [stdout] 5441 |         assert!(!unsafe { knowhere_bitset_test(bitset, 50) });
[INFO] [stdout]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5444:17
[INFO] [stdout]      |
[INFO] [stdout] 5444 |         assert!(unsafe { knowhere_bitset_test(bitset, 100) });
[INFO] [stdout]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5455:20
[INFO] [stdout]      |
[INFO] [stdout] 5455 |         assert_eq!(unsafe { knowhere_bitset_filter_ratio(bitset) }, 0.0);
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5458:9
[INFO] [stdout]      |
[INFO] [stdout] 5458 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5464:20
[INFO] [stdout]      |
[INFO] [stdout] 5464 |         assert_eq!(unsafe { knowhere_bitset_filter_ratio(bitset) }, 1.0);
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5467:9
[INFO] [stdout]      |
[INFO] [stdout] 5467 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5476:21
[INFO] [stdout]      |
[INFO] [stdout] 5476 |         let ratio = unsafe { knowhere_bitset_filter_ratio(bitset) };
[INFO] [stdout]      |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5488:20
[INFO] [stdout]      |
[INFO] [stdout] 5488 |         assert_eq!(unsafe { knowhere_bitset_get_first_valid_index(bitset) }, 0);
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5491:9
[INFO] [stdout]      |
[INFO] [stdout] 5491 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5497:20
[INFO] [stdout]      |
[INFO] [stdout] 5497 |         assert_eq!(unsafe { knowhere_bitset_get_first_valid_index(bitset) }, 3);
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5507:20
[INFO] [stdout]      |
[INFO] [stdout] 5507 |         assert_eq!(unsafe { knowhere_bitset_size(bitset) }, 100);
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5517:18
[INFO] [stdout]      |
[INFO] [stdout] 5517 |         assert!(!unsafe { knowhere_bitset_empty(non_empty) });
[INFO] [stdout]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5520:17
[INFO] [stdout]      |
[INFO] [stdout] 5520 |         assert!(unsafe { knowhere_bitset_empty(std::ptr::null()) });
[INFO] [stdout]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5531:18
[INFO] [stdout]      |
[INFO] [stdout] 5531 |         assert!(!unsafe { knowhere_bitset_has_out_ids(bitset) });
[INFO] [stdout]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5544:9
[INFO] [stdout]      |
[INFO] [stdout] 5544 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5551:9
[INFO] [stdout]      |
[INFO] [stdout] 5551 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5558:22
[INFO] [stdout]      |
[INFO] [stdout] 5558 |         let result = unsafe { knowhere_bitset_or(a, b) };
[INFO] [stdout]      |                      ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5562:9
[INFO] [stdout]      |
[INFO] [stdout] 5562 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5572:20
[INFO] [stdout]      |
[INFO] [stdout] 5572 |         assert_eq!(unsafe { knowhere_bitset_count(result) }, 5);
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5574:9
[INFO] [stdout]      |
[INFO] [stdout] 5574 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5589:9
[INFO] [stdout]      |
[INFO] [stdout] 5589 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5597:9
[INFO] [stdout]      |
[INFO] [stdout] 5597 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5605:22
[INFO] [stdout]      |
[INFO] [stdout] 5605 |         let result = unsafe { knowhere_bitset_and(a, b) };
[INFO] [stdout]      |                      ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5609:9
[INFO] [stdout]      |
[INFO] [stdout] 5609 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5619:20
[INFO] [stdout]      |
[INFO] [stdout] 5619 |         assert_eq!(unsafe { knowhere_bitset_count(result) }, 2);
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5621:9
[INFO] [stdout]      |
[INFO] [stdout] 5621 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5636:9
[INFO] [stdout]      |
[INFO] [stdout] 5636 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5644:9
[INFO] [stdout]      |
[INFO] [stdout] 5644 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5652:22
[INFO] [stdout]      |
[INFO] [stdout] 5652 |         let result = unsafe { knowhere_bitset_xor(a, b) };
[INFO] [stdout]      |                      ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5656:9
[INFO] [stdout]      |
[INFO] [stdout] 5656 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5666:20
[INFO] [stdout]      |
[INFO] [stdout] 5666 |         assert_eq!(unsafe { knowhere_bitset_count(result) }, 4);
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5668:9
[INFO] [stdout]      |
[INFO] [stdout] 5668 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5684:9
[INFO] [stdout]      |
[INFO] [stdout] 5684 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5690:9
[INFO] [stdout]      |
[INFO] [stdout] 5690 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5696:22
[INFO] [stdout]      |
[INFO] [stdout] 5696 |         let result = unsafe { knowhere_bitset_or(a, b) };
[INFO] [stdout]      |                      ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5700:20
[INFO] [stdout]      |
[INFO] [stdout] 5700 |         assert_eq!(unsafe { knowhere_bitset_size(result) }, 100);
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5703:9
[INFO] [stdout]      |
[INFO] [stdout] 5703 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5710:9
[INFO] [stdout]      |
[INFO] [stdout] 5710 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5724:9
[INFO] [stdout]      |
[INFO] [stdout] 5724 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5730:22
[INFO] [stdout]      |
[INFO] [stdout] 5730 |         let result = unsafe { knowhere_bitset_and(a, b) };
[INFO] [stdout]      |                      ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5734:20
[INFO] [stdout]      |
[INFO] [stdout] 5734 |         assert_eq!(unsafe { knowhere_bitset_count(result) }, 0);
[INFO] [stdout]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5736:9
[INFO] [stdout]      |
[INFO] [stdout] 5736 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5748:25
[INFO] [stdout]      |
[INFO] [stdout] 5748 |         let result_or = unsafe { knowhere_bitset_or(a, std::ptr::null()) };
[INFO] [stdout]      |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5751:26
[INFO] [stdout]      |
[INFO] [stdout] 5751 |         let result_and = unsafe { knowhere_bitset_and(std::ptr::null(), a) };
[INFO] [stdout]      |                          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/ffi.rs:5754:26
[INFO] [stdout]      |
[INFO] [stdout] 5754 |         let result_xor = unsafe { knowhere_bitset_xor(a, std::ptr::null()) };
[INFO] [stdout]      |                          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dists`
[INFO] [stdout]   --> examples/interrupt_example.rs:73:18
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Ok((ids, dists)) => println!("   Search found {} results", ids.len()),
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_dists`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> examples/bench_kmeans_pp.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |             for j in 0..dim {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> examples/bench_kmeans_pp.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let n = kmeans.train(vectors);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter_pp`
[INFO] [stdout]    --> examples/bench_kmeans_pp.rs:101:26
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let (inertia_pp, iter_pp, time_pp) = benchmark_kmeans_pp(&vectors, k, dim);
[INFO] [stdout]     |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iter_pp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `knowhere_rs::dataset::Dataset`
[INFO] [stdout]   --> tests/bench_hnsw_parallel.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use knowhere_rs::dataset::Dataset;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `knowhere_rs::index::Index`
[INFO] [stdout]   --> tests/bench_hnsw_parallel.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use knowhere_rs::index::Index;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> tests/bench_hnsw_parallel.rs:477:9
[INFO] [stdout]     |
[INFO] [stdout] 477 |     let index = HnswIndex::new(&config).unwrap();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `knowhere_rs::dataset::Dataset`
[INFO] [stdout]  --> tests/opt023_hnsw_simd_search.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use knowhere_rs::dataset::Dataset;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `knowhere_rs::index::Index`
[INFO] [stdout]  --> tests/opt023_hnsw_simd_search.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use knowhere_rs::index::Index;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `recall_ok`
[INFO] [stdout]    --> tests/opt013_test.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |     let recall_ok = recall_at_1 >= 0.95 && recall_at_10 >= 0.95;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_recall_ok`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `num_query` is never used
[INFO] [stdout]   --> tests/bench_compare.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl UnifiedDataset {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn num_query(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SearchRequest`
[INFO] [stdout]   --> tests/opt015_hnsw_build.rs:13:73
[INFO] [stdout]    |
[INFO] [stdout] 13 | use knowhere_rs::api::{IndexConfig, IndexParams, IndexType, MetricType, SearchRequest};
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nlist`, `nprobe`, `kmeans_type`, and `search_time_ms` are never read
[INFO] [stdout]    --> tests/bench_ivf_flat_params.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 116 | struct BenchmarkResult {
[INFO] [stdout]     |        --------------- fields in this struct
[INFO] [stdout] 117 |     name: String,
[INFO] [stdout] 118 |     nlist: usize,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 119 |     nprobe: usize,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 120 |     kmeans_type: String,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     search_time_ms: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BenchmarkResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `params` is never read
[INFO] [stdout]   --> tests/bench_hnsw_cpp_compare.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | struct HnswResult {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 80 |     params: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> tests/bench_quantization_accuracy.rs:264:29
[INFO] [stdout]     |
[INFO] [stdout] 264 |     let compression_ratio = (32.0 / nbits as f32); // 相对于 float32
[INFO] [stdout]     |                             ^                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 264 -     let compression_ratio = (32.0 / nbits as f32); // 相对于 float32
[INFO] [stdout] 264 +     let compression_ratio = 32.0 / nbits as f32; // 相对于 float32
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `knowhere_rs::index::Index`
[INFO] [stdout]  --> tests/test_hnsw_high_params.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use knowhere_rs::index::Index;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hnsw_ids`
[INFO] [stdout]    --> tests/debug_hnsw_recall.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let hnsw_ids: HashSet<i64> = hnsw.iter().map(|&(id, _)| id).collect();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hnsw_ids`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rank`
[INFO] [stdout]    --> tests/debug_hnsw_recall.rs:174:14
[INFO] [stdout]     |
[INFO] [stdout] 174 |         for (rank, &(id, dist)) in hnsw.iter().enumerate().take(3) {
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> tests/test_scann_index_trait.rs:100:21
[INFO] [stdout]     |
[INFO] [stdout] 100 |     while let Some((id, distance)) = iter.next() {
[INFO] [stdout]     |                     ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `results`
[INFO] [stdout]    --> tests/bench_hnsw_params.rs:454:28
[INFO] [stdout]     |
[INFO] [stdout] 454 | fn provide_recommendations(results: &[HnswParamResult], analyses: &[ParamAnalysis]) {
[INFO] [stdout]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_results`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HnswParams` is never constructed
[INFO] [stdout]   --> tests/bench_hnsw_params.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct HnswParams {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `knowhere_rs::benchmark::average_recall_at_k`
[INFO] [stdout]   --> tests/bench_hnsw_shuffle.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use knowhere_rs::benchmark::average_recall_at_k;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `curr_idx`
[INFO] [stdout]   --> tests/debug_graph_connectivity.rs:24:20
[INFO] [stdout]    |
[INFO] [stdout] 24 |     while let Some(curr_idx) = queue.pop_front() {
[INFO] [stdout]    |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_idx`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stats`
[INFO] [stdout]   --> tests/debug_graph_connectivity.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let stats = index.get_graph_stats();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layer_dist`
[INFO] [stdout]   --> tests/debug_graph_connectivity.rs:74:25
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let (max_layer, layer_dist, avg_neighbors) = index.get_graph_stats();
[INFO] [stdout]    |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layer_dist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_reachable_nodes` is never used
[INFO] [stdout]   --> tests/debug_graph_connectivity.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn count_reachable_nodes(index: &HnswIndex, start_idx: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `knowhere_rs::index::Index`
[INFO] [stdout]  --> tests/debug_hnsw_count.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use knowhere_rs::index::Index;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `runs` is never read
[INFO] [stdout]   --> tests/bench_ivf_flat_perf.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct ScaleSummary {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] 31 |     nbase: usize,
[INFO] [stdout] 32 |     runs: Vec<RunResult>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScaleSummary` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SearchRequest`
[INFO] [stdout]  --> tests/test_ivf_index_trait.rs:6:73
[INFO] [stdout]   |
[INFO] [stdout] 6 | use knowhere_rs::api::{IndexConfig, IndexParams, IndexType, MetricType, SearchRequest};
[INFO] [stdout]   |                                                                         ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DataType`
[INFO] [stdout]  --> tests/verify_pattern_recall.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 | use knowhere_rs::api::{DataType, IndexConfig, IndexParams, IndexType, SearchRequest};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nbase`
[INFO] [stdout]   --> tests/verify_pattern_recall.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn test_recall(name: &str, nbase: usize, data: &[f32], queries: &[f32]) {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_nbase`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompareResult` is never constructed
[INFO] [stdout]   --> tests/bench_rust_vs_cpp_hnsw.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct CompareResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]   --> tests/bench_real_dataset_params.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::env;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ground_truth_count` is assigned to, but never used
[INFO] [stdout]    --> tests/opt016_dynamic_ef.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let mut ground_truth_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_ground_truth_count` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_file`
[INFO] [stdout]    --> tests/bench_real_dataset_params.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 187 |     let base_file = format!("{}/base.fvecs", base_path);
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_file`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query_file`
[INFO] [stdout]    --> tests/bench_real_dataset_params.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |     let query_file = format!("{}/query.fvecs", base_path);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_query_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ground_truth_count` is never read
[INFO] [stdout]    --> tests/opt016_dynamic_ef.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |         ground_truth_count += distances.len().min(100);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gt_file`
[INFO] [stdout]    --> tests/bench_real_dataset_params.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 189 |     let gt_file = format!("{}/groundtruth.ivecs", base_path);
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gt_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ground_truth`
[INFO] [stdout]    --> tests/bench_real_dataset_params.rs:432:23
[INFO] [stdout]     |
[INFO] [stdout] 432 |     let (base, query, ground_truth) =
[INFO] [stdout]     |                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ground_truth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HnswParams` is never constructed
[INFO] [stdout]   --> tests/bench_real_dataset_params.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct HnswParams {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_ground_truth` is never used
[INFO] [stdout]   --> tests/bench_real_dataset_params.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn compute_ground_truth(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `l2_distance_squared` is never used
[INFO] [stdout]   --> tests/bench_real_dataset_params.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn l2_distance_squared(a: &[f32], b: &[f32]) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 12s
[INFO] running `Command { std: "docker" "inspect" "1872df2e3d61585c2673f6435b37898b930ed04c6acd7da3d2e801a92353b892", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1872df2e3d61585c2673f6435b37898b930ed04c6acd7da3d2e801a92353b892", kill_on_drop: false }`
[INFO] [stdout] 1872df2e3d61585c2673f6435b37898b930ed04c6acd7da3d2e801a92353b892
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 103913b7ea9425e6e361fed02c38fcbe3849f55d83c493b16ba967779f8af224
[INFO] running `Command { std: "docker" "start" "-a" "103913b7ea9425e6e361fed02c38fcbe3849f55d83c493b16ba967779f8af224", kill_on_drop: false }`
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/faiss/ivf_flat_cc.rs:236:13
[INFO] [stderr]     |
[INFO] [stderr] 236 |         let mut scan_cluster = |cluster_id: usize, acc: &mut Vec<(i64, f32)>| {
[INFO] [stderr]     |             ----^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/faiss/ivf_sq_cc.rs:291:13
[INFO] [stderr]     |
[INFO] [stderr] 291 |         let mut scan_cluster = |cluster_id: usize, acc: &mut Vec<(i64, f32)>| {
[INFO] [stderr]     |             ----^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: `knowhere-rs` (lib) generated 2 warnings (run `cargo fix --lib -p knowhere-rs` to apply 2 suggestions)
[INFO] [stderr] warning: unused variable: `results`
[INFO] [stderr]    --> tests/bench_hnsw_params.rs:454:28
[INFO] [stderr]     |
[INFO] [stderr] 454 | fn provide_recommendations(results: &[HnswParamResult], analyses: &[ParamAnalysis]) {
[INFO] [stderr]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_results`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HnswParams` is never constructed
[INFO] [stderr]   --> tests/bench_hnsw_params.rs:28:8
[INFO] [stderr]    |
[INFO] [stderr] 28 | struct HnswParams {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CompareResult` is never constructed
[INFO] [stderr]   --> tests/bench_rust_vs_cpp_hnsw.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | struct CompareResult {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `knowhere_rs::dataset::Dataset`
[INFO] [stderr]   --> tests/bench_hnsw_parallel.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use knowhere_rs::dataset::Dataset;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `knowhere_rs::index::Index`
[INFO] [stderr]   --> tests/bench_hnsw_parallel.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use knowhere_rs::index::Index;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]    --> tests/bench_hnsw_parallel.rs:477:9
[INFO] [stderr]     |
[INFO] [stderr] 477 |     let index = HnswIndex::new(&config).unwrap();
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `knowhere-rs` (test "bench_hnsw_params") generated 2 warnings (run `cargo fix --test "bench_hnsw_params" -p knowhere-rs` to apply 1 suggestion)
[INFO] [stderr] warning: `knowhere-rs` (test "bench_rust_vs_cpp_hnsw") generated 1 warning
[INFO] [stderr] warning: `knowhere-rs` (test "bench_hnsw_parallel") generated 3 warnings (run `cargo fix --test "bench_hnsw_parallel" -p knowhere-rs` to apply 2 suggestions)
[INFO] [stderr] warning: unused variable: `id`
[INFO] [stderr]    --> tests/test_scann_index_trait.rs:100:21
[INFO] [stderr]     |
[INFO] [stderr] 100 |     while let Some((id, distance)) = iter.next() {
[INFO] [stderr]     |                     ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `knowhere_rs::dataset::Dataset`
[INFO] [stderr]  --> tests/opt023_hnsw_simd_search.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use knowhere_rs::dataset::Dataset;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `knowhere_rs::index::Index`
[INFO] [stderr]  --> tests/opt023_hnsw_simd_search.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use knowhere_rs::index::Index;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `knowhere-rs` (test "test_scann_index_trait") generated 1 warning (run `cargo fix --test "test_scann_index_trait" -p knowhere-rs` to apply 1 suggestion)
[INFO] [stderr] warning: `knowhere-rs` (test "opt023_hnsw_simd_search") generated 2 warnings (run `cargo fix --test "opt023_hnsw_simd_search" -p knowhere-rs` to apply 1 suggestion)
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]   --> examples/bench_kmeans_pp.rs:15:17
[INFO] [stderr]    |
[INFO] [stderr] 15 |             for j in 0..dim {
[INFO] [stderr]    |                 ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]   --> examples/bench_kmeans_pp.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 44 |     let n = kmeans.train(vectors);
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `iter_pp`
[INFO] [stderr]    --> examples/bench_kmeans_pp.rs:101:26
[INFO] [stderr]     |
[INFO] [stderr] 101 |         let (inertia_pp, iter_pp, time_pp) = benchmark_kmeans_pp(&vectors, k, dim);
[INFO] [stderr]     |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iter_pp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::env`
[INFO] [stderr]   --> tests/bench_real_dataset_params.rs:23:5
[INFO] [stderr]    |
[INFO] [stderr] 23 | use std::env;
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `base_file`
[INFO] [stderr]    --> tests/bench_real_dataset_params.rs:187:9
[INFO] [stderr]     |
[INFO] [stderr] 187 |     let base_file = format!("{}/base.fvecs", base_path);
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_file`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `query_file`
[INFO] [stderr]    --> tests/bench_real_dataset_params.rs:188:9
[INFO] [stderr]     |
[INFO] [stderr] 188 |     let query_file = format!("{}/query.fvecs", base_path);
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_query_file`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `gt_file`
[INFO] [stderr]    --> tests/bench_real_dataset_params.rs:189:9
[INFO] [stderr]     |
[INFO] [stderr] 189 |     let gt_file = format!("{}/groundtruth.ivecs", base_path);
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gt_file`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ground_truth`
[INFO] [stderr]    --> tests/bench_real_dataset_params.rs:432:23
[INFO] [stderr]     |
[INFO] [stderr] 432 |     let (base, query, ground_truth) =
[INFO] [stderr]     |                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ground_truth`
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HnswParams` is never constructed
[INFO] [stderr]   --> tests/bench_real_dataset_params.rs:30:8
[INFO] [stderr]    |
[INFO] [stderr] 30 | struct HnswParams {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `compute_ground_truth` is never used
[INFO] [stderr]   --> tests/bench_real_dataset_params.rs:53:4
[INFO] [stderr]    |
[INFO] [stderr] 53 | fn compute_ground_truth(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `l2_distance_squared` is never used
[INFO] [stderr]   --> tests/bench_real_dataset_params.rs:85:4
[INFO] [stderr]    |
[INFO] [stderr] 85 | fn l2_distance_squared(a: &[f32], b: &[f32]) -> f32 {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hnsw_ids`
[INFO] [stderr]    --> tests/debug_hnsw_recall.rs:163:13
[INFO] [stderr]     |
[INFO] [stderr] 163 |         let hnsw_ids: HashSet<i64> = hnsw.iter().map(|&(id, _)| id).collect();
[INFO] [stderr]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hnsw_ids`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rank`
[INFO] [stderr]    --> tests/debug_hnsw_recall.rs:174:14
[INFO] [stderr]     |
[INFO] [stderr] 174 |         for (rank, &(id, dist)) in hnsw.iter().enumerate().take(3) {
[INFO] [stderr]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `knowhere_rs::index::Index`
[INFO] [stderr]  --> tests/test_hnsw_high_params.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use knowhere_rs::index::Index;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `knowhere-rs` (example "bench_kmeans_pp") generated 3 warnings (run `cargo fix --example "bench_kmeans_pp" -p knowhere-rs` to apply 3 suggestions)
[INFO] [stderr] warning: `knowhere-rs` (test "bench_real_dataset_params") generated 8 warnings (run `cargo fix --test "bench_real_dataset_params" -p knowhere-rs` to apply 5 suggestions)
[INFO] [stderr] warning: `knowhere-rs` (test "debug_hnsw_recall") generated 2 warnings (run `cargo fix --test "debug_hnsw_recall" -p knowhere-rs` to apply 2 suggestions)
[INFO] [stderr] warning: `knowhere-rs` (test "test_hnsw_high_params") generated 1 warning
[INFO] [stderr] warning: unused variable: `curr_idx`
[INFO] [stderr]   --> tests/debug_graph_connectivity.rs:24:20
[INFO] [stderr]    |
[INFO] [stderr] 24 |     while let Some(curr_idx) = queue.pop_front() {
[INFO] [stderr]    |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_idx`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stats`
[INFO] [stderr]   --> tests/debug_graph_connectivity.rs:26:13
[INFO] [stderr]    |
[INFO] [stderr] 26 |         let stats = index.get_graph_stats();
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_stats`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `layer_dist`
[INFO] [stderr]   --> tests/debug_graph_connectivity.rs:74:25
[INFO] [stderr]    |
[INFO] [stderr] 74 |         let (max_layer, layer_dist, avg_neighbors) = index.get_graph_stats();
[INFO] [stderr]    |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layer_dist`
[INFO] [stderr] 
[INFO] [stderr] warning: function `count_reachable_nodes` is never used
[INFO] [stderr]   --> tests/debug_graph_connectivity.rs:17:4
[INFO] [stderr]    |
[INFO] [stderr] 17 | fn count_reachable_nodes(index: &HnswIndex, start_idx: usize) -> usize {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SearchRequest`
[INFO] [stderr]  --> tests/test_ivf_index_trait.rs:6:73
[INFO] [stderr]   |
[INFO] [stderr] 6 | use knowhere_rs::api::{IndexConfig, IndexParams, IndexType, MetricType, SearchRequest};
[INFO] [stderr]   |                                                                         ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `params` is never read
[INFO] [stderr]   --> tests/bench_hnsw_cpp_compare.rs:80:5
[INFO] [stderr]    |
[INFO] [stderr] 73 | struct HnswResult {
[INFO] [stderr]    |        ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 80 |     params: String,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DataType`
[INFO] [stderr]  --> tests/verify_pattern_recall.rs:5:24
[INFO] [stderr]   |
[INFO] [stderr] 5 | use knowhere_rs::api::{DataType, IndexConfig, IndexParams, IndexType, SearchRequest};
[INFO] [stderr]   |                        ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nbase`
[INFO] [stderr]   --> tests/verify_pattern_recall.rs:28:28
[INFO] [stderr]    |
[INFO] [stderr] 28 | fn test_recall(name: &str, nbase: usize, data: &[f32], queries: &[f32]) {
[INFO] [stderr]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_nbase`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `knowhere-rs` (test "debug_graph_connectivity") generated 4 warnings (run `cargo fix --test "debug_graph_connectivity" -p knowhere-rs` to apply 3 suggestions)
[INFO] [stderr] warning: `knowhere-rs` (test "test_ivf_index_trait") generated 1 warning (run `cargo fix --test "test_ivf_index_trait" -p knowhere-rs` to apply 1 suggestion)
[INFO] [stderr] warning: `knowhere-rs` (test "bench_hnsw_cpp_compare") generated 1 warning
[INFO] [stderr] warning: `knowhere-rs` (test "verify_pattern_recall") generated 2 warnings (run `cargo fix --test "verify_pattern_recall" -p knowhere-rs` to apply 2 suggestions)
[INFO] [stderr] warning: method `num_query` is never used
[INFO] [stderr]   --> tests/bench_compare.rs:79:8
[INFO] [stderr]    |
[INFO] [stderr] 62 | impl UnifiedDataset {
[INFO] [stderr]    | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 79 |     fn num_query(&self) -> usize {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `ground_truth_count` is assigned to, but never used
[INFO] [stderr]    --> tests/opt016_dynamic_ef.rs:124:9
[INFO] [stderr]     |
[INFO] [stderr] 124 |     let mut ground_truth_count = 0;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_ground_truth_count` instead
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `ground_truth_count` is never read
[INFO] [stderr]    --> tests/opt016_dynamic_ef.rs:134:9
[INFO] [stderr]     |
[INFO] [stderr] 134 |         ground_truth_count += distances.len().min(100);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> tests/bench_quantization_accuracy.rs:264:29
[INFO] [stderr]     |
[INFO] [stderr] 264 |     let compression_ratio = (32.0 / nbits as f32); // 相对于 float32
[INFO] [stderr]     |                             ^                   ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 264 -     let compression_ratio = (32.0 / nbits as f32); // 相对于 float32
[INFO] [stderr] 264 +     let compression_ratio = 32.0 / nbits as f32; // 相对于 float32
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `knowhere-rs` (test "bench_compare") generated 1 warning
[INFO] [stderr] warning: `knowhere-rs` (test "opt016_dynamic_ef") generated 2 warnings
[INFO] [stderr] warning: `knowhere-rs` (test "bench_quantization_accuracy") generated 1 warning (run `cargo fix --test "bench_quantization_accuracy" -p knowhere-rs` to apply 1 suggestion)
[INFO] [stderr] warning: unused variable: `recall_ok`
[INFO] [stderr]    --> tests/opt013_test.rs:138:9
[INFO] [stderr]     |
[INFO] [stderr] 138 |     let recall_ok = recall_at_1 >= 0.95 && recall_at_10 >= 0.95;
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_recall_ok`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `knowhere-rs` (test "opt013_test") generated 1 warning (run `cargo fix --test "opt013_test" -p knowhere-rs` to apply 1 suggestion)
[INFO] [stderr] warning: unused import: `knowhere_rs::benchmark::average_recall_at_k`
[INFO] [stderr]   --> tests/bench_hnsw_shuffle.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | use knowhere_rs::benchmark::average_recall_at_k;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dists`
[INFO] [stderr]   --> examples/interrupt_example.rs:73:18
[INFO] [stderr]    |
[INFO] [stderr] 73 |         Ok((ids, dists)) => println!("   Search found {} results", ids.len()),
[INFO] [stderr]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_dists`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `knowhere-rs` (test "bench_hnsw_shuffle") generated 1 warning (run `cargo fix --test "bench_hnsw_shuffle" -p knowhere-rs` to apply 1 suggestion)
[INFO] [stderr] warning: `knowhere-rs` (example "interrupt_example") generated 1 warning (run `cargo fix --example "interrupt_example" -p knowhere-rs` to apply 1 suggestion)
[INFO] [stderr] warning: field `runs` is never read
[INFO] [stderr]   --> tests/bench_ivf_flat_perf.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 30 | struct ScaleSummary {
[INFO] [stderr]    |        ------------ field in this struct
[INFO] [stderr] 31 |     nbase: usize,
[INFO] [stderr] 32 |     runs: Vec<RunResult>,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ScaleSummary` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `knowhere-rs` (test "bench_ivf_flat_perf") generated 1 warning
[INFO] [stderr] warning: unused import: `knowhere_rs::index::Index`
[INFO] [stderr]  --> tests/debug_hnsw_count.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use knowhere_rs::index::Index;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SearchRequest`
[INFO] [stderr]   --> tests/opt015_hnsw_build.rs:13:73
[INFO] [stderr]    |
[INFO] [stderr] 13 | use knowhere_rs::api::{IndexConfig, IndexParams, IndexType, MetricType, SearchRequest};
[INFO] [stderr]    |                                                                         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `knowhere-rs` (test "debug_hnsw_count") generated 1 warning
[INFO] [stderr] warning: `knowhere-rs` (test "opt015_hnsw_build") generated 1 warning (run `cargo fix --test "opt015_hnsw_build" -p knowhere-rs` to apply 1 suggestion)
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]   --> src/atomic_utils.rs:75:9
[INFO] [stderr]    |
[INFO] [stderr] 75 |     use std::thread;
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `#[ignore]` attribute cannot be used on macro calls
[INFO] [stderr]    --> src/faiss/mem_index.rs:939:9
[INFO] [stderr]     |
[INFO] [stderr] 939 |         #[ignore]
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = help: `#[ignore]` can only be applied to functions
[INFO] [stderr]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Predicate`
[INFO] [stderr]    --> src/faiss/mem_index.rs:945:40
[INFO] [stderr]     |
[INFO] [stderr] 945 |         use crate::api::{IdsPredicate, Predicate};
[INFO] [stderr]     |                                        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `IndexParams`, `IndexType`, and `MetricType`
[INFO] [stderr]    --> src/faiss/sparse_inverted_cc.rs:507:22
[INFO] [stderr]     |
[INFO] [stderr] 507 |     use crate::api::{IndexParams, IndexType, MetricType};
[INFO] [stderr]     |                      ^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::dataset::Dataset`
[INFO] [stderr]    --> src/index.rs:385:9
[INFO] [stderr]     |
[INFO] [stderr] 385 |     use crate::dataset::Dataset;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `faiss::hnsw_build::tests::test_hnsw_add_multiple`: Use hnsw.rs instead
[INFO] [stderr]    --> src/faiss/hnsw_build.rs:330:5
[INFO] [stderr]     |
[INFO] [stderr] 330 | /     fn test_hnsw_add_multiple() {
[INFO] [stderr] 331 | |         let mut hnsw = HnswIndex::new(4, 2, 10);
[INFO] [stderr] 332 | |
[INFO] [stderr] 333 | |         hnsw.add(&[1.0, 0.0, 0.0, 0.0]);
[INFO] [stderr] ...   |
[INFO] [stderr] 337 | |         assert_eq!(hnsw.num_vectors(), 3);
[INFO] [stderr] 338 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `faiss::hnsw_build::tests::test_hnsw_add_single`: Use hnsw.rs instead
[INFO] [stderr]    --> src/faiss/hnsw_build.rs:321:5
[INFO] [stderr]     |
[INFO] [stderr] 321 | /     fn test_hnsw_add_single() {
[INFO] [stderr] 322 | |         let mut hnsw = HnswIndex::new(4, 2, 10);
[INFO] [stderr] 323 | |         let v = vec![1.0, 2.0, 3.0, 4.0];
[INFO] [stderr] 324 | |         let id = hnsw.add(&v);
[INFO] [stderr] 325 | |         assert_eq!(id, 0);
[INFO] [stderr] 326 | |         assert_eq!(hnsw.num_vectors(), 1);
[INFO] [stderr] 327 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `faiss::hnsw_build::tests::test_hnsw_new`: Use hnsw.rs instead
[INFO] [stderr]    --> src/faiss/hnsw_build.rs:314:5
[INFO] [stderr]     |
[INFO] [stderr] 314 | /     fn test_hnsw_new() {
[INFO] [stderr] 315 | |         let hnsw = HnswIndex::new(128, 16, 200);
[INFO] [stderr] 316 | |         assert_eq!(hnsw.dim, 128);
[INFO] [stderr] 317 | |         assert_eq!(hnsw.m, 16);
[INFO] [stderr] 318 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `faiss::hnsw_build::tests::test_hnsw_search`: Use hnsw.rs instead
[INFO] [stderr]    --> src/faiss/hnsw_build.rs:341:5
[INFO] [stderr]     |
[INFO] [stderr] 341 | /     fn test_hnsw_search() {
[INFO] [stderr] 342 | |         let mut hnsw = HnswIndex::new(4, 2, 10);
[INFO] [stderr] ...   |
[INFO] [stderr] 355 | |         assert!(results[0].0 < 3);
[INFO] [stderr] 356 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `faiss::hnsw_complete::tests::test_hnsw_add`: Use hnsw.rs instead
[INFO] [stderr]    --> src/faiss/hnsw_complete.rs:461:5
[INFO] [stderr]     |
[INFO] [stderr] 461 | /     fn test_hnsw_add() {
[INFO] [stderr] 462 | |         let mut hnsw = HnswIndex::new(4);
[INFO] [stderr] 463 | |         hnsw.m = 2;
[INFO] [stderr] ...   |
[INFO] [stderr] 468 | |         assert_eq!(hnsw.len(), 2);
[INFO] [stderr] 469 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `faiss::hnsw_complete::tests::test_hnsw_batch`: Use hnsw.rs instead
[INFO] [stderr]    --> src/faiss/hnsw_complete.rs:503:5
[INFO] [stderr]     |
[INFO] [stderr] 503 | /     fn test_hnsw_batch() {
[INFO] [stderr] 504 | |         let mut hnsw = HnswIndex::new(4);
[INFO] [stderr] 505 | |         hnsw.m = 2;
[INFO] [stderr] ...   |
[INFO] [stderr] 511 | |         assert_eq!(hnsw.len(), 3);
[INFO] [stderr] 512 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `faiss::hnsw_complete::tests::test_hnsw_new`: Use hnsw.rs instead
[INFO] [stderr]    --> src/faiss/hnsw_complete.rs:455:5
[INFO] [stderr]     |
[INFO] [stderr] 455 | /     fn test_hnsw_new() {
[INFO] [stderr] 456 | |         let hnsw = HnswIndex::new(128);
[INFO] [stderr] 457 | |         assert_eq!(hnsw.dim, 128);
[INFO] [stderr] 458 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `faiss::hnsw_complete::tests::test_hnsw_search`: Use hnsw.rs instead
[INFO] [stderr]    --> src/faiss/hnsw_complete.rs:472:5
[INFO] [stderr]     |
[INFO] [stderr] 472 | /     fn test_hnsw_search() {
[INFO] [stderr] 473 | |         let mut hnsw = HnswIndex::new(4);
[INFO] [stderr] 474 | |         hnsw.m = 2;
[INFO] [stderr] 475 | |         hnsw.ef_search = 10;
[INFO] [stderr] ...   |
[INFO] [stderr] 483 | |         assert!(!results.is_empty());
[INFO] [stderr] 484 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `faiss::hnsw_complete::tests::test_hnsw_serialize`: Use hnsw.rs instead
[INFO] [stderr]    --> src/faiss/hnsw_complete.rs:487:5
[INFO] [stderr]     |
[INFO] [stderr] 487 | /     fn test_hnsw_serialize() {
[INFO] [stderr] 488 | |         let mut hnsw = HnswIndex::new(4);
[INFO] [stderr] 489 | |         hnsw.m = 2;
[INFO] [stderr] ...   |
[INFO] [stderr] 499 | |         assert_eq!(hnsw2.len(), 2);
[INFO] [stderr] 500 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `faiss::hnsw_search::tests::test_search_empty`: Use hnsw.rs instead
[INFO] [stderr]    --> src/faiss/hnsw_search.rs:143:5
[INFO] [stderr]     |
[INFO] [stderr] 143 | /     fn test_search_empty() {
[INFO] [stderr] 144 | |         let s = HnswSearcher::new(10);
[INFO] [stderr] 145 | |         let result = s.search(&[0.0; 4], &[], &[], 4, 3);
[INFO] [stderr] 146 | |         assert!(result.is_empty());
[INFO] [stderr] 147 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `faiss::hnsw_search::tests::test_search_single_node`: Use hnsw.rs instead
[INFO] [stderr]    --> src/faiss/hnsw_search.rs:150:5
[INFO] [stderr]     |
[INFO] [stderr] 150 | /     fn test_search_single_node() {
[INFO] [stderr] 151 | |         let s = HnswSearcher::new(10);
[INFO] [stderr] 152 | |         let vectors = vec![1.0, 2.0, 3.0, 4.0];
[INFO] [stderr] 153 | |         let graph = vec![vec![]; 1];
[INFO] [stderr] ...   |
[INFO] [stderr] 156 | |         assert!(!result.is_empty());
[INFO] [stderr] 157 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `faiss::hnsw_search::tests::test_searcher_creation`: Use hnsw.rs instead
[INFO] [stderr]    --> src/faiss/hnsw_search.rs:137:5
[INFO] [stderr]     |
[INFO] [stderr] 137 | /     fn test_searcher_creation() {
[INFO] [stderr] 138 | |         let s = HnswSearcher::new(50);
[INFO] [stderr] 139 | |         assert_eq!(s.ef_search, 50);
[INFO] [stderr] 140 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `assignment`
[INFO] [stderr]    --> src/clustering/kmeans_pp.rs:595:17
[INFO] [stderr]     |
[INFO] [stderr] 595 |             let assignment = result.assignments[i];
[INFO] [stderr]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_assignment`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/clustering/mini_batch_kmeans.rs:358:13
[INFO] [stderr]     |
[INFO] [stderr] 358 |         let mut mbkm = MiniBatchKMeans::with_config(10, 64, config);
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/dataset/binary_dataset.rs:182:13
[INFO] [stderr]     |
[INFO] [stderr] 182 |         let mut dataset = BinaryDataset::from_vectors(vectors, 16);
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `reader`
[INFO] [stderr]   --> src/disk_io.rs:57:13
[INFO] [stderr]    |
[INFO] [stderr] 57 |         let reader = SyncReader;
[INFO] [stderr]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dist`
[INFO] [stderr]     --> src/faiss/diskann.rs:1147:29
[INFO] [stderr]      |
[INFO] [stderr] 1147 |         while let Some((id, dist)) = iter.next() {
[INFO] [stderr]      |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_dist`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/faiss/ivf_flat_cc.rs:236:13
[INFO] [stderr]     |
[INFO] [stderr] 236 |         let mut scan_cluster = |cluster_id: usize, acc: &mut Vec<(i64, f32)>| {
[INFO] [stderr]     |             ----^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `distances`
[INFO] [stderr]    --> src/faiss/mem_index.rs:934:19
[INFO] [stderr]     |
[INFO] [stderr] 934 |         let (ids, distances) = index.range_search(&query, -0.5).unwrap();
[INFO] [stderr]     |                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distances`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:3970:28
[INFO] [stderr]      |
[INFO] [stderr] 3970 |         let initial_size = unsafe { knowhere_get_index_size(index) };
[INFO] [stderr]      |                            ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:3983:26
[INFO] [stderr]      |
[INFO] [stderr] 3983 |         let size_after = unsafe { knowhere_get_index_size(index) };
[INFO] [stderr]      |                          ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:3987:24
[INFO] [stderr]      |
[INFO] [stderr] 3987 |         let type_ptr = unsafe { knowhere_get_index_type(index) };
[INFO] [stderr]      |                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:3995:26
[INFO] [stderr]      |
[INFO] [stderr] 3995 |         let metric_ptr = unsafe { knowhere_get_index_metric(index) };
[INFO] [stderr]      |                          ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:4020:24
[INFO] [stderr]      |
[INFO] [stderr] 4020 |         let type_ptr = unsafe { knowhere_get_index_type(index) };
[INFO] [stderr]      |                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:4028:26
[INFO] [stderr]      |
[INFO] [stderr] 4028 |         let metric_ptr = unsafe { knowhere_get_index_metric(index) };
[INFO] [stderr]      |                          ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:4036:20
[INFO] [stderr]      |
[INFO] [stderr] 4036 |         let size = unsafe { knowhere_get_index_size(index) };
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `size`
[INFO] [stderr]     --> src/ffi.rs:4036:13
[INFO] [stderr]      |
[INFO] [stderr] 4036 |         let size = unsafe { knowhere_get_index_size(index) };
[INFO] [stderr]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:4084:20
[INFO] [stderr]      |
[INFO] [stderr] 4084 |         let size = unsafe { knowhere_get_index_size(std::ptr::null()) };
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:4087:24
[INFO] [stderr]      |
[INFO] [stderr] 4087 |         let type_ptr = unsafe { knowhere_get_index_type(std::ptr::null()) };
[INFO] [stderr]      |                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:4094:26
[INFO] [stderr]      |
[INFO] [stderr] 4094 |         let metric_ptr = unsafe { knowhere_get_index_metric(std::ptr::null()) };
[INFO] [stderr]      |                          ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5067:9
[INFO] [stderr]      |
[INFO] [stderr] 5067 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5112:9
[INFO] [stderr]      |
[INFO] [stderr] 5112 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5231:21
[INFO] [stderr]      |
[INFO] [stderr] 5231 |         let count = unsafe { knowhere_bitset_count(bitset) };
[INFO] [stderr]      |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5235:9
[INFO] [stderr]      |
[INFO] [stderr] 5235 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5242:21
[INFO] [stderr]      |
[INFO] [stderr] 5242 |         let count = unsafe { knowhere_bitset_count(bitset) };
[INFO] [stderr]      |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5246:17
[INFO] [stderr]      |
[INFO] [stderr] 5246 |         assert!(unsafe { knowhere_bitset_get(bitset, 5) });
[INFO] [stderr]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5247:17
[INFO] [stderr]      |
[INFO] [stderr] 5247 |         assert!(unsafe { knowhere_bitset_get(bitset, 10) });
[INFO] [stderr]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5248:17
[INFO] [stderr]      |
[INFO] [stderr] 5248 |         assert!(unsafe { knowhere_bitset_get(bitset, 50) });
[INFO] [stderr]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5249:18
[INFO] [stderr]      |
[INFO] [stderr] 5249 |         assert!(!unsafe { knowhere_bitset_get(bitset, 0) });
[INFO] [stderr]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5250:18
[INFO] [stderr]      |
[INFO] [stderr] 5250 |         assert!(!unsafe { knowhere_bitset_get(bitset, 7) });
[INFO] [stderr]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5279:9
[INFO] [stderr]      |
[INFO] [stderr] 5279 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5334:9
[INFO] [stderr]      |
[INFO] [stderr] 5334 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5340:9
[INFO] [stderr]      |
[INFO] [stderr] 5340 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5346:9
[INFO] [stderr]      |
[INFO] [stderr] 5346 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5352:9
[INFO] [stderr]      |
[INFO] [stderr] 5352 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5358:9
[INFO] [stderr]      |
[INFO] [stderr] 5358 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5364:9
[INFO] [stderr]      |
[INFO] [stderr] 5364 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5375:20
[INFO] [stderr]      |
[INFO] [stderr] 5375 |         let data = unsafe { knowhere_bitset_data(bitset) };
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5398:9
[INFO] [stderr]      |
[INFO] [stderr] 5398 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5409:20
[INFO] [stderr]      |
[INFO] [stderr] 5409 |         assert_eq!(unsafe { knowhere_bitset_count(bitset) }, 0);
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5412:9
[INFO] [stderr]      |
[INFO] [stderr] 5412 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5418:20
[INFO] [stderr]      |
[INFO] [stderr] 5418 |         assert_eq!(unsafe { knowhere_bitset_count(bitset) }, 3);
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5429:18
[INFO] [stderr]      |
[INFO] [stderr] 5429 |         assert!(!unsafe { knowhere_bitset_test(bitset, 0) });
[INFO] [stderr]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5430:18
[INFO] [stderr]      |
[INFO] [stderr] 5430 |         assert!(!unsafe { knowhere_bitset_test(bitset, 50) });
[INFO] [stderr]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5433:9
[INFO] [stderr]      |
[INFO] [stderr] 5433 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5438:17
[INFO] [stderr]      |
[INFO] [stderr] 5438 |         assert!(unsafe { knowhere_bitset_test(bitset, 5) });
[INFO] [stderr]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5439:17
[INFO] [stderr]      |
[INFO] [stderr] 5439 |         assert!(unsafe { knowhere_bitset_test(bitset, 10) });
[INFO] [stderr]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5440:18
[INFO] [stderr]      |
[INFO] [stderr] 5440 |         assert!(!unsafe { knowhere_bitset_test(bitset, 0) });
[INFO] [stderr]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5441:18
[INFO] [stderr]      |
[INFO] [stderr] 5441 |         assert!(!unsafe { knowhere_bitset_test(bitset, 50) });
[INFO] [stderr]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5444:17
[INFO] [stderr]      |
[INFO] [stderr] 5444 |         assert!(unsafe { knowhere_bitset_test(bitset, 100) });
[INFO] [stderr]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5455:20
[INFO] [stderr]      |
[INFO] [stderr] 5455 |         assert_eq!(unsafe { knowhere_bitset_filter_ratio(bitset) }, 0.0);
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5458:9
[INFO] [stderr]      |
[INFO] [stderr] 5458 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5464:20
[INFO] [stderr]      |
[INFO] [stderr] 5464 |         assert_eq!(unsafe { knowhere_bitset_filter_ratio(bitset) }, 1.0);
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5467:9
[INFO] [stderr]      |
[INFO] [stderr] 5467 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5476:21
[INFO] [stderr]      |
[INFO] [stderr] 5476 |         let ratio = unsafe { knowhere_bitset_filter_ratio(bitset) };
[INFO] [stderr]      |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5488:20
[INFO] [stderr]      |
[INFO] [stderr] 5488 |         assert_eq!(unsafe { knowhere_bitset_get_first_valid_index(bitset) }, 0);
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5491:9
[INFO] [stderr]      |
[INFO] [stderr] 5491 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5497:20
[INFO] [stderr]      |
[INFO] [stderr] 5497 |         assert_eq!(unsafe { knowhere_bitset_get_first_valid_index(bitset) }, 3);
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5507:20
[INFO] [stderr]      |
[INFO] [stderr] 5507 |         assert_eq!(unsafe { knowhere_bitset_size(bitset) }, 100);
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5517:18
[INFO] [stderr]      |
[INFO] [stderr] 5517 |         assert!(!unsafe { knowhere_bitset_empty(non_empty) });
[INFO] [stderr]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5520:17
[INFO] [stderr]      |
[INFO] [stderr] 5520 |         assert!(unsafe { knowhere_bitset_empty(std::ptr::null()) });
[INFO] [stderr]      |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5531:18
[INFO] [stderr]      |
[INFO] [stderr] 5531 |         assert!(!unsafe { knowhere_bitset_has_out_ids(bitset) });
[INFO] [stderr]      |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5544:9
[INFO] [stderr]      |
[INFO] [stderr] 5544 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5551:9
[INFO] [stderr]      |
[INFO] [stderr] 5551 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5558:22
[INFO] [stderr]      |
[INFO] [stderr] 5558 |         let result = unsafe { knowhere_bitset_or(a, b) };
[INFO] [stderr]      |                      ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5562:9
[INFO] [stderr]      |
[INFO] [stderr] 5562 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5572:20
[INFO] [stderr]      |
[INFO] [stderr] 5572 |         assert_eq!(unsafe { knowhere_bitset_count(result) }, 5);
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5574:9
[INFO] [stderr]      |
[INFO] [stderr] 5574 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5589:9
[INFO] [stderr]      |
[INFO] [stderr] 5589 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5597:9
[INFO] [stderr]      |
[INFO] [stderr] 5597 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5605:22
[INFO] [stderr]      |
[INFO] [stderr] 5605 |         let result = unsafe { knowhere_bitset_and(a, b) };
[INFO] [stderr]      |                      ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5609:9
[INFO] [stderr]      |
[INFO] [stderr] 5609 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5619:20
[INFO] [stderr]      |
[INFO] [stderr] 5619 |         assert_eq!(unsafe { knowhere_bitset_count(result) }, 2);
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5621:9
[INFO] [stderr]      |
[INFO] [stderr] 5621 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5636:9
[INFO] [stderr]      |
[INFO] [stderr] 5636 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5644:9
[INFO] [stderr]      |
[INFO] [stderr] 5644 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5652:22
[INFO] [stderr]      |
[INFO] [stderr] 5652 |         let result = unsafe { knowhere_bitset_xor(a, b) };
[INFO] [stderr]      |                      ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5656:9
[INFO] [stderr]      |
[INFO] [stderr] 5656 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5666:20
[INFO] [stderr]      |
[INFO] [stderr] 5666 |         assert_eq!(unsafe { knowhere_bitset_count(result) }, 4);
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5668:9
[INFO] [stderr]      |
[INFO] [stderr] 5668 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5684:9
[INFO] [stderr]      |
[INFO] [stderr] 5684 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5690:9
[INFO] [stderr]      |
[INFO] [stderr] 5690 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5696:22
[INFO] [stderr]      |
[INFO] [stderr] 5696 |         let result = unsafe { knowhere_bitset_or(a, b) };
[INFO] [stderr]      |                      ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5700:20
[INFO] [stderr]      |
[INFO] [stderr] 5700 |         assert_eq!(unsafe { knowhere_bitset_size(result) }, 100);
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5703:9
[INFO] [stderr]      |
[INFO] [stderr] 5703 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5710:9
[INFO] [stderr]      |
[INFO] [stderr] 5710 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5724:9
[INFO] [stderr]      |
[INFO] [stderr] 5724 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5730:22
[INFO] [stderr]      |
[INFO] [stderr] 5730 |         let result = unsafe { knowhere_bitset_and(a, b) };
[INFO] [stderr]      |                      ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5734:20
[INFO] [stderr]      |
[INFO] [stderr] 5734 |         assert_eq!(unsafe { knowhere_bitset_count(result) }, 0);
[INFO] [stderr]      |                    ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5736:9
[INFO] [stderr]      |
[INFO] [stderr] 5736 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5748:25
[INFO] [stderr]      |
[INFO] [stderr] 5748 |         let result_or = unsafe { knowhere_bitset_or(a, std::ptr::null()) };
[INFO] [stderr]      |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5751:26
[INFO] [stderr]      |
[INFO] [stderr] 5751 |         let result_and = unsafe { knowhere_bitset_and(std::ptr::null(), a) };
[INFO] [stderr]      |                          ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/ffi.rs:5754:26
[INFO] [stderr]      |
[INFO] [stderr] 5754 |         let result_xor = unsafe { knowhere_bitset_xor(a, std::ptr::null()) };
[INFO] [stderr]      |                          ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: fields `nlist`, `nprobe`, `kmeans_type`, and `search_time_ms` are never read
[INFO] [stderr]    --> tests/bench_ivf_flat_params.rs:118:5
[INFO] [stderr]     |
[INFO] [stderr] 116 | struct BenchmarkResult {
[INFO] [stderr]     |        --------------- fields in this struct
[INFO] [stderr] 117 |     name: String,
[INFO] [stderr] 118 |     nlist: usize,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 119 |     nprobe: usize,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] 120 |     kmeans_type: String,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 123 |     search_time_ms: f64,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `BenchmarkResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `knowhere-rs` (lib test) generated 109 warnings (1 duplicate) (run `cargo fix --lib -p knowhere-rs --tests` to apply 13 suggestions)
[INFO] [stderr] warning: `knowhere-rs` (test "bench_ivf_flat_params") generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.35s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/knowhere_rs-e3c8b30bffa5207b)
[INFO] [stdout] 
[INFO] [stdout] running 528 tests
[INFO] [stdout] test api::data_type::tests::test_data_type_is_dense_float ... ok
[INFO] [stdout] test api::index::tests::test_index_params_ivf_sq8 ... ok
[INFO] [stdout] test api::index::tests::test_index_type_from_str_ivf_sq8 ... ok
[INFO] [stdout] test api::index::tests::test_index_type_ivf_sq8 ... ok
[INFO] [stdout] test api::index::tests::test_index_config_validate ... ok
[INFO] [stdout] test api::index::tests::test_minhash_cpp_param_aliases_deserialize ... ok
[INFO] [stdout] test api::legal_matrix::tests::test_get_legal_data_types ... ok
[INFO] [stdout] test api::legal_matrix::tests::test_get_legal_metrics ... ok
[INFO] [stdout] test api::legal_matrix::tests::test_legal_matrix_diskann ... ok
[INFO] [stdout] test api::legal_matrix::tests::test_legal_matrix_hnsw_binary ... ok
[INFO] [stdout] test api::legal_matrix::tests::test_legal_matrix_hnsw_float ... ok
[INFO] [stdout] test api::legal_matrix::tests::test_legal_matrix_ivf_sq8 ... ok
[INFO] [stdout] test api::legal_matrix::tests::test_legal_matrix_sparse ... ok
[INFO] [stdout] test api::legal_matrix::tests::test_validate_index_config ... ok
[INFO] [stdout] test arena::tests::test_arena ... ok
[INFO] [stdout] test arena::tests::test_arena_reset ... ok
[INFO] [stdout] test api::data_type::tests::test_data_type_to_i32 ... ok
[INFO] [stdout] test atomic_utils::tests::test_counter ... ok
[INFO] [stdout] test atomic_utils::tests::test_atomic_bool ... ok
[INFO] [stdout] test api::index::tests::test_index_config_ivf_sq8 ... ok
[INFO] [stdout] test benchmark::distance_validator::tests::test_check_distance_in_scope_knn_fail ... ok
[INFO] [stdout] test benchmark::distance_validator::tests::test_check_distance_in_scope_knn_pass ... ok
[INFO] [stdout] test benchmark::distance_validator::tests::test_distance_statistics ... ok
[INFO] [stdout] test benchmark::distance_validator::tests::test_monotonicity_ip_pass ... ok
[INFO] [stdout] test benchmark::distance_validator::tests::test_monotonicity_l2_fail ... ok
[INFO] [stdout] test benchmark::distance_validator::tests::test_monotonicity_l2_pass ... ok
[INFO] [stdout] test benchmark::distance_validator::tests::test_validate_ip_distances ... ok
[INFO] [stdout] test benchmark::distance_validator::tests::test_validate_l2_distances ... ok
[INFO] [stdout] test benchmark::distance_validator::tests::test_validation_report ... ok
[INFO] [stdout] test benchmark::memory_tracker::tests::test_memory_estimations ... ok
[INFO] [stdout] test benchmark::memory_tracker::tests::test_memory_tracker ... ok
[INFO] [stdout] test benchmark::recall::tests::test_average_recall ... ok
[INFO] [stdout] test benchmark::recall::tests::test_recall_bug002_large_k ... ok
[INFO] [stdout] test benchmark::recall::tests::test_recall_ground_truth_shorter ... ok
[INFO] [stdout] test benchmark::recall::tests::test_recall_partial ... ok
[INFO] [stdout] test benchmark::recall::tests::test_recall_perfect ... ok
[INFO] [stdout] test benchmark::recall::tests::test_recall_zero ... ok
[INFO] [stdout] test benchmark::report_schema::tests::test_confidence_from_recall_uses_three_levels ... ok
[INFO] [stdout] test benchmark::report_schema::tests::test_validate_required_fields_passes ... ok
[INFO] [stdout] test benchmark::report_schema::tests::test_validate_required_fields_rejects_invalid_confidence_value ... ok
[INFO] [stdout] test benchmark::report_schema::tests::test_validate_required_fields_rejects_missing_ground_truth_source ... ok
[INFO] [stdout] test benchmark::report_schema::tests::test_validate_required_fields_requires_explanation_for_low_confidence ... ok
[INFO] [stdout] test benchmark::tests::test_bench_report ... ok
[INFO] [stdout] test api::legal_matrix::tests::test_mmap_support ... ok
[INFO] [stdout] test benchmark::tests::test_distance_bench ... ok
[INFO] [stdout] test bitset::tests::test_bitwise ... ok
[INFO] [stdout] test bitset::tests::test_basic ... ok
[INFO] [stdout] test bitset::tests::test_clear_set_all ... ok
[INFO] [stdout] test bitset::tests::test_filter_ratio ... ok
[INFO] [stdout] test bitset::tests::test_id_offset ... ok
[INFO] [stdout] test bitset::tests::test_iter ... ok
[INFO] [stdout] test bitset::tests::test_out_ids_basic ... ok
[INFO] [stdout] test bitset::tests::test_out_ids_data ... ok
[INFO] [stdout] test bitset::tests::test_out_ids_with_explicit_count ... ok
[INFO] [stdout] test bitset::tests::test_simd_architecture_detection ... ok
[INFO] [stdout] test bitset::tests::test_get_first_valid_index ... ok
[INFO] [stdout] test bitset::tests::test_simd_edge_cases ... ok
[INFO] [stdout] test bitset::tests::test_simd_fallback_consistency ... ok
[INFO] [stdout] test bitset::tests::test_avx2_intrinsics_wrapper ... ok
[INFO] [stdout] test bloom::tests::test_bloom_insert_contains ... ok
[INFO] [stdout] test bloom::tests::test_bloom_new ... ok
[INFO] [stdout] test bloom::tests::test_bloom_with_expected ... ok
[INFO] [stdout] test api::data_type::tests::test_data_type_from_i32 ... ok
[INFO] [stdout] test bloom::tests::test_false_positive ... ok
[INFO] [stdout] test clustering::elkan_kmeans::tests::test_elkan_kmeans_config ... ok
[INFO] [stdout] test clustering::elkan_kmeans::tests::test_elkan_kmeans_basic ... ok
[INFO] [stdout] test clustering::kmeans_pp::tests::test_kmeans_pp_clustering ... ok
[INFO] [stdout] test clustering::kmeans_pp::tests::test_kmeans_pp_empty_data ... ok
[INFO] [stdout] test clustering::kmeans_pp::tests::test_kmeans_pp_init ... ok
[INFO] [stdout] test bitset::tests::test_simd_batch_operations ... FAILED
[INFO] [stdout] test clustering::mini_batch_kmeans::tests::test_empty_data ... ok
[INFO] [stdout] test clustering::mini_batch_kmeans::tests::test_find_nearest_batch ... ok
[INFO] [stdout] test clustering::mini_batch_kmeans::tests::test_insufficient_data ... ok
[INFO] [stdout] test bitset::tests::test_simd_large_dataset ... FAILED
[INFO] [stdout] test clustering::mini_batch_kmeans::tests::test_mini_batch_kmeans_config ... ok
[INFO] [stdout] test clustering::mini_batch_kmeans::tests::test_mini_batch_kmeans_convergence ... ok
[INFO] [stdout] test clustering::mini_batch_kmeans::tests::test_mini_batch_kmeans_basic ... ok
[INFO] [stdout] test codec::index::tests::test_codec_roundtrip ... ok
[INFO] [stdout] test codec::vector::tests::test_vector_codec ... ok
[INFO] [stdout] test comp::bloomfilter::tests::test_bloom_filter_basic ... ok
[INFO] [stdout] test comp::bloomfilter::tests::test_bloom_filter_bytes ... ok
[INFO] [stdout] test comp::bloomfilter::tests::test_bloom_filter_clear ... ok
[INFO] [stdout] test comp::bloomfilter::tests::test_bloom_filter_parameters ... ok
[INFO] [stdout] test comp::bloomfilter::tests::test_bloom_filter_save_load ... ok
[INFO] [stdout] test dataset::binary_dataset::tests::test_binary_dataset_basic ... ok
[INFO] [stdout] test dataset::binary_dataset::tests::test_binary_dataset_deleted ... ok
[INFO] [stdout] test dataset::binary_dataset::tests::test_binary_dataset_with_ids ... ok
[INFO] [stdout] test dataset::dataset_loader::tests::test_deep_dataset_methods ... ok
[INFO] [stdout] test dataset::dataset_loader::tests::test_gist_dataset_methods ... ok
[INFO] [stdout] test dataset::dataset_loader::tests::test_infer_dim_from_fvecs ... ok
[INFO] [stdout] test dataset::dataset_loader::tests::test_read_fvecs_basic ... ok
[INFO] [stdout] test dataset::dataset_loader::tests::test_read_ivecs_basic ... ok
[INFO] [stdout] test dataset::sift_loader::tests::test_read_fvecs ... ok
[INFO] [stdout] test dataset::sift_loader::tests::test_read_ivecs ... ok
[INFO] [stdout] test dataset::tests::test_dataset_basic ... ok
[INFO] [stdout] test dataset::tests::test_dataset_deleted ... ok
[INFO] [stdout] test dataset::tests::test_dataset_get_vector ... ok
[INFO] [stdout] test dataset::tests::test_dataset_with_ids ... ok
[INFO] [stdout] test dataset::tests::test_datatype_size ... ok
[INFO] [stdout] test disk_io::tests::test_sync_read ... ok
[INFO] [stdout] test error::tests::test_error ... ok
[INFO] [stdout] test executor::concurrent::tests::test_concurrent_searcher_min ... ok
[INFO] [stdout] test executor::concurrent::tests::test_concurrent_searcher_new ... ok
[INFO] [stdout] test executor::threadpool::tests::test_l2_distance ... ok
[INFO] [stdout] test executor::threadpool::tests::test_parallel_search ... ok
[INFO] [stdout] test faiss::aisaq::tests::test_aisaq_beam_search ... ok
[INFO] [stdout] test faiss::aisaq::tests::test_aisaq_get_vectors ... ok
[INFO] [stdout] test faiss::aisaq::tests::test_aisaq_metrics ... ok
[INFO] [stdout] test faiss::aisaq::tests::test_aisaq_new ... ok
[INFO] [stdout] test faiss::aisaq::tests::test_aisaq_train_and_search ... ok
[INFO] [stdout] test faiss::aisaq::tests_index_trait::test_aisaq_index_ann_iterator ... ok
[INFO] [stdout] test faiss::aisaq::tests_index_trait::test_aisaq_index_get_vector_by_ids ... ok
[INFO] [stdout] test faiss::aisaq::tests_index_trait::test_aisaq_index_save_load ... ok
[INFO] [stdout] test faiss::aisaq::tests_index_trait::test_aisaq_index_train_and_search ... ok
[INFO] [stdout] test faiss::aisaq::tests_index_trait::test_aisaq_index_trait_new ... ok
[INFO] [stdout] test faiss::annoy::tests::test_annoy_basic ... ok
[INFO] [stdout] test faiss::bin_flat::tests::test_bin_flat_add ... ok
[INFO] [stdout] test faiss::bin_flat::tests::test_bin_flat_add_auto_ids ... ok
[INFO] [stdout] test faiss::bin_flat::tests::test_bin_flat_empty_search ... ok
[INFO] [stdout] test faiss::bin_flat::tests::test_bin_flat_large_vectors ... ok
[INFO] [stdout] test faiss::bin_flat::tests::test_bin_flat_new ... ok
[INFO] [stdout] test faiss::bin_flat::tests::test_bin_flat_reconstruct ... ok
[INFO] [stdout] test faiss::bin_flat::tests::test_bin_flat_remove_ids ... ok
[INFO] [stdout] test faiss::bin_flat::tests::test_bin_flat_reset ... ok
[INFO] [stdout] test faiss::bin_flat::tests::test_bin_flat_search ... ok
[INFO] [stdout] test faiss::bin_flat::tests::test_hamming_distance_correctness ... ok
[INFO] [stdout] test faiss::bin_ivf_flat::tests::test_bin_ivf_flat_add ... ok
[INFO] [stdout] test faiss::bin_ivf_flat::tests::test_bin_ivf_flat_add_without_training ... ok
[INFO] [stdout] test faiss::bin_ivf_flat::tests::test_bin_ivf_flat_large_dataset ... ok
[INFO] [stdout] test faiss::bin_ivf_flat::tests::test_bin_ivf_flat_list_size ... ok
[INFO] [stdout] test faiss::bin_ivf_flat::tests::test_bin_ivf_flat_new ... ok
[INFO] [stdout] test faiss::bin_ivf_flat::tests::test_bin_ivf_flat_reconstruct ... ok
[INFO] [stdout] test faiss::bin_ivf_flat::tests::test_bin_ivf_flat_reset ... ok
[INFO] [stdout] test faiss::bin_ivf_flat::tests::test_bin_ivf_flat_search ... ok
[INFO] [stdout] test faiss::bin_ivf_flat::tests::test_bin_ivf_flat_search_empty ... ok
[INFO] [stdout] test faiss::bin_ivf_flat::tests::test_bin_ivf_flat_set_nprobe ... ok
[INFO] [stdout] test faiss::bin_ivf_flat::tests::test_bin_ivf_flat_train ... ok
[INFO] [stdout] test faiss::bin_ivf_flat::tests::test_bin_ivf_flat_train_insufficient_vectors ... ok
[INFO] [stdout] test faiss::binary::tests::test_binary_flat ... ok
[INFO] [stdout] test faiss::binary::tests::test_binary_ivf ... ok
[INFO] [stdout] test faiss::binary_hnsw::tests::test_binary_hnsw_new ... ok
[INFO] [stdout] test faiss::binary_hnsw::tests::test_binary_hnsw_reset ... ok
[INFO] [stdout] test clustering::kmeans_pp::tests::test_kmeans_pp_vs_random_init ... ok
[INFO] [stdout] test faiss::binary_hnsw::tests::test_hamming_distance ... ok
[INFO] [stdout] test faiss::diskann::tests::test_diskann ... ok
[INFO] [stdout] test faiss::diskann::tests::test_diskann_config ... ok
[INFO] [stdout] test faiss::diskann::tests::test_diskann_get_vector_by_ids_rejects_missing_ids ... ok
[INFO] [stdout] test faiss::diskann::tests::test_diskann_index_trait ... ok
[INFO] [stdout] test faiss::diskann::tests::test_diskann_iterator ... ok
[INFO] [stdout] test faiss::diskann::tests::test_diskann_l2_sqr_matches_simd_squared_distance ... ok
[INFO] [stdout] test faiss::diskann::tests::test_diskann_range_search ... ok
[INFO] [stdout] test faiss::diskann::tests::test_diskann_raw_data_semantics_follow_metric_type ... ok
[INFO] [stdout] test faiss::diskann::tests::test_diskann_save_load ... ok
[INFO] [stdout] test faiss::diskann::tests::test_diskann_stats ... ok
[INFO] [stdout] test faiss::diskann_aisaq::tests::beam_io_tracks_reads ... ok
[INFO] [stdout] test faiss::diskann_beam::tests::test_async_searcher ... ok
[INFO] [stdout] test faiss::diskann_beam::tests::test_beam_searcher ... ok
[INFO] [stdout] test faiss::diskann_complete::tests::test_diskann_add_batch ... ok
[INFO] [stdout] test faiss::diskann_complete::tests::test_diskann_add_single ... ok
[INFO] [stdout] test faiss::diskann_complete::tests::test_diskann_empty_search ... ok
[INFO] [stdout] test faiss::diskann_complete::tests::test_diskann_new ... ok
[INFO] [stdout] test faiss::diskann_complete::tests::test_diskann_search ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_build_with_repair ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_find_unreachable_vectors_empty_index ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_find_unreachable_vectors_single_vector ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_graph_connectivity_after_repair ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_batch_size_calculation ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_build_performance ... ignored, performance benchmark; excluded from default regression
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_cosine_metric ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_get_vector_by_ids_empty_index_returns_empty_error ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_index_trait_with_bitset ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_ip_metric ... ok
[INFO] [stdout] test faiss::binary_hnsw::tests::test_binary_hnsw_train_add_search ... ok
[INFO] [stdout] test clustering::elkan_kmeans::tests::test_elkan_parallel_vs_serial ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_parallel_error_handling ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_search_with_bitset ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_search_with_bitset_all_filtered ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_search_with_filter ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_multilayer_structure ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_random_level_distribution ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_repair_graph_connectivity_manual ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_unreachable_detection_multilayer ... ok
[INFO] [stdout] test faiss::hnsw_build::tests::test_hnsw_add_multiple ... ok
[INFO] [stdout] test faiss::hnsw_build::tests::test_hnsw_add_single ... ok
[INFO] [stdout] test faiss::hnsw_build::tests::test_hnsw_new ... ok
[INFO] [stdout] test faiss::hnsw_build::tests::test_hnsw_search ... ok
[INFO] [stdout] test faiss::hnsw_complete::tests::test_hnsw_add ... ok
[INFO] [stdout] test faiss::hnsw_complete::tests::test_hnsw_batch ... ok
[INFO] [stdout] test faiss::hnsw_complete::tests::test_hnsw_new ... ok
[INFO] [stdout] test faiss::hnsw_complete::tests::test_hnsw_search ... ok
[INFO] [stdout] test faiss::hnsw_complete::tests::test_hnsw_serialize ... ok
[INFO] [stdout] test faiss::hnsw_parallel::tests::test_id_allocator ... ok
[INFO] [stdout] test faiss::hnsw_parallel::tests::test_parallel_batch ... ok
[INFO] [stdout] test faiss::hnsw_parallel::tests::test_result_collector ... ok
[INFO] [stdout] test benchmark::avx512_bench::tests::test_bench_functions ... ok
[INFO] [stdout] test faiss::hnsw_pq::tests::test_hnsw_pq_creation ... ok
[INFO] [stdout] test faiss::hnsw_pq::tests::test_hnsw_pq_ann_iterator_returns_results_on_trained_index ... ok
[INFO] [stdout] test faiss::hnsw_pq::tests::test_hnsw_pq_get_vector_by_ids_returns_stable_unsupported ... ok
[INFO] [stdout] test faiss::hnsw_pq::tests::test_hnsw_pq_has_raw_data_is_false ... ok
[INFO] [stdout] test bitset::tests::benchmark_avx2_specific_wrapper ... ok
[INFO] [stdout] test faiss::hnsw_pq::tests::test_hnsw_pq_save_load_return_stable_unsupported ... ok
[INFO] [stdout] test faiss::hnsw_prq::tests::test_hnsw_prq_creation ... ok
[INFO] [stdout] test faiss::hnsw_pq::tests::test_hnsw_pq_train_and_search ... ok
[INFO] [stdout] test faiss::hnsw_quantized::tests::test_hnsw_pq ... ok
[INFO] [stdout] test faiss::hnsw_quantized::tests::test_hnsw_sq ... ok
[INFO] [stdout] test faiss::hnsw_search::tests::test_search_empty ... ok
[INFO] [stdout] test faiss::hnsw_search::tests::test_search_single_node ... ok
[INFO] [stdout] test faiss::hnsw_search::tests::test_searcher_creation ... ok
[INFO] [stdout] test faiss::index::tests::test_create_index ... ok
[INFO] [stdout] test faiss::index::tests::test_search ... ok
[INFO] [stdout] test faiss::ivf::tests::test_ivf_add_search ... ok
[INFO] [stdout] test faiss::ivf::tests::test_ivf_new ... ok
[INFO] [stdout] test faiss::ivf::tests::test_ivf_train ... ok
[INFO] [stdout] test faiss::ivf_flat::tests::test_ivf_flat_new ... ok
[INFO] [stdout] test faiss::hnsw_pq::tests::test_hnsw_pq_with_bitset ... ok
[INFO] [stdout] test faiss::ivf_flat::tests::test_ivf_flat_train_add_search ... ok
[INFO] [stdout] test faiss::ivf_flat_cc::tests::test_ivf_flat_cc_concurrent_search ... ok
[INFO] [stdout] test faiss::ivf_flat_cc::tests::test_ivf_flat_cc_get_vectors ... ok
[INFO] [stdout] test faiss::ivf_flat_cc::tests::test_ivf_flat_cc_new ... ok
[INFO] [stdout] test faiss::ivf_flat_cc::tests::test_ivf_flat_cc_concurrent_add ... ok
[INFO] [stdout] test faiss::ivf_opq::tests::test_ivf_opq_config ... ok
[INFO] [stdout] test faiss::ivf_flat_cc::tests::test_ivf_flat_cc_train_add_search ... ok
[INFO] [stdout] test faiss::hnsw_prq::tests::test_hnsw_prq_train_and_search ... ok
[INFO] [stdout] test faiss::ivf_rabitq::tests::test_ivf_rabitq_save_load ... ok
[INFO] [stdout] test faiss::ivf_rabitq::tests::test_ivf_rabitq_search ... ok
[INFO] [stdout] test faiss::ivf_rabitq::tests::test_ivf_rabitq_train_add ... ok
[INFO] [stdout] test faiss::ivf_rabitq::tests::test_ivf_rabitq_with_ids ... ok
[INFO] [stdout] test faiss::ivf_sq8::tests::test_ivf_sq8_from_str ... ok
[INFO] [stdout] test faiss::ivf_sq8::tests::test_ivf_sq8_get_vector_by_ids_unsupported ... ok
[INFO] [stdout] test faiss::ivf_sq8::tests::test_ivf_sq8_index_type ... ok
[INFO] [stdout] test faiss::ivf_sq8::tests::test_ivf_sq8_new ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_parallel_build ... ok
[INFO] [stdout] test faiss::ivf_sq8::tests::test_ivf_sq8_train_add_search ... ok
[INFO] [stdout] test faiss::ivf_sq_cc::tests::test_ivf_sq_cc_concurrent_add ... ok
[INFO] [stdout] test faiss::ivf_sq_cc::tests::test_ivf_sq_cc_concurrent_search ... ok
[INFO] [stdout] test faiss::ivf_sq_cc::tests::test_ivf_sq_cc_get_vectors ... ok
[INFO] [stdout] test faiss::ivf_sq_cc::tests::test_ivf_sq_cc_new ... ok
[INFO] [stdout] test faiss::ivf_sq_cc::tests::test_ivf_sq_cc_train_add_search ... ok
[INFO] [stdout] test faiss::ivf_sq_cc::tests::test_ivf_sq_cc_concurrent_mixed ... ok
[INFO] [stdout] test faiss::ivfpq::tests::test_ivfpq_basic ... ok
[INFO] [stdout] test faiss::ivfpq_complete::tests::test_ivfpq_add_search ... ok
[INFO] [stdout] test faiss::ivfpq_complete::tests::test_ivfpq_new ... ok
[INFO] [stdout] test faiss::ivfpq_complete::tests::test_ivfpq_train ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_binaryset_empty_index ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_binaryset_serialize ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_calc_dist_by_ids ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_calc_dist_by_ids_invalid ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_get_vector_by_ids ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_get_vector_by_ids_empty_index ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_get_vector_by_ids_missing ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_mem_index ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_mem_index_dimension_mismatch ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_mem_index_empty ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_mem_index_inner_product ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_mem_index_invalid_dim ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_mem_index_search_dimension_mismatch ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_mem_index_serialize ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_mem_index_with_ids ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_range_search_inner_product ... ignored
[INFO] [stdout] test faiss::mem_index::tests::test_range_search_l2 ... ok
[INFO] [stdout] test faiss::mem_index::tests::test_range_search_with_filter ... ok
[INFO] [stdout] test faiss::pq::tests::test_distance_table ... ok
[INFO] [stdout] test faiss::pq::tests::test_pq_encode_decode ... ok
[INFO] [stdout] test faiss::pq::tests::test_pq_new ... ok
[INFO] [stdout] test faiss::pq::tests::test_pq_train ... ok
[INFO] [stdout] test faiss::pq_simd::tests::test_distance_table ... ok
[INFO] [stdout] test faiss::pq_simd::tests::test_pq_distance ... ok
[INFO] [stdout] test faiss::pq_simd::tests::test_pq_distance_new ... ok
[INFO] [stdout] test faiss::ivf_opq::tests::test_ivf_opq_search ... ok
[INFO] [stdout] test faiss::ivf_opq::tests::test_ivf_opq_train_and_add ... ok
[INFO] [stdout] test faiss::scann::tests::test_scann_config_validation ... ok
[INFO] [stdout] test faiss::scann::tests::test_scann_empty_search ... ok
[INFO] [stdout] test faiss::ivfpq::tests::test_ivfpq_recall ... ok
[INFO] [stdout] test faiss::scann::tests::test_scann_save_load ... ok
[INFO] [stdout] test faiss::scann::tests::test_scann_search_with_bitset_all_filtered ... ok
[INFO] [stdout] test faiss::scann::tests::test_anisotropic_quantizer ... ok
[INFO] [stdout] test faiss::scann::tests::test_scann_with_ids ... ok
[INFO] [stdout] test faiss::scann::tests::test_scann_search_with_bitset_partial_filter ... ok
[INFO] [stdout] test faiss::sparse::tests::test_sparse_algorithms_match_bruteforce ... ok
[INFO] [stdout] test faiss::sparse::tests::test_sparse_bm25_prefers_shorter_documents ... ok
[INFO] [stdout] test faiss::sparse::tests::test_sparse_drop_ratio_and_refine_factor ... ok
[INFO] [stdout] test faiss::sparse::tests::test_sparse_vector ... ok
[INFO] [stdout] test faiss::sparse::tests::test_tfidf ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_bm25_params ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_index_size ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_maxmin_heap ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_sparse_inverted_ann_iterator_respects_bitset ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_sparse_inverted_get_vector_by_ids_missing_id_errors ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_sparse_inverted_index_basic ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_sparse_inverted_index_get_vector ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_sparse_inverted_index_search ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_sparse_inverted_index_trait_path ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_sparse_inverted_save_load_roundtrip_preserves_iterator_and_vectors ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_sparse_vector ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_sparse_vector_from_dense ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_wand_matches_taat_on_non_contiguous_dims_with_bitset ... ok
[INFO] [stdout] test faiss::sparse_inverted::tests::test_wand_search_basic ... ok
[INFO] [stdout] test faiss::sparse_inverted_cc::tests::test_sparse_inverted_index_cc_basic ... ok
[INFO] [stdout] test faiss::sparse_inverted_cc::tests::test_sparse_inverted_index_cc_batch_add ... ok
[INFO] [stdout] test faiss::sparse_inverted_cc::tests::test_sparse_inverted_index_cc_bm25 ... ok
[INFO] [stdout] test faiss::sparse_inverted_cc::tests::test_sparse_inverted_index_cc_concurrent_add ... ok
[INFO] [stdout] test faiss::sparse_inverted_cc::tests::test_sparse_inverted_index_cc_concurrent_search ... ok
[INFO] [stdout] test faiss::sparse_inverted_cc::tests::test_sparse_inverted_index_cc_get_vector ... ok
[INFO] [stdout] test faiss::sparse_inverted_cc::tests::test_sparse_inverted_index_cc_new ... ok
[INFO] [stdout] test faiss::sparse_inverted_cc::tests::test_sparse_inverted_index_cc_search ... ok
[INFO] [stdout] test faiss::sparse_wand::tests::test_sparse_wand_add_search ... ok
[INFO] [stdout] test faiss::sparse_wand::tests::test_sparse_wand_ann_iterator_respects_bitset ... ok
[INFO] [stdout] test faiss::sparse_wand::tests::test_sparse_wand_get_vector_by_ids_missing_id_errors ... ok
[INFO] [stdout] test faiss::sparse_wand::tests::test_sparse_wand_index_trait_path ... ok
[INFO] [stdout] test faiss::sparse_wand::tests::test_sparse_wand_iterator_and_search_with_bitset_consistent ... ok
[INFO] [stdout] test faiss::sparse_wand::tests::test_sparse_wand_new ... ok
[INFO] [stdout] test faiss::sparse_wand::tests::test_sparse_wand_save_load_roundtrip_preserves_wand_behavior ... ok
[INFO] [stdout] test faiss::sparse_wand_cc::tests::test_sparse_wand_cc_add_search ... ok
[INFO] [stdout] test faiss::sparse_wand_cc::tests::test_sparse_wand_cc_new ... ok
[INFO] [stdout] test federation::tests::test_federation_info ... ok
[INFO] [stdout] test federation::tests::test_statistics ... ok
[INFO] [stdout] test ffi::interrupt_ffi::tests::test_interrupt_ffi_basic ... ok
[INFO] [stdout] test ffi::interrupt_ffi::tests::test_interrupt_ffi_clone ... ok
[INFO] [stdout] test ffi::interrupt_ffi::tests::test_interrupt_ffi_null_handling ... ok
[INFO] [stdout] test ffi::interrupt_ffi::tests::test_interrupt_ffi_test_and_set ... ok
[INFO] [stdout] test ffi::interrupt_ffi::tests::test_interrupt_ffi_with_state ... ok
[INFO] [stdout] test ffi::minhash_lsh_ffi::tests::test_null_pointer_handling ... ok
[INFO] [stdout] test ffi::minhash_lsh_ffi::tests::test_search_uses_vector_byte_size ... ok
[INFO] [stdout] test ffi::tests::test_bitset_and ... ok
[INFO] [stdout] test ffi::tests::test_bitset_and_empty ... ok
[INFO] [stdout] test ffi::tests::test_bitset_byte_size ... ok
[INFO] [stdout] test ffi::tests::test_bitset_count ... ok
[INFO] [stdout] test ffi::tests::test_bitset_create ... ok
[INFO] [stdout] test ffi::tests::test_bitset_create_and_set ... ok
[INFO] [stdout] test ffi::tests::test_bitset_data ... ok
[INFO] [stdout] test ffi::tests::test_bitset_empty ... ok
[INFO] [stdout] test ffi::tests::test_bitset_filter_ratio ... ok
[INFO] [stdout] test ffi::tests::test_bitset_get_first_valid_index ... ok
[INFO] [stdout] test ffi::tests::test_bitset_has_out_ids ... ok
[INFO] [stdout] test ffi::tests::test_bitset_null_handling ... ok
[INFO] [stdout] test ffi::tests::test_bitset_or ... ok
[INFO] [stdout] test ffi::tests::test_bitset_or_different_sizes ... ok
[INFO] [stdout] test ffi::tests::test_bitset_size ... ok
[INFO] [stdout] test ffi::tests::test_bitset_test ... ok
[INFO] [stdout] test ffi::tests::test_bitset_xor ... ok
[INFO] [stdout] test ffi::tests::test_create_flat_index ... ok
[INFO] [stdout] test ffi::tests::test_create_hnsw_index ... ok
[INFO] [stdout] test ffi::tests::test_deserialize_empty_binset ... ok
[INFO] [stdout] test ffi::tests::test_deserialize_index ... ok
[INFO] [stdout] test ffi::tests::test_deserialize_null_index ... ok
[INFO] [stdout] test ffi::tests::test_ffi_abi_metadata_contract ... ok
[INFO] [stdout] test ffi::tests::test_ffi_persistence_flat_empty_file_load_fails ... ok
[INFO] [stdout] test ffi::tests::test_ffi_persistence_ivf_sq8_reports_constrained_deserialize_from_file ... ok
[INFO] [stdout] test ffi::tests::test_free_get_vector_result_null ... ok
[INFO] [stdout] test ffi::tests::test_free_range_result_null ... ok
[INFO] [stdout] test ffi::tests::test_get_vector_by_ids_dimension_mismatch ... ok
[INFO] [stdout] test ffi::tests::test_get_vector_by_ids_flat ... ok
[INFO] [stdout] test ffi::tests::test_get_vector_by_ids_hnsw_not_implemented ... ok
[INFO] [stdout] test ffi::tests::test_get_vector_by_ids_multiple ... ok
[INFO] [stdout] test ffi::tests::test_get_vector_by_ids_nonexistent ... ok
[INFO] [stdout] test ffi::tests::test_get_vector_by_ids_null_index ... ok
[INFO] [stdout] test ffi::tests::test_get_vectors_by_ids ... ok
[INFO] [stdout] test ffi::tests::test_index_statistics_flat ... ok
[INFO] [stdout] test ffi::tests::test_index_statistics_hnsw ... ok
[INFO] [stdout] test ffi::tests::test_index_statistics_null_pointer ... ok
[INFO] [stdout] test ffi::tests::test_index_type_hnsw_pq ... ok
[INFO] [stdout] test ffi::tests::test_index_type_minhash_lsh ... ok
[INFO] [stdout] test ffi::tests::test_index_type_sparse_wand ... ok
[INFO] [stdout] test ffi::tests::test_load_null_index ... ok
[INFO] [stdout] test ffi::tests::test_minhash_add_binary_rejects_invalid_dim_alignment ... ok
[INFO] [stdout] test ffi::tests::test_range_search_flat_l2 ... ok
[INFO] [stdout] test ffi::tests::test_range_search_hnsw_not_implemented ... ok
[INFO] [stdout] test ffi::tests::test_range_search_multiple_queries ... ok
[INFO] [stdout] test ffi::tests::test_range_search_null_index ... ok
[INFO] [stdout] test ffi::tests::test_range_search_null_query ... ok
[INFO] [stdout] test ffi::tests::test_save_load_flat_index ... ok
[INFO] [stdout] test ffi::tests::test_save_load_hnsw_index ... ok
[INFO] [stdout] test ffi::tests::test_save_null_index ... ok
[INFO] [stdout] test ffi::tests::test_search_with_bitset_flat ... ok
[INFO] [stdout] test ffi::tests::test_search_with_bitset_null_params ... ok
[INFO] [stdout] test ffi::tests::test_serialize_flat_index ... ok
[INFO] [stdout] test ffi::tests::test_serialize_null_index ... ok
[INFO] [stdout] test half::tests::test_batch_convert ... ok
[INFO] [stdout] test half::tests::test_bf16_basic ... ok
[INFO] [stdout] test half::tests::test_bf16_inf_nan ... ok
[INFO] [stdout] test half::tests::test_bf16_ip ... ok
[INFO] [stdout] test half::tests::test_bf16_ip_batch_4 ... ok
[INFO] [stdout] test half::tests::test_bf16_ip_batch_4_remainder ... ok
[INFO] [stdout] test half::tests::test_bf16_ip_large_vectors ... ok
[INFO] [stdout] test half::tests::test_bf16_ip_simd_large ... ok
[INFO] [stdout] test half::tests::test_bf16_l2_batch_4 ... ok
[INFO] [stdout] test half::tests::test_bf16_l2_batch_4_remainder ... ok
[INFO] [stdout] test half::tests::test_bf16_l2_distance ... ok
[INFO] [stdout] test half::tests::test_bf16_l2_large_vectors ... ok
[INFO] [stdout] test half::tests::test_bf16_precision_loss ... ok
[INFO] [stdout] test half::tests::test_bf16_zero ... ok
[INFO] [stdout] test half::tests::test_fp16_basic ... ok
[INFO] [stdout] test half::tests::test_fp16_inf_nan ... ok
[INFO] [stdout] test half::tests::test_fp16_ip ... ok
[INFO] [stdout] test half::tests::test_fp16_ip_batch_4 ... ok
[INFO] [stdout] test half::tests::test_fp16_ip_batch_4_remainder ... ok
[INFO] [stdout] test half::tests::test_fp16_ip_large_vectors ... ok
[INFO] [stdout] test half::tests::test_fp16_ip_simd_large ... ok
[INFO] [stdout] test half::tests::test_fp16_l2_batch_4 ... ok
[INFO] [stdout] test half::tests::test_fp16_l2_batch_4_remainder ... ok
[INFO] [stdout] test half::tests::test_fp16_l2_distance ... ok
[INFO] [stdout] test half::tests::test_fp16_l2_large_vectors ... ok
[INFO] [stdout] test half::tests::test_fp16_negative ... ok
[INFO] [stdout] test half::tests::test_fp16_zero ... ok
[INFO] [stdout] test index::minhash_lsh::tests::test_bloom_filter ... ok
[INFO] [stdout] test index::minhash_lsh::tests::test_hash_key ... ok
[INFO] [stdout] test index::minhash_lsh::tests::test_jaccard_distance ... ok
[INFO] [stdout] test index::minhash_lsh::tests::test_jaccard_knn_search_by_ids ... ok
[INFO] [stdout] test index::minhash_lsh::tests::test_minhash_lsh_build ... ok
[INFO] [stdout] test index::minhash_lsh::tests::test_minhash_lsh_get_vector_by_ids ... ok
[INFO] [stdout] test index::minhash_lsh::tests::test_minhash_lsh_save_load ... ok
[INFO] [stdout] test index::minhash_lsh::tests::test_minhash_lsh_search ... ok
[INFO] [stdout] test index::minhash_lsh::tests::test_result_handler ... ok
[INFO] [stdout] test index::minhash_lsh::tests::test_search_with_jaccard ... ok
[INFO] [stdout] test index::minhash_lsh_index_trait::tests::test_minhash_index_trait_ann_iterator ... ok
[INFO] [stdout] test index::minhash_lsh_index_trait::tests::test_minhash_index_trait_basic ... ok
[INFO] [stdout] test index::minhash_lsh_index_trait::tests::test_minhash_index_trait_get_vector_by_ids ... ok
[INFO] [stdout] test index::minhash_lsh_index_trait::tests::test_minhash_index_trait_save_load ... ok
[INFO] [stdout] test index::minhash_lsh_index_trait::tests::test_minhash_index_trait_search ... ok
[INFO] [stdout] test index::tests::test_index_error_display ... ok
[INFO] [stdout] test index::tests::test_search_result ... ok
[INFO] [stdout] test integration::tests::test_generate_data ... ok
[INFO] [stdout] test integration::tests::test_ivfpq_index ... ok
[INFO] [stdout] test interrupt::tests::test_interrupt_basic ... ok
[INFO] [stdout] test interrupt::tests::test_interrupt_clone ... ok
[INFO] [stdout] test interrupt::tests::test_interrupt_thread_safety ... ok
[INFO] [stdout] test interrupt::tests::test_with_state ... ok
[INFO] [stdout] test layout::tests::test_column_store ... ok
[INFO] [stdout] test layout::tests::test_soa ... ok
[INFO] [stdout] test lru_cache::tests::test_cache_prewarm_defaults ... ok
[INFO] [stdout] test lru_cache::tests::test_cache_prewarm_warmup ... ok
[INFO] [stdout] test lru_cache::tests::test_lru_eviction ... ok
[INFO] [stdout] test lru_cache::tests::test_lru_new ... ok
[INFO] [stdout] test lru_cache::tests::test_lru_put_get ... ok
[INFO] [stdout] test lru_cache::tests::test_lru_update ... ok
[INFO] [stdout] test lru_cache::tests::test_simple_lru ... ok
[INFO] [stdout] test memory::tests::test_graph_store ... ok
[INFO] [stdout] test memory::tests::test_vector_store ... ok
[INFO] [stdout] test metrics::tests::test_cosine_distance ... ok
[INFO] [stdout] test metrics::tests::test_distance_batch ... ok
[INFO] [stdout] test metrics::tests::test_hamming_distance ... ok
[INFO] [stdout] test metrics::tests::test_inner_product ... ok
[INFO] [stdout] test metrics::tests::test_jaccard_distance ... ok
[INFO] [stdout] test metrics::tests::test_l2_distance ... ok
[INFO] [stdout] test metrics::tests::test_metric_type_from_str ... ok
[INFO] [stdout] test once_cell::tests::test_once ... ok
[INFO] [stdout] test prealloc::tests::test_prealloc ... ok
[INFO] [stdout] test quantization::kmeans::tests::test_kmeans ... ok
[INFO] [stdout] test quantization::kmeans::tests::test_kmeans_convergence ... ok
[INFO] [stdout] test quantization::opq::tests::test_opq_config ... ok
[INFO] [stdout] test quantization::opq::tests::test_opq_decode ... ok
[INFO] [stdout] test quantization::opq::tests::test_opq_random_rotation ... ok
[INFO] [stdout] test quantization::opq::tests::test_opq_train_and_encode ... ok
[INFO] [stdout] test quantization::pq::tests::test_pq_config ... ok
[INFO] [stdout] test quantization::pq::tests::test_pq_config_validation ... ok
[INFO] [stdout] test benchmark::cross_dataset_sampling::tests::test_cross_dataset_artifact_shape has been running for over 60 seconds
[INFO] [stdout] test bitset::tests::benchmark_simd_performance has been running for over 60 seconds
[INFO] [stdout] test clustering::mini_batch_kmeans::tests::test_mini_batch_kmeans_large_dataset has been running for over 60 seconds
[INFO] [stdout] test bitset::tests::benchmark_simd_performance ... ok
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_parallel_api_compatibility has been running for over 60 seconds
[INFO] [stdout] test quantization::pq::tests::test_pq_decode ... ok
[INFO] [stdout] test quantization::pq::tests::test_pq_distance ... ok
[INFO] [stdout] test faiss::scann::tests::test_scann_search_with_bitset ... ok
[INFO] [stdout] test quantization::prq::tests::test_prq_creation ... ok
[INFO] [stdout] test quantization::pq::tests::test_pq_get_centroids ... ok
[INFO] [stdout] test quantization::rabitq::tests::test_rabitq_distance_computation ... ok
[INFO] [stdout] test quantization::rabitq::tests::test_rabitq_encode_decode ... ok
[INFO] [stdout] test quantization::rabitq::tests::test_rabitq_encode_with_centroid ... ok
[INFO] [stdout] test quantization::rabitq::tests::test_rabitq_encoder_train ... ok
[INFO] [stdout] test quantization::rabitq::tests::test_rabitq_q8_distance_computation ... ok
[INFO] [stdout] test quantization::rabitq::tests::test_rabitq_q8_recall ... ok
[INFO] [stdout] test quantization::refine::tests::test_refine_rerank_batch ... ok
[INFO] [stdout] test quantization::refine::tests::test_refine_rerank_dataview ... ok
[INFO] [stdout] test quantization::refine::tests::test_refine_rerank_float16 ... ok
[INFO] [stdout] test quantization::pq::tests::test_pq_train_and_encode ... ok
[INFO] [stdout] test quantization::residual_pq::tests::test_residual_pq_config ... ok
[INFO] [stdout] test quantization::residual_pq::tests::test_residual_pq_decode ... ok
[INFO] [stdout] test quantization::residual_pq::tests::test_residual_pq_train_and_encode ... ok
[INFO] [stdout] test quantization::residual_pq::tests::test_residual_pq_vs_standard_pq ... ok
[INFO] [stdout] test quantization::rq::tests::test_rq_creation ... ok
[INFO] [stdout] test quantization::prq::tests::test_prq_train_and_encode ... ok
[INFO] [stdout] test quantization::sq::tests::test_sq4 ... ok
[INFO] [stdout] test quantization::sq::tests::test_sq8_encode_decode ... ok
[INFO] [stdout] test quantization::sq::tests::test_sq8_new ... ok
[INFO] [stdout] test quantization::sq::tests::test_sq8_train ... ok
[INFO] [stdout] test ring::tests::test_ring ... ok
[INFO] [stdout] test serialize::tests::test_serialize_usize ... ok
[INFO] [stdout] test serialize::tests::test_serialize_vector ... ok
[INFO] [stdout] test simd::binary_tests::test_hamming_basic ... ok
[INFO] [stdout] test simd::binary_tests::test_hamming_large ... ok
[INFO] [stdout] test simd::binary_tests::test_jaccard_basic ... ok
[INFO] [stdout] test simd::binary_tests::test_jaccard_large ... ok
[INFO] [stdout] test simd::tests::test_inner_product ... ok
[INFO] [stdout] test simd::tests::test_ip_batch_4_autoselect ... ok
[INFO] [stdout] test simd::tests::test_ip_batch_4_scalar ... ok
[INFO] [stdout] test simd::tests::test_ip_batch_optimized ... ok
[INFO] [stdout] test simd::tests::test_l1_128 ... ok
[INFO] [stdout] test simd::tests::test_l1_equivalence ... ok
[INFO] [stdout] test simd::tests::test_l1_scalar ... ok
[INFO] [stdout] test simd::tests::test_l2_batch_4_autoselect ... ok
[INFO] [stdout] test simd::tests::test_l2_batch_4_ptr_matches_slice ... ok
[INFO] [stdout] test simd::tests::test_l2_batch_4_scalar ... ok
[INFO] [stdout] test simd::tests::test_l2_batch_optimized ... ok
[INFO] [stdout] test simd::tests::test_l2_distance_sq_ptr_matches_slice ... ok
[INFO] [stdout] test simd::tests::test_l2_distance_sq_requires_equal_lengths ... ok
[INFO] [stdout] test quantization::rq::tests::test_rq_train_and_encode ... ok
[INFO] [stdout] test simd::tests::test_l2_scalar ... ok
[INFO] [stdout] test simd::tests::test_linf_128 ... ok
[INFO] [stdout] test simd::tests::test_linf_equivalence ... ok
[INFO] [stdout] test simd::tests::test_linf_mixed ... ok
[INFO] [stdout] test simd::tests::test_linf_scalar ... ok
[INFO] [stdout] test skiplist::tests::test_skip_list_delete ... ok
[INFO] [stdout] test skiplist::tests::test_skip_list_insert ... ok
[INFO] [stdout] test skiplist::tests::test_skip_list_new ... ok
[INFO] [stdout] test skiplist::tests::test_skip_list_search ... ok
[INFO] [stdout] test stats::tests::test_counter ... ok
[INFO] [stdout] test stats::tests::test_stats ... ok
[INFO] [stdout] test stats::tests::test_timer ... ok
[INFO] [stdout] test simd::tests::test_l2_equivalence ... ok
[INFO] [stdout] test storage::mem::tests::test_mem_storage ... ok
[INFO] [stdout] test utils::tests::test_byteswap ... ok
[INFO] [stdout] test storage::mmap::tests::test_mmap_read ... ok
[INFO] [stdout] test utils::tests::test_hash ... ok
[INFO] [stdout] test version::tests::test_version ... ok
[INFO] [stdout] test version::tests::test_config ... ok
[INFO] [stdout] test quantization::residual_pq::tests::test_optimized_residual_pq ... ok
[INFO] [stdout] test faiss::scann::tests::test_scann_with_query_sample ... ok
[INFO] [stdout] test clustering::mini_batch_kmeans::tests::test_mini_batch_kmeans_large_dataset ... ok
[INFO] [stdout] test faiss::scann::tests::test_scann_basic has been running for over 60 seconds
[INFO] [stdout] test faiss::hnsw::tests::test_hnsw_parallel_api_compatibility ... ok
[INFO] [stdout] test benchmark::cross_dataset_sampling::tests::test_cross_dataset_artifact_shape ... ok
[INFO] [stdout] test faiss::scann::tests::test_scann_basic ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- bitset::tests::test_simd_batch_operations stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'bitset::tests::test_simd_batch_operations' (79) panicked at src/bitset.rs:965:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 128
[INFO] [stdout]  right: 1024
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x61210917491a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x61210917491a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x61210917491a - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x61210917491a - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x61210918af7a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x61210918af7a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x612109179332 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x612109179332 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x612109151e0f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x612109151e0f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x61210916c2a9 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x612109078eec - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x612109078eec - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x61210916c522 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x61210916c522 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x612109151ec8 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x612109149789 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x612109152bdd - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x61210918b85c - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x61210918b713 - core[10b6fa85044e1869]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x612109186b9d - core[10b6fa85044e1869]::panicking::assert_failed::<usize, usize>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x612108d9f2df - knowhere_rs::bitset::tests::test_simd_batch_operations::hfd1cb2d0c8a88c2d
[INFO] [stdout]                                at /opt/rustwide/workdir/src/bitset.rs:965:9
[INFO] [stdout]   22:     0x612108d9f507 - knowhere_rs::bitset::tests::test_simd_batch_operations::{{closure}}::h671340292a9485b7
[INFO] [stdout]                                at /opt/rustwide/workdir/src/bitset.rs:961:36
[INFO] [stdout]   23:     0x612108fbfd86 - core::ops::function::FnOnce::call_once::heaac96e426b503a3
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x61210906cfcb - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x61210906cfcb - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x6121090799bb - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x6121090799bb - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x6121090799bb - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x6121090799bb - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x6121090799bb - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x6121090799bb - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x6121090799bb - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x6121090750d4 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x6121090750d4 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x61210907c5c2 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x61210907c5c2 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x61210907c5c2 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x61210907c5c2 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x61210907c5c2 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x61210907c5c2 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x61210907c5c2 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x61210917401f - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   43:     0x61210917401f - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7320782e6aa4 - <unknown>
[INFO] [stdout]   45:     0x732078373a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- bitset::tests::test_simd_large_dataset stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'bitset::tests::test_simd_large_dataset' (82) panicked at src/bitset.rs:1016:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 10112
[INFO] [stdout]  right: 80000
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x61210917491a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x61210917491a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x61210917491a - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x61210917491a - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x61210918af7a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x61210918af7a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x612109179332 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x612109179332 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x612109151e0f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x612109151e0f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x61210916c2a9 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x612109078eec - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x612109078eec - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x61210916c522 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x61210916c522 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x612109151ec8 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x612109149789 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x612109152bdd - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x61210918b85c - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x61210918b713 - core[10b6fa85044e1869]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x612109186b9d - core[10b6fa85044e1869]::panicking::assert_failed::<usize, usize>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x612108d9dce4 - knowhere_rs::bitset::tests::test_simd_large_dataset::h1357e3606d43f238
[INFO] [stdout]                                at /opt/rustwide/workdir/src/bitset.rs:1016:9
[INFO] [stdout]   22:     0x612108d9dfb7 - knowhere_rs::bitset::tests::test_simd_large_dataset::{{closure}}::hac7c45a2e916f620
[INFO] [stdout]                                at /opt/rustwide/workdir/src/bitset.rs:1010:33
[INFO] [stdout]   23:     0x612108fbb716 - core::ops::function::FnOnce::call_once::h7ac7167cc9c371ea
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x61210906cfcb - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x61210906cfcb - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x6121090799bb - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x6121090799bb - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x6121090799bb - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x6121090799bb - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x6121090799bb - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x6121090799bb - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x6121090799bb - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x6121090750d4 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x6121090750d4 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x61210907c5c2 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x61210907c5c2 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x61210907c5c2 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x61210907c5c2 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x61210907c5c2 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x61210907c5c2 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x61210907c5c2 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x61210917401f - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   43:     0x61210917401f - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7320782e6aa4 - <unknown>
[INFO] [stdout]   45:     0x732078373a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     bitset::tests::test_simd_batch_operations
[INFO] [stdout]     bitset::tests::test_simd_large_dataset
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 524 passed; 2 failed; 2 ignored; 0 measured; 0 filtered out; finished in 155.98s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "103913b7ea9425e6e361fed02c38fcbe3849f55d83c493b16ba967779f8af224", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "103913b7ea9425e6e361fed02c38fcbe3849f55d83c493b16ba967779f8af224", kill_on_drop: false }`
[INFO] [stdout] 103913b7ea9425e6e361fed02c38fcbe3849f55d83c493b16ba967779f8af224
