[INFO] fetching crate wradlibrs 0.2.2...
[INFO] testing wradlibrs-0.2.2 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate wradlibrs 0.2.2 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate wradlibrs 0.2.2
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate wradlibrs 0.2.2
[INFO] tweaked toml for crates.io crate wradlibrs 0.2.2 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate wradlibrs 0.2.2 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate wradlibrs 0.2.2 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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9
[INFO] running `Command { std: "docker" "start" "c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling ndarray v0.17.2
[INFO] [stderr]    Compiling wradlibrs v0.2.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/ipol.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     /// **wradlib.ipol.interpolate_polar 逐位复刻**(2026-09-08 收敛 100%):
[INFO] [stdout] 202 | |     /// - 角度 = np.radians(np.linspace(0,360,num=n,endpoint=False))
[INFO] [stdout] 203 | |     ///   = fl(fl(i·360)/n)·fl(π/180)(逐位复刻 numpy 舍入路径;实证
[INFO] [stdout] 204 | |     ///   np.cos/np.sin 数组 SIMD 与本机 libm 逐位一致,Rust MSVC UCRT
[INFO] [stdout] ...   |
[INFO] [stdout] 212 | |     ///   不做任何填充含二次回填)
[INFO] [stdout] 213 | |     /// - 第一遍:填 mask 格;第二遍:剩余 NaN 全部回填(同源集)
[INFO] [stdout]     | |____________________________________________________________^
[INFO] [stdout] 214 |       let (n_angles, n_ranges) = data.dim();
[INFO] [stdout]     |       -------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/atten.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub message: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:548:5
[INFO] [stdout]     |
[INFO] [stdout] 548 |     pub zdr_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:549:5
[INFO] [stdout]     |
[INFO] [stdout] 549 |     pub rho_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:550:5
[INFO] [stdout]     |
[INFO] [stdout] 550 |     pub phi_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:551:5
[INFO] [stdout]     |
[INFO] [stdout] 551 |     pub dop_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:552:5
[INFO] [stdout]     |
[INFO] [stdout] 552 |     pub map_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:553:5
[INFO] [stdout]     |
[INFO] [stdout] 553 |     pub w_zdr: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:554:5
[INFO] [stdout]     |
[INFO] [stdout] 554 |     pub w_rho: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:555:5
[INFO] [stdout]     |
[INFO] [stdout] 555 |     pub w_phi: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:556:5
[INFO] [stdout]     |
[INFO] [stdout] 556 |     pub w_dop: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:557:5
[INFO] [stdout]     |
[INFO] [stdout] 557 |     pub w_map: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:580:5
[INFO] [stdout]     |
[INFO] [stdout] 580 |     pub zdr: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:581:5
[INFO] [stdout]     |
[INFO] [stdout] 581 |     pub rho: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:582:5
[INFO] [stdout]     |
[INFO] [stdout] 582 |     pub phi: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:583:5
[INFO] [stdout]     |
[INFO] [stdout] 583 |     pub dop: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:584:5
[INFO] [stdout]     |
[INFO] [stdout] 584 |     pub map: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:589:5
[INFO] [stdout]     |
[INFO] [stdout] 589 |     pub probability: Array2<f32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:590:5
[INFO] [stdout]     |
[INFO] [stdout] 590 |     pub nan_mask: Array2<bool>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1281:5
[INFO] [stdout]      |
[INFO] [stdout] 1281 |     Nug { ps: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1281:11
[INFO] [stdout]      |
[INFO] [stdout] 1281 |     Nug { ps: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1282:5
[INFO] [stdout]      |
[INFO] [stdout] 1282 |     Lin { ps: f64, rng: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1282:11
[INFO] [stdout]      |
[INFO] [stdout] 1282 |     Lin { ps: f64, rng: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1282:20
[INFO] [stdout]      |
[INFO] [stdout] 1282 |     Lin { ps: f64, rng: f64 },
[INFO] [stdout]      |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1283:5
[INFO] [stdout]      |
[INFO] [stdout] 1283 |     Sph { ps: f64, rng: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1283:11
[INFO] [stdout]      |
[INFO] [stdout] 1283 |     Sph { ps: f64, rng: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1283:20
[INFO] [stdout]      |
[INFO] [stdout] 1283 |     Sph { ps: f64, rng: f64 },
[INFO] [stdout]      |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1284:5
[INFO] [stdout]      |
[INFO] [stdout] 1284 |     Exp { ps: f64, rng: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1284:11
[INFO] [stdout]      |
[INFO] [stdout] 1284 |     Exp { ps: f64, rng: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1284:20
[INFO] [stdout]      |
[INFO] [stdout] 1284 |     Exp { ps: f64, rng: f64 },
[INFO] [stdout]      |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1285:5
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     Gau { ps: f64, rng: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1285:11
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     Gau { ps: f64, rng: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1285:20
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     Gau { ps: f64, rng: f64 },
[INFO] [stdout]      |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/zr.rs:833:5
[INFO] [stdout]     |
[INFO] [stdout] 833 |     S,
[INFO] [stdout]     |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/zr.rs:834:5
[INFO] [stdout]     |
[INFO] [stdout] 834 |     C,
[INFO] [stdout]     |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/zr.rs:835:5
[INFO] [stdout]     |
[INFO] [stdout] 835 |     X,
[INFO] [stdout]     |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.64s
[INFO] running `Command { std: "docker" "inspect" "c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/ipol.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     /// **wradlib.ipol.interpolate_polar 逐位复刻**(2026-09-08 收敛 100%):
[INFO] [stdout] 202 | |     /// - 角度 = np.radians(np.linspace(0,360,num=n,endpoint=False))
[INFO] [stdout] 203 | |     ///   = fl(fl(i·360)/n)·fl(π/180)(逐位复刻 numpy 舍入路径;实证
[INFO] [stdout] 204 | |     ///   np.cos/np.sin 数组 SIMD 与本机 libm 逐位一致,Rust MSVC UCRT
[INFO] [stdout] ...   |
[INFO] [stdout] 212 | |     ///   不做任何填充含二次回填)
[INFO] [stdout] 213 | |     /// - 第一遍:填 mask 格;第二遍:剩余 NaN 全部回填(同源集)
[INFO] [stdout]     | |____________________________________________________________^
[INFO] [stdout] 214 |       let (n_angles, n_ranges) = data.dim();
[INFO] [stdout]     |       -------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/atten.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub message: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:548:5
[INFO] [stdout]     |
[INFO] [stdout] 548 |     pub zdr_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:549:5
[INFO] [stdout]     |
[INFO] [stdout] 549 |     pub rho_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:550:5
[INFO] [stdout]     |
[INFO] [stdout] 550 |     pub phi_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:551:5
[INFO] [stdout]     |
[INFO] [stdout] 551 |     pub dop_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:552:5
[INFO] [stdout]     |
[INFO] [stdout] 552 |     pub map_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:553:5
[INFO] [stdout]     |
[INFO] [stdout] 553 |     pub w_zdr: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:554:5
[INFO] [stdout]     |
[INFO] [stdout] 554 |     pub w_rho: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:555:5
[INFO] [stdout]     |
[INFO] [stdout] 555 |     pub w_phi: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:556:5
[INFO] [stdout]     |
[INFO] [stdout] 556 |     pub w_dop: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:557:5
[INFO] [stdout]     |
[INFO] [stdout] 557 |     pub w_map: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:580:5
[INFO] [stdout]     |
[INFO] [stdout] 580 |     pub zdr: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:581:5
[INFO] [stdout]     |
[INFO] [stdout] 581 |     pub rho: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:582:5
[INFO] [stdout]     |
[INFO] [stdout] 582 |     pub phi: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:583:5
[INFO] [stdout]     |
[INFO] [stdout] 583 |     pub dop: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:584:5
[INFO] [stdout]     |
[INFO] [stdout] 584 |     pub map: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:589:5
[INFO] [stdout]     |
[INFO] [stdout] 589 |     pub probability: Array2<f32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:590:5
[INFO] [stdout]     |
[INFO] [stdout] 590 |     pub nan_mask: Array2<bool>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1281:5
[INFO] [stdout]      |
[INFO] [stdout] 1281 |     Nug { ps: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1281:11
[INFO] [stdout]      |
[INFO] [stdout] 1281 |     Nug { ps: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1282:5
[INFO] [stdout]      |
[INFO] [stdout] 1282 |     Lin { ps: f64, rng: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1282:11
[INFO] [stdout]      |
[INFO] [stdout] 1282 |     Lin { ps: f64, rng: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1282:20
[INFO] [stdout]      |
[INFO] [stdout] 1282 |     Lin { ps: f64, rng: f64 },
[INFO] [stdout]      |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1283:5
[INFO] [stdout]      |
[INFO] [stdout] 1283 |     Sph { ps: f64, rng: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1283:11
[INFO] [stdout]      |
[INFO] [stdout] 1283 |     Sph { ps: f64, rng: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1283:20
[INFO] [stdout]      |
[INFO] [stdout] 1283 |     Sph { ps: f64, rng: f64 },
[INFO] [stdout]      |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1284:5
[INFO] [stdout]      |
[INFO] [stdout] 1284 |     Exp { ps: f64, rng: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1284:11
[INFO] [stdout]      |
[INFO] [stdout] 1284 |     Exp { ps: f64, rng: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1284:20
[INFO] [stdout]      |
[INFO] [stdout] 1284 |     Exp { ps: f64, rng: f64 },
[INFO] [stdout]      |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1285:5
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     Gau { ps: f64, rng: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1285:11
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     Gau { ps: f64, rng: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1285:20
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     Gau { ps: f64, rng: f64 },
[INFO] [stdout]      |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/zr.rs:833:5
[INFO] [stdout]     |
[INFO] [stdout] 833 |     S,
[INFO] [stdout]     |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/zr.rs:834:5
[INFO] [stdout]     |
[INFO] [stdout] 834 |     C,
[INFO] [stdout]     |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/zr.rs:835:5
[INFO] [stdout]     |
[INFO] [stdout] 835 |     X,
[INFO] [stdout]     |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling wradlibrs v0.2.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/ipol.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     /// **wradlib.ipol.interpolate_polar 逐位复刻**(2026-09-08 收敛 100%):
[INFO] [stdout] 202 | |     /// - 角度 = np.radians(np.linspace(0,360,num=n,endpoint=False))
[INFO] [stdout] 203 | |     ///   = fl(fl(i·360)/n)·fl(π/180)(逐位复刻 numpy 舍入路径;实证
[INFO] [stdout] 204 | |     ///   np.cos/np.sin 数组 SIMD 与本机 libm 逐位一致,Rust MSVC UCRT
[INFO] [stdout] ...   |
[INFO] [stdout] 212 | |     ///   不做任何填充含二次回填)
[INFO] [stdout] 213 | |     /// - 第一遍:填 mask 格;第二遍:剩余 NaN 全部回填(同源集)
[INFO] [stdout]     | |____________________________________________________________^
[INFO] [stdout] 214 |       let (n_angles, n_ranges) = data.dim();
[INFO] [stdout]     |       -------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array1`
[INFO] [stdout]    --> src/qual.rs:233:31
[INFO] [stdout]     |
[INFO] [stdout] 233 |     use ndarray::{arr1, arr2, Array1, Array2, Array3};
[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: `ratio`
[INFO] [stdout]    --> src/qual.rs:500:14
[INFO] [stdout]     |
[INFO] [stdout] 500 |         let (ratio, ibb) = get_bb_ratio(&bb_height, &bb_width, &quality, &zp_r);
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_ratio`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ratio`
[INFO] [stdout]    --> src/qual.rs:515:14
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let (ratio, ibb) = get_bb_ratio(&bb_height, &bb_width, &quality, &zp_r);
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_ratio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/atten.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub message: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:548:5
[INFO] [stdout]     |
[INFO] [stdout] 548 |     pub zdr_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:549:5
[INFO] [stdout]     |
[INFO] [stdout] 549 |     pub rho_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:550:5
[INFO] [stdout]     |
[INFO] [stdout] 550 |     pub phi_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:551:5
[INFO] [stdout]     |
[INFO] [stdout] 551 |     pub dop_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:552:5
[INFO] [stdout]     |
[INFO] [stdout] 552 |     pub map_params: [f32; 4],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:553:5
[INFO] [stdout]     |
[INFO] [stdout] 553 |     pub w_zdr: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:554:5
[INFO] [stdout]     |
[INFO] [stdout] 554 |     pub w_rho: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:555:5
[INFO] [stdout]     |
[INFO] [stdout] 555 |     pub w_phi: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:556:5
[INFO] [stdout]     |
[INFO] [stdout] 556 |     pub w_dop: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:557:5
[INFO] [stdout]     |
[INFO] [stdout] 557 |     pub w_map: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:580:5
[INFO] [stdout]     |
[INFO] [stdout] 580 |     pub zdr: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:581:5
[INFO] [stdout]     |
[INFO] [stdout] 581 |     pub rho: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:582:5
[INFO] [stdout]     |
[INFO] [stdout] 582 |     pub phi: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:583:5
[INFO] [stdout]     |
[INFO] [stdout] 583 |     pub dop: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:584:5
[INFO] [stdout]     |
[INFO] [stdout] 584 |     pub map: Option<Array2<f32>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:589:5
[INFO] [stdout]     |
[INFO] [stdout] 589 |     pub probability: Array2<f32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/classify.rs:590:5
[INFO] [stdout]     |
[INFO] [stdout] 590 |     pub nan_mask: Array2<bool>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1281:5
[INFO] [stdout]      |
[INFO] [stdout] 1281 |     Nug { ps: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1281:11
[INFO] [stdout]      |
[INFO] [stdout] 1281 |     Nug { ps: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1282:5
[INFO] [stdout]      |
[INFO] [stdout] 1282 |     Lin { ps: f64, rng: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1282:11
[INFO] [stdout]      |
[INFO] [stdout] 1282 |     Lin { ps: f64, rng: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1282:20
[INFO] [stdout]      |
[INFO] [stdout] 1282 |     Lin { ps: f64, rng: f64 },
[INFO] [stdout]      |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1283:5
[INFO] [stdout]      |
[INFO] [stdout] 1283 |     Sph { ps: f64, rng: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1283:11
[INFO] [stdout]      |
[INFO] [stdout] 1283 |     Sph { ps: f64, rng: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1283:20
[INFO] [stdout]      |
[INFO] [stdout] 1283 |     Sph { ps: f64, rng: f64 },
[INFO] [stdout]      |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1284:5
[INFO] [stdout]      |
[INFO] [stdout] 1284 |     Exp { ps: f64, rng: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1284:11
[INFO] [stdout]      |
[INFO] [stdout] 1284 |     Exp { ps: f64, rng: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1284:20
[INFO] [stdout]      |
[INFO] [stdout] 1284 |     Exp { ps: f64, rng: f64 },
[INFO] [stdout]      |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]     --> src/ipol.rs:1285:5
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     Gau { ps: f64, rng: f64 },
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1285:11
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     Gau { ps: f64, rng: f64 },
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]     --> src/ipol.rs:1285:20
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     Gau { ps: f64, rng: f64 },
[INFO] [stdout]      |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/zr.rs:833:5
[INFO] [stdout]     |
[INFO] [stdout] 833 |     S,
[INFO] [stdout]     |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/zr.rs:834:5
[INFO] [stdout]     |
[INFO] [stdout] 834 |     C,
[INFO] [stdout]     |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/zr.rs:835:5
[INFO] [stdout]     |
[INFO] [stdout] 835 |     X,
[INFO] [stdout]     |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.97s
[INFO] running `Command { std: "docker" "inspect" "c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/ipol.rs:201:5
[INFO] [stderr]     |
[INFO] [stderr] 201 | /     /// **wradlib.ipol.interpolate_polar 逐位复刻**(2026-09-08 收敛 100%):
[INFO] [stderr] 202 | |     /// - 角度 = np.radians(np.linspace(0,360,num=n,endpoint=False))
[INFO] [stderr] 203 | |     ///   = fl(fl(i·360)/n)·fl(π/180)(逐位复刻 numpy 舍入路径;实证
[INFO] [stderr] 204 | |     ///   np.cos/np.sin 数组 SIMD 与本机 libm 逐位一致,Rust MSVC UCRT
[INFO] [stderr] ...   |
[INFO] [stderr] 212 | |     ///   不做任何填充含二次回填)
[INFO] [stderr] 213 | |     /// - 第一遍:填 mask 格;第二遍:剩余 NaN 全部回填(同源集)
[INFO] [stderr]     | |____________________________________________________________^
[INFO] [stderr] 214 |       let (n_angles, n_ranges) = data.dim();
[INFO] [stderr]     |       -------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/atten.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub message: String,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]   --> src/lib.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 21 | #![warn(missing_docs)]
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:548:5
[INFO] [stderr]     |
[INFO] [stderr] 548 |     pub zdr_params: [f32; 4],
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:549:5
[INFO] [stderr]     |
[INFO] [stderr] 549 |     pub rho_params: [f32; 4],
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:550:5
[INFO] [stderr]     |
[INFO] [stderr] 550 |     pub phi_params: [f32; 4],
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:551:5
[INFO] [stderr]     |
[INFO] [stderr] 551 |     pub dop_params: [f32; 4],
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:552:5
[INFO] [stderr]     |
[INFO] [stderr] 552 |     pub map_params: [f32; 4],
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:553:5
[INFO] [stderr]     |
[INFO] [stderr] 553 |     pub w_zdr: f32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:554:5
[INFO] [stderr]     |
[INFO] [stderr] 554 |     pub w_rho: f32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:555:5
[INFO] [stderr]     |
[INFO] [stderr] 555 |     pub w_phi: f32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:556:5
[INFO] [stderr]     |
[INFO] [stderr] 556 |     pub w_dop: f32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:557:5
[INFO] [stderr]     |
[INFO] [stderr] 557 |     pub w_map: f32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:580:5
[INFO] [stderr]     |
[INFO] [stderr] 580 |     pub zdr: Option<Array2<f32>>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:581:5
[INFO] [stderr]     |
[INFO] [stderr] 581 |     pub rho: Option<Array2<f32>>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:582:5
[INFO] [stderr]     |
[INFO] [stderr] 582 |     pub phi: Option<Array2<f32>>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:583:5
[INFO] [stderr]     |
[INFO] [stderr] 583 |     pub dop: Option<Array2<f32>>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:584:5
[INFO] [stderr]     |
[INFO] [stderr] 584 |     pub map: Option<Array2<f32>>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:589:5
[INFO] [stderr]     |
[INFO] [stderr] 589 |     pub probability: Array2<f32>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]    --> src/classify.rs:590:5
[INFO] [stderr]     |
[INFO] [stderr] 590 |     pub nan_mask: Array2<bool>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]     --> src/ipol.rs:1281:5
[INFO] [stderr]      |
[INFO] [stderr] 1281 |     Nug { ps: f64 },
[INFO] [stderr]      |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]     --> src/ipol.rs:1281:11
[INFO] [stderr]      |
[INFO] [stderr] 1281 |     Nug { ps: f64 },
[INFO] [stderr]      |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]     --> src/ipol.rs:1282:5
[INFO] [stderr]      |
[INFO] [stderr] 1282 |     Lin { ps: f64, rng: f64 },
[INFO] [stderr]      |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]     --> src/ipol.rs:1282:11
[INFO] [stderr]      |
[INFO] [stderr] 1282 |     Lin { ps: f64, rng: f64 },
[INFO] [stderr]      |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]     --> src/ipol.rs:1282:20
[INFO] [stderr]      |
[INFO] [stderr] 1282 |     Lin { ps: f64, rng: f64 },
[INFO] [stderr]      |                    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]     --> src/ipol.rs:1283:5
[INFO] [stderr]      |
[INFO] [stderr] 1283 |     Sph { ps: f64, rng: f64 },
[INFO] [stderr]      |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]     --> src/ipol.rs:1283:11
[INFO] [stderr]      |
[INFO] [stderr] 1283 |     Sph { ps: f64, rng: f64 },
[INFO] [stderr]      |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]     --> src/ipol.rs:1283:20
[INFO] [stderr]      |
[INFO] [stderr] 1283 |     Sph { ps: f64, rng: f64 },
[INFO] [stderr]      |                    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]     --> src/ipol.rs:1284:5
[INFO] [stderr]      |
[INFO] [stderr] 1284 |     Exp { ps: f64, rng: f64 },
[INFO] [stderr]      |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]     --> src/ipol.rs:1284:11
[INFO] [stderr]      |
[INFO] [stderr] 1284 |     Exp { ps: f64, rng: f64 },
[INFO] [stderr]      |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]     --> src/ipol.rs:1284:20
[INFO] [stderr]      |
[INFO] [stderr] 1284 |     Exp { ps: f64, rng: f64 },
[INFO] [stderr]      |                    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]     --> src/ipol.rs:1285:5
[INFO] [stderr]      |
[INFO] [stderr] 1285 |     Gau { ps: f64, rng: f64 },
[INFO] [stderr]      |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]     --> src/ipol.rs:1285:11
[INFO] [stderr]      |
[INFO] [stderr] 1285 |     Gau { ps: f64, rng: f64 },
[INFO] [stderr]      |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]     --> src/ipol.rs:1285:20
[INFO] [stderr]      |
[INFO] [stderr] 1285 |     Gau { ps: f64, rng: f64 },
[INFO] [stderr]      |                    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]    --> src/zr.rs:833:5
[INFO] [stderr]     |
[INFO] [stderr] 833 |     S,
[INFO] [stderr]     |     ^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]    --> src/zr.rs:834:5
[INFO] [stderr]     |
[INFO] [stderr] 834 |     C,
[INFO] [stderr]     |     ^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]    --> src/zr.rs:835:5
[INFO] [stderr]     |
[INFO] [stderr] 835 |     X,
[INFO] [stderr]     |     ^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Array1`
[INFO] [stderr]    --> src/qual.rs:233:31
[INFO] [stderr]     |
[INFO] [stderr] 233 |     use ndarray::{arr1, arr2, Array1, Array2, Array3};
[INFO] [stderr]     |                               ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ratio`
[INFO] [stderr]    --> src/qual.rs:500:14
[INFO] [stderr]     |
[INFO] [stderr] 500 |         let (ratio, ibb) = get_bb_ratio(&bb_height, &bb_width, &quality, &zp_r);
[INFO] [stderr]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_ratio`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ratio`
[INFO] [stderr]    --> src/qual.rs:515:14
[INFO] [stderr]     |
[INFO] [stderr] 515 |         let (ratio, ibb) = get_bb_ratio(&bb_height, &bb_width, &quality, &zp_r);
[INFO] [stderr]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_ratio`
[INFO] [stderr] 
[INFO] [stderr] warning: `wradlibrs` (lib) generated 36 warnings
[INFO] [stderr] warning: `wradlibrs` (lib test) generated 39 warnings (36 duplicates) (run `cargo fix --lib -p wradlibrs --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/wradlibrs-4c3d63dd9381efed)
[INFO] [stdout] 
[INFO] [stdout] running 305 tests
[INFO] [stdout] test atten::tests::test_constrained_basic ... ok
[INFO] [stdout] test atten::tests::test_constraint_dbz ... ok
[INFO] [stdout] test atten::tests::matches_wradlib_hb_default ... ok
[INFO] [stdout] test atten::tests::test_hb_increasing_reflectivity ... ok
[INFO] [stdout] test atten::tests::test_constraint_pia ... ok
[INFO] [stdout] test atten::tests::test_hb_multiple_beams ... ok
[INFO] [stdout] test atten::tests::test_hb_uniform_reflectivity ... ok
[INFO] [stdout] test atten::tests::test_hb_zero_input ... ok
[INFO] [stdout] test atten::tests::test_pia_from_kdp_basic ... ok
[INFO] [stdout] test atten::tests::test_pia_from_kdp_negative ... ok
[INFO] [stdout] test atten::tests::test_radome_attenuation ... ok
[INFO] [stdout] test classify::tests::test_binary_erode_all_false ... ok
[INFO] [stdout] test classify::tests::test_binary_erode_full_block ... ok
[INFO] [stdout] test classify::tests::test_binary_erode_single_pixel ... ok
[INFO] [stdout] test classify::tests::test_classify_echo_fuzzy_empty ... ok
[INFO] [stdout] test classify::tests::test_classify_echo_fuzzy_multiple_fields ... ok
[INFO] [stdout] test classify::tests::test_classify_echo_fuzzy_nan_handling ... ok
[INFO] [stdout] test classify::tests::test_classify_echo_fuzzy_zdr_only ... ok
[INFO] [stdout] test classify::tests::test_gabella_a_azimuth_wrap ... ok
[INFO] [stdout] test classify::tests::test_filter_gabella_zeros ... ok
[INFO] [stdout] test classify::tests::test_filter_gabella_nan_handling ... ok
[INFO] [stdout] test classify::tests::test_gabella_a_high_contrast ... ok
[INFO] [stdout] test classify::tests::test_gabella_a_radial_false_full_window ... ok
[INFO] [stdout] test classify::tests::test_gabella_a_uniform_field ... ok
[INFO] [stdout] test classify::tests::test_gabella_a_cartesian_mode ... ok
[INFO] [stdout] test classify::tests::test_gabella_b_large_region ... ok
[INFO] [stdout] test classify::tests::test_gabella_b_all_below_threshold ... ok
[INFO] [stdout] test classify::tests::test_filter_gabella_returns_correct_shape ... ok
[INFO] [stdout] test classify::tests::test_gabella_a_returns_correct_shape ... ok
[INFO] [stdout] test classify::tests::test_gabella_b_returns_correct_shape ... ok
[INFO] [stdout] test classify::tests::test_filter_gabella_uniform_no_clutter ... ok
[INFO] [stdout] test classify::tests::test_histo_cut_uniform ... ok
[INFO] [stdout] test classify::tests::test_histo_cut_empty ... ok
[INFO] [stdout] test classify::tests::test_gabella_isolated_high_in_low_field ... ok
[INFO] [stdout] test classify::tests::test_gabella_spiky_clutter ... ok
[INFO] [stdout] test classify::tests::test_histo_cut_with_nan ... ok
[INFO] [stdout] test classify::tests::test_histo_cut_with_low_outlier ... ok
[INFO] [stdout] test classify::tests::test_histo_cut_with_outlier ... ok
[INFO] [stdout] test classify::tests::test_label_empty ... ok
[INFO] [stdout] test classify::tests::test_label_8_connectivity_diagonal ... ok
[INFO] [stdout] test classify::tests::test_label_large_region ... ok
[INFO] [stdout] test classify::tests::test_label_single_pixel ... ok
[INFO] [stdout] test classify::tests::test_texture_step ... ok
[INFO] [stdout] test classify::tests::test_texture_uniform ... ok
[INFO] [stdout] test classify::tests::test_gabella_b_two_separate_regions ... ok
[INFO] [stdout] test classify::tests::test_label_two_regions ... ok
[INFO] [stdout] test classify::tests::test_trapezoid_at_boundaries ... ok
[INFO] [stdout] test classify::tests::test_trapezoid_below_a ... ok
[INFO] [stdout] test classify::tests::test_trapezoid_above_d ... ok
[INFO] [stdout] test classify::tests::test_trapezoid_degenerate_zero_width_rise ... ok
[INFO] [stdout] test classify::tests::test_trapezoid_falling_slope ... ok
[INFO] [stdout] test classify::tests::test_trapezoid_nan_input ... ok
[INFO] [stdout] test classify::tests::test_gabella_b_single_pixel_region ... ok
[INFO] [stdout] test classify::tests::test_trapezoid_plateau ... ok
[INFO] [stdout] test classify::tests::test_trapezoid_rising_slope ... ok
[INFO] [stdout] test comp::tests::test_compose_weighted_all_nan ... ok
[INFO] [stdout] test comp::tests::test_compose_weighted_large_weight_dominates ... ok
[INFO] [stdout] test comp::tests::test_compose_weighted_nan_data ... ok
[INFO] [stdout] test comp::tests::test_compose_weighted_nan_weight ... ok
[INFO] [stdout] test comp::tests::test_compose_weighted_single ... ok
[INFO] [stdout] test comp::tests::test_compose_weighted_three_radars ... ok
[INFO] [stdout] test comp::tests::test_compose_weighted_two_equal ... ok
[INFO] [stdout] test comp::tests::test_compose_weighted_unequal_weights ... ok
[INFO] [stdout] test comp::tests::test_extract_circle_all_inside ... ok
[INFO] [stdout] test comp::tests::test_compose_weighted_zero_weights ... ok
[INFO] [stdout] test comp::tests::test_extract_circle_all_outside ... ok
[INFO] [stdout] test comp::tests::test_extract_circle_boundary ... ok
[INFO] [stdout] test comp::tests::test_extract_circle_preserves_existing_nan ... ok
[INFO] [stdout] test comp::tests::test_extract_circle_centre ... ok
[INFO] [stdout] test comp::tests::test_extract_circle_preserves_shape ... ok
[INFO] [stdout] test comp::tests::test_togrid_empty ... ok
[INFO] [stdout] test comp::tests::test_extract_circle_zero_radius ... ok
[INFO] [stdout] test dp::tests::test_depolarization_nan_inputs ... ok
[INFO] [stdout] test dp::tests::test_depolarization_zdr_zero_rho_one ... ok
[INFO] [stdout] test dp::tests::test_despeckle_1d_all_valid ... ok
[INFO] [stdout] test dp::tests::test_despeckle_phidp_2d ... ok
[INFO] [stdout] test dp::tests::test_despeckle_1d_edge_pixel ... ok
[INFO] [stdout] test dp::tests::test_finite_difference_dr_scaling ... ok
[INFO] [stdout] test dp::tests::test_finite_difference_constant ... ok
[INFO] [stdout] test dp::tests::test_despeckle_1d_isolated_pixel ... ok
[INFO] [stdout] test dp::tests::test_finite_difference_linear ... ok
[INFO] [stdout] test dp::tests::test_despeckle_1d_non_isolated ... ok
[INFO] [stdout] test dp::tests::test_finite_difference_nan_propagation ... ok
[INFO] [stdout] test dp::tests::test_kdp_from_phidp_constant ... ok
[INFO] [stdout] test dp::tests::test_kdp_from_phidp_dr_scaling ... ok
[INFO] [stdout] test dp::tests::test_kdp_from_phidp_linear_slope ... ok
[INFO] [stdout] test dp::tests::test_kdp_from_phidp_sign_consistency ... ok
[INFO] [stdout] test dp::tests::test_depolarization_known_value ... ok
[INFO] [stdout] test dp::tests::test_depolarization_monotonic_rho ... ok
[INFO] [stdout] test comp::tests::test_togrid_basic ... ok
[INFO] [stdout] test dp::tests::test_kdp_multibeam ... ok
[INFO] [stdout] test dp::tests::test_lanczos_sum_is_zero ... ok
[INFO] [stdout] test dp::tests::test_kdp_quadratic_phidp ... ok
[INFO] [stdout] test dp::tests::test_depolarization_zdr_3db_rho_099 ... ok
[INFO] [stdout] test dp::tests::test_depolarization_zdr_zero_rho_half ... ok
[INFO] [stdout] test comp::tests::test_togrid_outside_range ... ok
[INFO] [stdout] test dp::tests::test_lanczos_antisymmetric ... ok
[INFO] [stdout] test comp::tests::test_togrid_preserves_data ... ok
[INFO] [stdout] test dp::tests::test_lanczos_winlen_5 ... ok
[INFO] [stdout] test dp::tests::test_lanczos_winlen_7 ... ok
[INFO] [stdout] test dp::tests::test_reflect_index_identity ... ok
[INFO] [stdout] test dp::tests::test_reflect_index_interior ... ok
[INFO] [stdout] test dp::tests::test_reflect_index_left_boundary ... ok
[INFO] [stdout] test comp::tests::test_togrid_symmetry ... ok
[INFO] [stdout] test dp::tests::test_reflect_index_right_boundary ... ok
[INFO] [stdout] test dp::tests::test_lanczos_winlen_3 ... ok
[INFO] [stdout] test dp::tests::test_texture_all_nan ... ok
[INFO] [stdout] test dp::tests::test_texture_single_outlier ... ok
[INFO] [stdout] test dp::tests::test_texture_known_values ... ok
[INFO] [stdout] test dp::tests::test_unfold_phi_nan_handling ... ok
[INFO] [stdout] test dp::tests::test_texture_uniform ... ok
[INFO] [stdout] test dp::tests::test_texture_azimuth_wrap ... ok
[INFO] [stdout] test dp::tests::test_unfold_phi_no_fold ... ok
[INFO] [stdout] test dp::tests::test_unfold_phi_overunfold_correction ... ok
[INFO] [stdout] test dp::tests::test_texture_nan_handling ... ok
[INFO] [stdout] test dp::tests::test_unfold_phi_with_fold ... ok
[INFO] [stdout] test dp::tests::test_unfold_phi_with_fold_and_overunfold ... ok
[INFO] [stdout] test dp::tests::test_vulpiani_constant_phidp ... ok
[INFO] [stdout] test dp::tests::test_vulpiani_linear_phidp ... ok
[INFO] [stdout] test dp::tests::test_vulpiani_multiple_beams ... ok
[INFO] [stdout] test ipol::tests::test_idw_all_nan_returns_nan ... ok
[INFO] [stdout] test ipol::tests::test_idw_closer_source_dominates ... ok
[INFO] [stdout] test ipol::tests::test_idw_nan_values_skipped ... ok
[INFO] [stdout] test dp::tests::test_vulpiani_output_shape ... ok
[INFO] [stdout] test ipol::tests::test_idw_power_parameter ... ok
[INFO] [stdout] test ipol::tests::test_idw_multiple_targets ... ok
[INFO] [stdout] test ipol::tests::test_idw_nnearest_limits_neighbors ... ok
[INFO] [stdout] test ipol::tests::test_idw_coincident_point ... ok
[INFO] [stdout] test ipol::tests::test_idw_symmetric_sources ... ok
[INFO] [stdout] test dp::tests::test_vulpiani_threshold_applied ... ok
[INFO] [stdout] test ipol::tests::test_linear_1d_x_interpolation ... ok
[INFO] [stdout] test ipol::tests::test_idw_single_source ... ok
[INFO] [stdout] test ipol::tests::test_linear_edge_max_exactly ... ok
[INFO] [stdout] test ipol::tests::test_idw_two_sources_linear_field ... ok
[INFO] [stdout] test ipol::tests::test_linear_midpoint_x ... ok
[INFO] [stdout] test ipol::tests::test_linear_midpoint_y ... ok
[INFO] [stdout] test ipol::tests::test_linear_center_of_cell ... ok
[INFO] [stdout] test ipol::tests::test_linear_nan_corners_propagate ... ok
[INFO] [stdout] test ipol::tests::test_linear_on_grid_point ... ok
[INFO] [stdout] test ipol::tests::test_linear_corner_values ... ok
[INFO] [stdout] test ipol::tests::test_linear_out_of_bounds_returns_nan ... ok
[INFO] [stdout] test ipol::tests::test_linear_fine_grid ... ok
[INFO] [stdout] test ipol::tests::test_linear_out_of_bounds_y ... ok
[INFO] [stdout] test ipol::tests::test_nearest_2d_grid_sources ... ok
[INFO] [stdout] test ipol::tests::test_nearest_multiple_targets ... ok
[INFO] [stdout] test ipol::tests::test_nearest_all_nan_returns_nan ... ok
[INFO] [stdout] test ipol::tests::test_linear_multiple_targets ... ok
[INFO] [stdout] test ipol::tests::test_nearest_picks_closest ... ok
[INFO] [stdout] test ipol::tests::test_nearest_with_negative_coordinates ... ok
[INFO] [stdout] test ipol::tests::test_nearest_single_source_single_target ... ok
[INFO] [stdout] test ipol::tests::test_polar_no_mask ... ok
[INFO] [stdout] test ipol::tests::test_polar_preserves_unmasked_values ... ok
[INFO] [stdout] test ipol::tests::test_nearest_skips_nan_sources ... ok
[INFO] [stdout] test ipol::tests::test_nearest_exact_match ... ok
[INFO] [stdout] test ipol::tests::test_polar_empty_data ... ok
[INFO] [stdout] test qual::tests::test_beam_block_frac_full_blockage ... ok
[INFO] [stdout] test qual::tests::test_beam_block_frac_negative_a ... ok
[INFO] [stdout] test qual::tests::test_beam_block_frac_no_blockage ... ok
[INFO] [stdout] test qual::tests::test_beam_block_frac_zero_a ... ok
[INFO] [stdout] test qual::tests::test_beam_block_frac_symmetry ... ok
[INFO] [stdout] test qual::tests::test_cum_beam_block_full_blockage ... ok
[INFO] [stdout] test qual::tests::test_cum_beam_block_monotone_increasing ... ok
[INFO] [stdout] test qual::tests::test_cum_beam_block_all_zero ... ok
[INFO] [stdout] test qual::tests::test_cum_beam_block_multiple_beams ... ok
[INFO] [stdout] test qual::tests::test_beam_block_frac_partial ... ok
[INFO] [stdout] test qual::tests::test_get_bb_ratio_basic ... ok
[INFO] [stdout] test qual::tests::test_get_bb_ratio_no_valid_bb ... ok
[INFO] [stdout] test qual::tests::test_get_bb_ratio_zero_width ... ok
[INFO] [stdout] test qual::tests::test_get_bb_ratio_zero_height ... ok
[INFO] [stdout] test qual::tests::test_get_bb_ratio_multiple_azimuths ... ok
[INFO] [stdout] test qual::tests::test_get_bb_ratio_nan_altitude ... ok
[INFO] [stdout] test qual::tests::test_cum_beam_block_dip_then_rise ... ok
[INFO] [stdout] test qual::tests::test_median_f32_empty ... ok
[INFO] [stdout] test qual::tests::test_median_f32_even ... ok
[INFO] [stdout] test qual::tests::test_median_f32_odd ... ok
[INFO] [stdout] test qual::tests::test_pulse_volume_basic ... ok
[INFO] [stdout] test qual::tests::test_pulse_volume_multiple_ranges ... ok
[INFO] [stdout] test qual::tests::test_pulse_volume_scales_with_pulse_width ... ok
[INFO] [stdout] test qual::tests::test_pulse_volume_scales_with_range_sq ... ok
[INFO] [stdout] test qual::tests::test_pulse_volume_zero_range ... ok
[INFO] [stdout] test ipol::tests::test_polar_fill_corner ... ok
[INFO] [stdout] test ipol::tests::test_polar_fill_single_masked ... ok
[INFO] [stdout] test ipol::tests::test_polar_all_masked_with_valid ... ok
[INFO] [stdout] test ipol::tests::test_polar_large_mask_fills_from_neighbors ... ok
[INFO] [stdout] test trafo::tests::test_decibel_array ... ok
[INFO] [stdout] test trafo::tests::test_decibel_idecibel_roundtrip ... ok
[INFO] [stdout] test trafo::tests::test_decibel_known ... ok
[INFO] [stdout] test trafo::tests::test_decibel_zero_and_negative ... ok
[INFO] [stdout] test trafo::tests::test_idecibel_known ... ok
[INFO] [stdout] test qual::tests::test_median_f32_single ... ok
[INFO] [stdout] test trafo::tests::test_idecibel_array ... ok
[INFO] [stdout] test trafo::tests::test_r_to_depth ... ok
[INFO] [stdout] test trafo::tests::test_s_to_ku_rain ... ok
[INFO] [stdout] test trafo::tests::test_mph_to_si ... ok
[INFO] [stdout] test trafo::tests::test_si_to_kmh ... ok
[INFO] [stdout] test trafo::tests::test_kts_to_si ... ok
[INFO] [stdout] test trafo::tests::test_si_to_kts ... ok
[INFO] [stdout] test trafo::tests::test_ku_to_s_rain ... ok
[INFO] [stdout] test trafo::tests::test_ku_to_s_snow ... ok
[INFO] [stdout] test trafo::tests::test_kmh_to_si ... ok
[INFO] [stdout] test trafo::tests::test_kdp_to_r ... ok
[INFO] [stdout] test trafo::tests::test_rvp_to_dbz ... ok
[INFO] [stdout] test trafo::tests::test_si_to_mph ... ok
[INFO] [stdout] test util::tests::test_derivate_antisymmetric ... ok
[INFO] [stdout] test util::tests::test_derivate_constant ... ok
[INFO] [stdout] test trafo::tests::test_s_to_ku_snow ... ok
[INFO] [stdout] test util::tests::test_derivate_nan_propagation ... ok
[INFO] [stdout] test util::tests::test_derivate_kernel_sum_zero ... ok
[INFO] [stdout] test util::tests::test_derivate_linear ... ok
[INFO] [stdout] test util::tests::test_derivate_sine ... ok
[INFO] [stdout] test util::tests::test_despeckle_3x3 ... ok
[INFO] [stdout] test util::tests::test_despeckle_5x5 ... ok
[INFO] [stdout] test util::tests::test_despeckle_5x5_cluster_survives ... ok
[INFO] [stdout] test util::tests::test_despeckle_all_nan ... ok
[INFO] [stdout] test util::tests::test_despeckle_corner_pixel ... ok
[INFO] [stdout] test util::tests::test_despeckle_not_speckle ... ok
[INFO] [stdout] test util::tests::test_despeckle_all_valid ... ok
[INFO] [stdout] test util::tests::test_despeckle_wradlib_range_only ... ok
[INFO] [stdout] test util::tests::test_derivate_quadratic ... ok
[INFO] [stdout] test util::tests::test_filter_window_polar_nan_propagation ... ok
[INFO] [stdout] test util::tests::test_filter_window_polar_empty ... ok
[INFO] [stdout] test util::tests::test_filter_window_polar_identity ... ok
[INFO] [stdout] test util::tests::test_half_power_radius_beamwidth_scaling ... ok
[INFO] [stdout] test util::tests::test_half_power_radius_known ... ok
[INFO] [stdout] test util::tests::test_filter_window_polar_single_beam ... ok
[INFO] [stdout] test util::tests::test_half_power_radius_linearity ... ok
[INFO] [stdout] test util::tests::test_half_power_radius_zero_beamwidth ... ok
[INFO] [stdout] test util::tests::test_half_power_radius_zero_range ... ok
[INFO] [stdout] test util::tests::test_filter_window_polar_removes_spike ... ok
[INFO] [stdout] test util::tests::test_texture_first_last_range_nan ... ok
[INFO] [stdout] test util::tests::test_texture_known_value ... ok
[INFO] [stdout] test util::tests::test_texture_nan_centre ... ok
[INFO] [stdout] test util::tests::test_filter_window_polar_preserves_shape ... ok
[INFO] [stdout] test util::tests::test_texture_small_input ... ok
[INFO] [stdout] test util::tests::test_texture_spike ... ok
[INFO] [stdout] test util::tests::test_texture_uniform ... ok
[INFO] [stdout] test util::tests::test_texture_nan_neighbour_excluded ... ok
[INFO] [stdout] test verify::tests::test_metrics_all_nan ... ok
[INFO] [stdout] test util::tests::test_texture_wrap_azimuth ... ok
[INFO] [stdout] test verify::tests::test_metrics_constant_bias ... ok
[INFO] [stdout] test verify::tests::test_metrics_corr_moderate ... ok
[INFO] [stdout] test verify::tests::test_metrics_corr_perfect_negative ... ok
[INFO] [stdout] test verify::tests::test_metrics_infinity_excluded ... ok
[INFO] [stdout] test verify::tests::test_metrics_known_values ... ok
[INFO] [stdout] test verify::tests::test_metrics_nan_excluded ... ok
[INFO] [stdout] test verify::tests::test_metrics_nash_equals_r2 ... ok
[INFO] [stdout] test verify::tests::test_metrics_negative_values ... ok
[INFO] [stdout] test verify::tests::test_metrics_large_dataset ... ok
[INFO] [stdout] test verify::tests::test_metrics_pbias ... ok
[INFO] [stdout] test verify::tests::test_metrics_perfect_match ... ok
[INFO] [stdout] test verify::tests::test_metrics_r2_negative ... ok
[INFO] [stdout] test verify::tests::test_metrics_ratio ... ok
[INFO] [stdout] test verify::tests::test_metrics_spearman_perfect ... ok
[INFO] [stdout] test verify::tests::test_metrics_spearman_perfect_negative ... ok
[INFO] [stdout] test verify::tests::test_metrics_single_pair ... ok
[INFO] [stdout] test verify::tests::test_metrics_realistic_radar ... ok
[INFO] [stdout] test verify::tests::test_metrics_spearman_with_ties ... ok
[INFO] [stdout] test verify::tests::test_metrics_zero_observations ... ok
[INFO] [stdout] test verify::tests::test_rank_data_all_same ... ok
[INFO] [stdout] test verify::tests::test_rank_data_empty ... ok
[INFO] [stdout] test verify::tests::test_rank_data_no_ties ... ok
[INFO] [stdout] test verify::tests::test_rank_data_with_ties ... ok
[INFO] [stdout] test verify::tests::test_rank_data_single ... ok
[INFO] [stdout] test zr::tests::test_enhanced_basic ... ok
[INFO] [stdout] test zr::tests::test_enhanced_convective_detection ... ok
[INFO] [stdout] test zr::tests::test_enhanced_high_reflectivity ... ok
[INFO] [stdout] test zr::tests::test_enhanced_matches_manual_classification ... ok
[INFO] [stdout] test zr::tests::test_enhanced_nan_propagation ... ok
[INFO] [stdout] test zr::tests::test_r_to_z_array_basic ... ok
[INFO] [stdout] test zr::tests::test_enhanced_polar_wrapping ... ok
[INFO] [stdout] test zr::tests::test_enhanced_mid_reflectivity ... ok
[INFO] [stdout] test zr::tests::test_r_to_z_known_value ... ok
[INFO] [stdout] test zr::tests::test_r_to_z_marshall_palmer ... ok
[INFO] [stdout] test zr::tests::test_r_to_z_nan ... ok
[INFO] [stdout] test zr::tests::test_r_to_z_negative ... ok
[INFO] [stdout] test zr::tests::test_r_to_z_zero ... ok
[INFO] [stdout] test zr::tests::test_enhanced_large_uniform_field ... ok
[INFO] [stdout] test zr::tests::test_shower_index_edges_nonpolar ... ok
[INFO] [stdout] test zr::tests::test_shower_index_nan_center ... ok
[INFO] [stdout] test zr::tests::test_shower_index_sharp_gradient ... ok
[INFO] [stdout] test zr::tests::test_shower_index_polar_wrap ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_and_back_consistency ... ok
[INFO] [stdout] test zr::tests::test_shower_index_uniform ... ok
[INFO] [stdout] test zr::tests::test_shower_index_single_pixel ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_array_basic ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_array_roundtrip ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_different_coefficients ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_array_shape_preserved ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_known_value ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_array_negative_values ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_marshall_palmer ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_nan ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_negative ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_roundtrip ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_small_value ... ok
[INFO] [stdout] test zr::tests::test_z_to_r_zero ... ok
[INFO] [stdout] test comp::tests::test_compose_weighted_mismatched_length - should panic ... ok
[INFO] [stdout] test comp::tests::test_compose_weighted_mismatched_shape - should panic ... ok
[INFO] [stdout] test dp::tests::test_lanczos_even_panics - should panic ... ok
[INFO] [stdout] test dp::tests::test_lanczos_too_small_panics - should panic ... ok
[INFO] [stdout] test util::tests::test_derivate_even_winlen - should panic ... ok
[INFO] [stdout] test util::tests::test_derivate_winlen_too_small - should panic ... ok
[INFO] [stdout] test util::tests::test_despeckle_invalid_n - should panic ... ok
[INFO] [stdout] test verify::tests::test_metrics_mismatched_length - should panic ... ok
[INFO] [stdout] test ipol::tests::test_polar_large_radar_grid ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 305 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.95s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/oracle_gauge_adjust.rs (/opt/rustwide/target/debug/deps/oracle_gauge_adjust-117e8d4ef88ceded)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test cov_parse_roundtrip ... ok
[INFO] [stdout] test oracle_est_rain_rate_a ... ok
[INFO] [stdout] test oracle_adjust_mixed ... ok
[INFO] [stdout] test oracle_philinear_ra ... ok
[INFO] [stdout] test oracle_edk ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests wradlibrs
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test src/verify.rs - verify::ErrorMetrics (line 21) ... ignored
[INFO] [stdout] test src/adjust.rs - adjust::Collocated (line 21) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9", kill_on_drop: false }`
[INFO] [stdout] c3d49ee5400cbb1503e964a1676707568796ccce9699956c8bebb143516962c9
