[INFO] fetching crate oximedia-360 0.1.3... [INFO] testing oximedia-360-0.1.3 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate oximedia-360 0.1.3 into /workspace/builds/worker-7-tc2/source [INFO] started tweaking crates.io crate oximedia-360 0.1.3 [INFO] finished tweaking crates.io crate oximedia-360 0.1.3 [INFO] tweaked toml for crates.io crate oximedia-360 0.1.3 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-360 0.1.3 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-360 0.1.3 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ab001ed23a46a60875837613a52052ff27dbbd9814ad0a54588ccc5d8bd3052e [INFO] running `Command { std: "docker" "start" "-a" "ab001ed23a46a60875837613a52052ff27dbbd9814ad0a54588ccc5d8bd3052e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ab001ed23a46a60875837613a52052ff27dbbd9814ad0a54588ccc5d8bd3052e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ab001ed23a46a60875837613a52052ff27dbbd9814ad0a54588ccc5d8bd3052e", kill_on_drop: false }` [INFO] [stdout] ab001ed23a46a60875837613a52052ff27dbbd9814ad0a54588ccc5d8bd3052e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 35e54e7f62cf5ab3c2013822ad342a64b4df194fe53d3ac703c9c7a6d3ec575f [INFO] running `Command { std: "docker" "start" "-a" "35e54e7f62cf5ab3c2013822ad342a64b4df194fe53d3ac703c9c7a6d3ec575f", kill_on_drop: false }` [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling rayon v1.12.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling oximedia-360 v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.81s [INFO] running `Command { std: "docker" "inspect" "35e54e7f62cf5ab3c2013822ad342a64b4df194fe53d3ac703c9c7a6d3ec575f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "35e54e7f62cf5ab3c2013822ad342a64b4df194fe53d3ac703c9c7a6d3ec575f", kill_on_drop: false }` [INFO] [stdout] 35e54e7f62cf5ab3c2013822ad342a64b4df194fe53d3ac703c9c7a6d3ec575f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 05f510a2a1077850ee8d045f251b47da1a71a08021b9542f84675895c3ee9559 [INFO] running `Command { std: "docker" "start" "-a" "05f510a2a1077850ee8d045f251b47da1a71a08021b9542f84675895c3ee9559", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling zerocopy-derive v0.8.48 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling alloca v0.4.0 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling rayon v1.12.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling page_size v0.6.0 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling oximedia-360 v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Compiling criterion-plot v0.8.2 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling criterion v0.8.2 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 26.88s [INFO] running `Command { std: "docker" "inspect" "05f510a2a1077850ee8d045f251b47da1a71a08021b9542f84675895c3ee9559", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "05f510a2a1077850ee8d045f251b47da1a71a08021b9542f84675895c3ee9559", kill_on_drop: false }` [INFO] [stdout] 05f510a2a1077850ee8d045f251b47da1a71a08021b9542f84675895c3ee9559 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] f0200ac8c88519521ea70665254e41e73b84b630f65c753270cdbc623c3d6ad4 [INFO] running `Command { std: "docker" "start" "-a" "f0200ac8c88519521ea70665254e41e73b84b630f65c753270cdbc623c3d6ad4", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_360-1228d481a54e394f) [INFO] [stdout] [INFO] [stdout] running 544 tests [INFO] [stdout] test apple_spatial::tests::comfort_box_parse_error_too_short ... ok [INFO] [stdout] test apple_spatial::tests::comfort_box_roundtrip ... ok [INFO] [stdout] test apple_spatial::tests::comfort_box_parse_error_wrong_fourcc ... ok [INFO] [stdout] test apple_spatial::tests::comfort_box_size_field_matches_length ... ok [INFO] [stdout] test apple_spatial::tests::projection_box_contains_prji_fourcc ... ok [INFO] [stdout] test apple_spatial::tests::projection_box_parse_error_too_short ... ok [INFO] [stdout] test apple_spatial::tests::projection_box_parse_error_wrong_fourcc ... ok [INFO] [stdout] test apple_spatial::tests::projection_box_rectilinear_has_correct_fourcc ... ok [INFO] [stdout] test apple_spatial::tests::stereo_pair_box_fourcc ... ok [INFO] [stdout] test apple_spatial::tests::hero_eye_ids ... ok [INFO] [stdout] test apple_spatial::tests::stereo_pair_box_parse_error_wrong_fourcc ... ok [INFO] [stdout] test apple_spatial::tests::stereo_pair_box_roundtrip_left_hero ... ok [INFO] [stdout] test apple_spatial::tests::projection_box_roundtrip_equirectangular ... ok [INFO] [stdout] test apple_spatial::tests::projection_box_roundtrip_rectilinear ... ok [INFO] [stdout] test apple_spatial::tests::projection_box_size_field_matches_length ... ok [INFO] [stdout] test apple_spatial::tests::stereo_pair_box_roundtrip_right_hero ... ok [INFO] [stdout] test apple_spatial::tests::vexu_contains_prhd_box ... ok [INFO] [stdout] test apple_spatial::tests::vexu_fourcc ... ok [INFO] [stdout] test apple_spatial::tests::vexu_parse_error_wrong_fourcc ... ok [INFO] [stdout] test apple_spatial::tests::vexu_without_comfort ... ok [INFO] [stdout] test apple_spatial::tests::vexu_parse_error_too_short ... ok [INFO] [stdout] test apple_spatial::tests::vexu_roundtrip_standard ... ok [INFO] [stdout] test apple_spatial::tests::vexu_roundtrip_equirectangular_no_comfort ... ok [INFO] [stdout] test apple_spatial::tests::vexu_size_field_matches_length ... ok [INFO] [stdout] test apple_spatial::tests::stereo_pair_box_size_field_matches_length ... ok [INFO] [stdout] test apple_spatial::tests::projection_box_contains_rect_fourcc ... ok [INFO] [stdout] test apple_spatial::tests::vexu_contains_cmfy_when_set ... ok [INFO] [stdout] test apple_spatial::tests::projection_box_with_fov_contains_hfov_box ... ok [INFO] [stdout] test apple_spatial::tests::projection_box_without_fov_has_no_hfov ... ok [INFO] [stdout] test apple_spatial::tests::vexu_contains_eyes_box ... ok [INFO] [stdout] test eac::tests::eac_tangent_roundtrip_centre ... ok [INFO] [stdout] test eac::tests::eac_tangent_roundtrip_quarter ... ok [INFO] [stdout] test eac::tests::eac_tangent_to_uv_zero_gives_half ... ok [INFO] [stdout] test eac::tests::eac_to_equirect_missing_face_error ... ok [INFO] [stdout] test eac::tests::eac_roundtrip_left ... ok [INFO] [stdout] test eac::tests::eac_roundtrip_back ... ok [INFO] [stdout] test eac::tests::eac_roundtrip_front_centre ... ok [INFO] [stdout] test eac::tests::eac_roundtrip_diagonal ... ok [INFO] [stdout] test eac::tests::eac_roundtrip_right ... ok [INFO] [stdout] test eac::tests::eac_to_equirect_zero_dimensions_error ... ok [INFO] [stdout] test eac::tests::equirect_to_eac_buffer_too_small_error ... ok [INFO] [stdout] test eac::tests::equirect_to_eac_zero_dimensions_error ... ok [INFO] [stdout] test eac::tests::eac_roundtrip_bottom ... ok [INFO] [stdout] test eac::tests::equirect_to_eac_produces_six_faces ... ok [INFO] [stdout] test fisheye::tests::build_seam_alpha_back_is_one_at_right ... ok [INFO] [stdout] test fisheye::tests::build_seam_alpha_front_is_one_at_left ... ok [INFO] [stdout] test eac::tests::equirect_to_eac_solid_colour_preserved ... ok [INFO] [stdout] test fisheye::tests::auto_exposure_stitch_does_not_panic ... ok [INFO] [stdout] test eac::tests::eac_tangent_centre_gives_zero ... ok [INFO] [stdout] test eac::tests::eac_roundtrip_top ... ok [INFO] [stdout] test eac::tests::eac_face_centre_maps_to_uv_half ... ok [INFO] [stdout] test apple_spatial::tests::comfort_box_fourcc_is_cmfy ... ok [INFO] [stdout] test fisheye::tests::equidistant_r_at_half_fov_is_one ... ok [INFO] [stdout] test fisheye::tests::equidistant_theta_to_r_roundtrip ... ok [INFO] [stdout] test fisheye::tests::downsample_half_reduces_size ... ok [INFO] [stdout] test fisheye::tests::dual_fisheye_stitch_non_black_pixels ... ok [INFO] [stdout] test fisheye::tests::dual_fisheye_stitch_zero_dimension_error ... ok [INFO] [stdout] test fisheye::tests::exposure_gain_double ... ok [INFO] [stdout] test fisheye::tests::exposure_gain_identity_no_change ... ok [INFO] [stdout] test fisheye::tests::fisheye_to_equirect_buffer_too_small_error ... ok [INFO] [stdout] test eac::tests::eac_to_equirect_correct_size ... ok [INFO] [stdout] test fisheye::tests::equirect_to_fisheye_zero_dimension_error ... ok [INFO] [stdout] test fisheye::tests::equisolid_r_at_half_fov_is_one ... ok [INFO] [stdout] test fisheye::tests::exposure_gain_halve ... ok [INFO] [stdout] test fisheye::tests::equirect_to_fisheye_output_size ... ok [INFO] [stdout] test fisheye::tests::builder_laplacian_blend_output_size ... ok [INFO] [stdout] test fisheye::tests::dual_fisheye_stitch_output_size ... ok [INFO] [stdout] test fisheye::tests::builder_linear_blend_output_size ... ok [INFO] [stdout] test fisheye::tests::fisheye_equirect_fisheye_centre_colour_preserved ... ok [INFO] [stdout] test fisheye::tests::stereographic_r_at_half_fov_is_one ... ok [INFO] [stdout] test fisheye::tests::theta_outside_fov_returns_none ... ok [INFO] [stdout] test fisheye::tests::horizon_360_fov_is_negative_pi_over_2 ... ok [INFO] [stdout] test fisheye::tests::horizon_90_fov_is_pi_over_4 ... ok [INFO] [stdout] test fisheye::tests::horizon_180_fov_is_zero_elevation ... ok [INFO] [stdout] test fisheye::tests::upsample_double_increases_size ... ok [INFO] [stdout] test fisheye::tests::fixed_exposure_gain_applied ... ok [INFO] [stdout] test fisheye::tests::fisheye_to_equirect_zero_dimension_error ... ok [INFO] [stdout] test fisheye::tests::orthographic_r_at_half_fov_is_one ... ok [INFO] [stdout] test fisheye_lut::tests::lut_apply_matches_direct_fisheye_conversion ... ok [INFO] [stdout] test fisheye_lut::tests::lut_apply_zero_src_dim_error ... ok [INFO] [stdout] test fisheye_lut::tests::lut_apply_solid_colour_centre_correct ... ok [INFO] [stdout] test fisheye::tests::fisheye_to_equirect_output_size ... ok [INFO] [stdout] test gaze_tracker::tests::angular_distance_antipodal_is_pi ... ok [INFO] [stdout] test fisheye_lut::tests::lut_build_produces_correct_entry_count ... ok [INFO] [stdout] test fisheye_lut::tests::lut_entry_accessor_in_range ... ok [INFO] [stdout] test fisheye_lut::tests::lut_is_empty_for_zero_output ... ok [INFO] [stdout] test gaze_tracker::tests::angular_distance_same_point_zero ... ok [INFO] [stdout] test gaze_tracker::tests::heatmap_rejects_zero_dimensions ... ok [INFO] [stdout] test fisheye_lut::tests::lut_valid_entries_have_in_range_uv ... ok [INFO] [stdout] test gaze_tracker::tests::history_dwell_events_detects_dwell ... ok [INFO] [stdout] test gaze_tracker::tests::history_dwell_events_rejects_bad_params ... ok [INFO] [stdout] test gaze_tracker::tests::heatmap_render_normalised_to_one ... ok [INFO] [stdout] test gaze_tracker::tests::heatmap_render_peak_at_gaze_location ... ok [INFO] [stdout] test fisheye_lut::tests::lut_apply_buffer_too_small_error ... ok [INFO] [stdout] test gaze_tracker::tests::heatmap_rejects_zero_sigma ... ok [INFO] [stdout] test gaze_tracker::tests::history_capacity_eviction ... ok [INFO] [stdout] test fisheye_lut::tests::lut_build_has_valid_entries ... ok [INFO] [stdout] test gaze_tracker::tests::history_last_velocity_correct ... ok [INFO] [stdout] test gaze_tracker::tests::history_last_velocity_single_sample_zero ... ok [INFO] [stdout] test gaze_tracker::tests::history_mean_angular_speed_constant_motion ... ok [INFO] [stdout] test gaze_tracker::tests::history_mean_gaze_empty_returns_none ... ok [INFO] [stdout] test gaze_tracker::tests::history_mean_gaze_symmetric_yaw ... ok [INFO] [stdout] test fisheye_lut::tests::lut_apply_output_size ... ok [INFO] [stdout] test gaze_tracker::tests::hotspot_accumulator_ingest_history ... ok [INFO] [stdout] test gaze_tracker::tests::hotspot_accumulator_reset_clears ... ok [INFO] [stdout] test gaze_tracker::tests::hotspot_accumulator_top_returns_sorted ... ok [INFO] [stdout] test headset_metadata::tests::fov_h_within_plausible_range ... ok [INFO] [stdout] test headset_metadata::tests::headset_type_name_htc ... ok [INFO] [stdout] test headset_metadata::tests::headset_type_name_oculus ... ok [INFO] [stdout] test gaze_tracker::tests::hotspot_accumulator_total_hits ... ok [INFO] [stdout] test headset_metadata::tests::aspect_ratio_generic ... ok [INFO] [stdout] test headset_metadata::tests::headset_type_name_generic ... ok [INFO] [stdout] test headset_metadata::tests::headset_type_name_pico ... ok [INFO] [stdout] test headset_metadata::tests::headset_type_name_valve_index ... ok [INFO] [stdout] test headset_metadata::tests::is_high_refresh_valve_index ... ok [INFO] [stdout] test headset_metadata::tests::is_high_resolution_pico ... ok [INFO] [stdout] test headset_metadata::tests::is_not_high_refresh_generic ... ok [INFO] [stdout] test headset_metadata::tests::is_not_high_resolution_htc_vive ... ok [INFO] [stdout] test headset_metadata::tests::metadata_for_generic ... ok [INFO] [stdout] test headset_metadata::tests::metadata_for_htc_vive ... ok [INFO] [stdout] test headset_metadata::tests::metadata_for_oculus_quest ... ok [INFO] [stdout] test headset_metadata::tests::metadata_for_pico_neo ... ok [INFO] [stdout] test headset_metadata::tests::metadata_for_valve_index ... ok [INFO] [stdout] test headset_metadata::tests::optimized_config_for_all_headsets ... ok [INFO] [stdout] test headset_metadata::tests::optimized_config_headset_type_preserved ... ok [INFO] [stdout] test headset_metadata::tests::fov_radians_conversion ... ok [INFO] [stdout] test headset_metadata::tests::optimized_config_valve_index_resolution ... ok [INFO] [stdout] test headset_metadata::tests::projection_config_fov_stored_in_viewport ... ok [INFO] [stdout] test headset_metadata::tests::projection_config_ipd_propagated ... ok [INFO] [stdout] test headset_metadata::tests::projection_config_refresh_rate_propagated ... ok [INFO] [stdout] test headset_metadata::tests::projection_config_render_dims_match_resolution ... ok [INFO] [stdout] test mesh_warp::tests::apply_buffer_too_small_returns_error ... ok [INFO] [stdout] test fisheye::tests::laplacian_blend_solid_colour_preserved ... ok [INFO] [stdout] test mesh_warp::tests::apply_zero_out_h_returns_error ... ok [INFO] [stdout] test mesh_warp::tests::apply_zero_src_w_returns_error ... ok [INFO] [stdout] test mesh_warp::tests::flip_mesh_max_distortion_is_nonzero ... ok [INFO] [stdout] test mesh_warp::tests::barrel_distortion_identity_k0_matches_passthrough ... ok [INFO] [stdout] test mesh_warp::tests::flip_horizontal_swaps_left_right ... ok [INFO] [stdout] test mesh_warp::tests::flip_vertical_swaps_top_bottom ... ok [INFO] [stdout] test mesh_warp::tests::identity_mesh_apply_preserves_solid_colour ... ok [INFO] [stdout] test mesh_warp::tests::mesh_vertex_new_stores_values ... ok [INFO] [stdout] test mesh_warp::tests::identity_mesh_apply_output_has_correct_size ... ok [INFO] [stdout] test mesh_warp::tests::barrel_distortion_nonzero_k_changes_output ... ok [INFO] [stdout] test mesh_warp::tests::identity_mesh_max_distortion_is_zero ... ok [INFO] [stdout] test mesh_warp::tests::radial_distortion_mesh_identity_params_matches_identity_mesh ... ok [INFO] [stdout] test mesh_warp::tests::radial_distortion_mesh_nonzero_k1_differs_from_identity ... ok [INFO] [stdout] test mesh_warp::tests::warp_mesh_vertex_in_bounds_returns_some ... ok [INFO] [stdout] test mesh_warp::tests::set_vertex_updates_specific_vertex ... ok [INFO] [stdout] test mesh_warp::tests::rotate_180_centre_vertex_maps_to_centre ... ok [INFO] [stdout] test mesh_warp::tests::warp_mesh_too_few_vertices_returns_error ... ok [INFO] [stdout] test octahedral::tests::equirect_to_octahedral_buffer_too_small_error ... ok [INFO] [stdout] test mesh_warp::tests::warp_mesh_zero_rows_returns_error ... ok [INFO] [stdout] test mesh_warp::tests::apply_par_matches_apply_on_identity_mesh ... ok [INFO] [stdout] test octahedral::tests::octahedral_roundtrip_back ... ok [INFO] [stdout] test mesh_warp::tests::radial_distortion_mesh_zero_cols_returns_error ... ok [INFO] [stdout] test octahedral::tests::octahedral_roundtrip_diagonal ... ok [INFO] [stdout] test octahedral::tests::equirect_to_octahedral_zero_dimensions_error ... ok [INFO] [stdout] test octahedral::tests::octahedral_roundtrip_north_pole ... ok [INFO] [stdout] test mesh_warp::tests::scale_shift_uniform_does_not_panic ... ok [INFO] [stdout] test mesh_warp::tests::rotate_180_maps_corner_to_opposite_corner ... ok [INFO] [stdout] test octahedral::tests::octahedral_roundtrip_right ... ok [INFO] [stdout] test octahedral::tests::octahedral_roundtrip_south_pole ... ok [INFO] [stdout] test octahedral::tests::north_pole_maps_to_centre ... ok [INFO] [stdout] test octahedral::tests::octahedral_roundtrip_front ... ok [INFO] [stdout] test octahedral::tests::equirect_to_octahedral_correct_size ... ok [INFO] [stdout] test octahedral::tests::octahedral_roundtrip_lower_hemisphere ... ok [INFO] [stdout] test octahedral::tests::octahedral_to_equirect_buffer_too_small_error ... ok [INFO] [stdout] test orientation::tests::angular_distance_quarter_circle ... ok [INFO] [stdout] test orientation::tests::compose_with_identity_is_identity ... ok [INFO] [stdout] test orientation::tests::from_degrees_converts_correctly ... ok [INFO] [stdout] test orientation::tests::angular_distance_same_point_is_zero ... ok [INFO] [stdout] test orientation::tests::identity_has_zero_angles ... ok [INFO] [stdout] test orientation::tests::identity_matrix_does_not_change_vector ... ok [INFO] [stdout] test apple_spatial::tests::spatial_projection_fourccs ... ok [INFO] [stdout] test orientation::tests::rot_mat_apply_inverse_is_transpose ... ok [INFO] [stdout] test orientation::tests::rotate_equirect_buffer_too_small_error ... ok [INFO] [stdout] test octahedral::tests::octahedral_to_equirect_zero_dimensions_error ... ok [INFO] [stdout] test octahedral::tests::uv_always_in_unit_square ... ok [INFO] [stdout] test orientation::tests::angular_distance_antipodal_is_pi ... ok [INFO] [stdout] test octahedral::tests::octahedral_solid_colour_round_trip_centre ... ok [INFO] [stdout] test orientation::tests::rotate_inverse_is_roundtrip ... ok [INFO] [stdout] test orientation::tests::rotate_pitch_moves_forward_to_pole ... ok [INFO] [stdout] test orientation::tests::rotate_equirect_zero_dim_error ... ok [INFO] [stdout] test orientation::tests::rotate_yaw_90_moves_forward_to_right ... ok [INFO] [stdout] test orientation::tests::rotate_equirect_correct_output_size ... ok [INFO] [stdout] test octahedral::tests::octahedral_to_equirect_correct_size ... ok [INFO] [stdout] test orientation::tests::rotate_identity_does_not_change_sphere ... ok [INFO] [stdout] test gaze_tracker::tests::heatmap_render_outputs_correct_size ... ok [INFO] [stdout] test apple_spatial::tests::stereo_pair_box_contains_hero_box ... ok [INFO] [stdout] test orientation::tests::slerp_t0_returns_self ... ok [INFO] [stdout] test orientation::tests::slerp_t1_returns_other ... ok [INFO] [stdout] test pixel_format::tests::roundtrip_u8_pixel_row ... ok [INFO] [stdout] test pixel_format::tests::sample_pixel_f32_multi_channel ... ok [INFO] [stdout] test pixel_format::tests::sample_pixel_u16_max_normalises_to_one ... ok [INFO] [stdout] test pixel_format::tests::sample_pixel_u16_mid_value ... ok [INFO] [stdout] test pixel_format::tests::sample_pixel_u16_zero_is_zero ... ok [INFO] [stdout] test pixel_format::tests::sample_pixel_u8_black ... ok [INFO] [stdout] test orientation::tests::rotate_equirect_identity_preserves_image ... ok [INFO] [stdout] test orientation::tests::slerp_midpoint_is_between ... ok [INFO] [stdout] test pixel_format::tests::f32_bytes_per_component ... ok [INFO] [stdout] test pixel_format::tests::sample_pixel_f32_roundtrip ... ok [INFO] [stdout] test eac::tests::eac_remapping_properties ... ok [INFO] [stdout] test pixel_format::tests::sample_pixel_u8_half_value ... ok [INFO] [stdout] test pixel_format::tests::sample_pixel_u8_white ... ok [INFO] [stdout] test pixel_format::tests::sample_pixel_u8_out_of_bounds_returns_zeros ... ok [INFO] [stdout] test pixel_format::tests::u8_bytes_per_component ... ok [INFO] [stdout] test pixel_format::tests::write_pixel_out_of_bounds_is_safe ... ok [INFO] [stdout] test orientation::tests::rotate_equirect_solid_colour_unchanged ... ok [INFO] [stdout] test fisheye::tests::equidistant_r_at_zero_is_zero ... ok [INFO] [stdout] test mesh_warp::tests::warp_mesh_vertex_out_of_bounds_returns_none ... ok [INFO] [stdout] test orientation::tests::inverse_is_true_rotation_inverse ... ok [INFO] [stdout] test point_cloud::tests::point3d_unit_direction_origin_returns_none ... ok [INFO] [stdout] test pixel_format::tests::write_pixel_u8_and_read_back ... ok [INFO] [stdout] test point_cloud::tests::point_cloud_empty ... ok [INFO] [stdout] test point_cloud::tests::point_cloud_from_points ... ok [INFO] [stdout] test pixel_format::tests::write_pixel_f32_and_read_back ... ok [INFO] [stdout] test pixel_format::tests::write_pixel_clamping ... ok [INFO] [stdout] test mesh_warp::tests::warp_mesh_zero_cols_returns_error ... ok [INFO] [stdout] test pixel_format::tests::u16_bytes_per_component ... ok [INFO] [stdout] test point_cloud::tests::point_cloud_push_and_len ... ok [INFO] [stdout] test point_cloud::tests::projector_depth_closest_wins ... ok [INFO] [stdout] test point_cloud::tests::direction_to_pixel_forward_z ... ok [INFO] [stdout] test point_cloud::tests::direction_to_pixel_zero_returns_none ... ok [INFO] [stdout] test point_cloud::tests::point3d_is_at_origin ... ok [INFO] [stdout] test point_cloud::tests::point3d_not_at_origin ... ok [INFO] [stdout] test point_cloud::tests::projector_invalid_dimensions_width_zero ... ok [INFO] [stdout] test point_cloud::tests::projector_empty_cloud_returns_background ... ok [INFO] [stdout] test point_cloud::tests::projector_invalid_dimensions_height_zero ... ok [INFO] [stdout] test point_cloud::tests::projector_origin_point_skipped ... ok [INFO] [stdout] test pixel_format::tests::write_pixel_u16_and_read_back ... ok [INFO] [stdout] test point_cloud::tests::point3d_radius ... ok [INFO] [stdout] test point_cloud::tests::point3d_unit_direction_normalised ... ok [INFO] [stdout] test point_cloud::tests::projector_output_buffer_size ... ok [INFO] [stdout] test projection::tests::angular_distance_antipodal_is_pi ... ok [INFO] [stdout] test projection::tests::bilinear_exact_pixel ... ok [INFO] [stdout] test projection::tests::bilinear_solid_colour ... ok [INFO] [stdout] test projection::tests::cube_to_equirect_missing_face_error ... ok [INFO] [stdout] test projection::tests::equirect_sphere_centre_roundtrip ... ok [INFO] [stdout] test projection::tests::angular_distance_same_point_is_zero ... ok [INFO] [stdout] test projection::tests::equirect_sphere_topleft_roundtrip ... ok [INFO] [stdout] test projection::tests::antimeridian_roundtrip_stable ... ok [INFO] [stdout] test projection::tests::bilinear_corner_clamp ... ok [INFO] [stdout] test projection::tests::cubemap_roundtrip_at_poles_does_not_panic ... ok [INFO] [stdout] test projection::tests::cube_face_all_returns_six ... ok [INFO] [stdout] test projection::tests::equirect_to_cube_invalid_buffer_too_small ... ok [INFO] [stdout] test projection::tests::cube_to_equirect_zero_dimensions_error ... ok [INFO] [stdout] test projection::tests::equirect_sphere_bottomright_roundtrip ... ok [INFO] [stdout] test octahedral::tests::octahedral_roundtrip_left ... ok [INFO] [stdout] test projection::tests::equirect_to_cube_invalid_zero_face_size ... ok [INFO] [stdout] test projection::tests::equirect_to_cube_produces_six_faces ... ok [INFO] [stdout] test projection::tests::equirect_to_sphere_bottom_edge ... ok [INFO] [stdout] test point_cloud::tests::projector_single_point_painted ... ok [INFO] [stdout] test projection::tests::equirect_to_sphere_centre ... ok [INFO] [stdout] test projection::tests::equirect_to_sphere_top_edge ... ok [INFO] [stdout] test projection::tests::equirect_to_sphere_right_edge ... ok [INFO] [stdout] test projection::tests::pole_roundtrip_does_not_panic ... ok [INFO] [stdout] test projection::tests::psnr_empty_error ... ok [INFO] [stdout] test projection::tests::psnr_max_difference_below_9_db ... ok [INFO] [stdout] test projection::tests::psnr_identical_images_is_infinite ... ok [INFO] [stdout] test projection::tests::roundtrip_bottom ... ok [INFO] [stdout] test projection::tests::roundtrip_front ... ok [INFO] [stdout] test projection::tests::roundtrip_diagonal ... ok [INFO] [stdout] test projection::tests::roundtrip_left ... ok [INFO] [stdout] test projection::tests::roundtrip_top ... ok [INFO] [stdout] test projection::tests::psnr_different_lengths_error ... ok [INFO] [stdout] test projection::tests::roundtrip_back ... ok [INFO] [stdout] test projection::tests::sphere_equirect_roundtrip_error_near_zero ... ok [INFO] [stdout] test projection::tests::south_pole_elevation_clamped_at_neg_half_pi ... ok [INFO] [stdout] test projection::tests::roundtrip_right ... ok [INFO] [stdout] test projection::tests::sphere_equirect_roundtrip_error_zero_grid_size_error ... ok [INFO] [stdout] test projection::tests::sphere_to_cube_bottom_face ... ok [INFO] [stdout] test projection::tests::sphere_to_cube_right_face ... ok [INFO] [stdout] test eac::tests::eac_equirect_roundtrip_colour_preservation ... ok [INFO] [stdout] test projection::tests::north_pole_elevation_clamped_at_half_pi ... ok [INFO] [stdout] test projection::tests::sphere_to_equirect_origin ... ok [INFO] [stdout] test projection::tests::sphere_to_cube_front_face ... ok [INFO] [stdout] test projection::tests::sphere_to_cube_left_face ... ok [INFO] [stdout] test projection::tests::cube_to_equirect_produces_correct_size ... ok [INFO] [stdout] test pyramid_blend::tests::blend_laplacian_zero_mask_returns_l2 ... ok [INFO] [stdout] test pyramid_blend::tests::blend_laplacian_full_mask_returns_l1 ... ok [INFO] [stdout] test pyramid_blend::tests::gaussian_pyramid_single_level ... ok [INFO] [stdout] test pyramid_blend::tests::reconstruct_empty_pyramid ... ok [INFO] [stdout] test pyramid_blend::tests::gaussian_pyramid_solid_colour_preserved ... ok [INFO] [stdout] test pyramid_blend::tests::laplacian_pyramid_coarsest_equals_gaussian_coarsest ... ok [INFO] [stdout] test projection::tests::equirect_to_sphere_left_edge ... ok [INFO] [stdout] test pyramid_blend::tests::gaussian_pyramid_dimensions_halve ... ok [INFO] [stdout] test pyramid_blend::tests::laplacian_pyramid_residuals_near_zero_for_solid_image ... ok [INFO] [stdout] test pyramid_blend::tests::reconstruct_output_dimensions_match_finest_level ... ok [INFO] [stdout] test pyramid_blend::tests::blend_laplacian_half_mask_interpolates ... ok [INFO] [stdout] test pyramid_blend::tests::gaussian_pyramid_level_count ... ok [INFO] [stdout] test projection::tests::sphere_to_cube_top_face ... ok [INFO] [stdout] test rectilinear::tests::extract_rectilinear_yaw_rotates_view ... ok [INFO] [stdout] test rectilinear::tests::rectilinear_centre_maps_to_equirect_centre ... ok [INFO] [stdout] test rectilinear::tests::rectilinear_fov_clamped_to_valid_range ... ok [INFO] [stdout] test pyramid_blend::tests::full_pipeline_blends_two_images ... ok [INFO] [stdout] test pyramid_blend::tests::laplacian_pyramid_same_level_count ... ok [INFO] [stdout] test projection::tests::equirect_cube_equirect_roundtrip_colour_preservation ... ok [INFO] [stdout] test pyramid_blend::tests::reconstruct_roundtrip_solid_colour ... ok [INFO] [stdout] test rectilinear::tests::virtual_camera_default_forward_fields ... ok [INFO] [stdout] test rectilinear::tests::rectilinear_vfov_less_than_hfov_for_widescreen ... ok [INFO] [stdout] test sampling::tests::bicubic_corner_u0_v0_does_not_panic ... ok [INFO] [stdout] test sampling::tests::bicubic_gradient_order_preserved ... ok [INFO] [stdout] test rectilinear::tests::rectilinear_symmetric_lr_and_tb ... ok [INFO] [stdout] test rectilinear::tests::extract_rectilinear_error_on_zero_dims ... ok [INFO] [stdout] test rectilinear::tests::extract_rectilinear_solid_colour_preserved ... ok [INFO] [stdout] test rectilinear::tests::extract_rectilinear_error_on_buffer_too_small ... ok [INFO] [stdout] test sampling::tests::all_kernels_return_correct_channel_count ... ok [INFO] [stdout] test rectilinear::tests::extract_rectilinear_pitch_changes_view ... ok [INFO] [stdout] test sampling::tests::lanczos3_corner_u1_v1_does_not_panic ... ok [INFO] [stdout] test rectilinear::tests::extract_rectilinear_output_size ... ok [INFO] [stdout] test sampling::tests::bilinear_solid_colour_u8 ... ok [INFO] [stdout] test sampling::tests::lanczos3_gradient_order_preserved ... ok [INFO] [stdout] test sampling::tests::keys_cubic_kernel_properties ... ok [INFO] [stdout] test sampling::tests::mitchell_netravali_at_zero_correct_value ... ok [INFO] [stdout] test sampling::tests::lanczos3_solid_f32 ... ok [INFO] [stdout] test sampling::tests::mitchell_netravali_beyond_two_is_zero ... ok [INFO] [stdout] test sampling::tests::mitchell_netravali_four_tap_sums_to_one ... ok [INFO] [stdout] test sampling::tests::sample_u16_zero_dim_error ... ok [INFO] [stdout] test sampling::tests::sample_u8_buffer_too_small_error ... ok [INFO] [stdout] test sampling::tests::sample_bicubic_corner_bottom_right_does_not_panic ... ok [INFO] [stdout] test sampling::tests::sample_bicubic_corner_top_left_does_not_panic ... ok [INFO] [stdout] test sampling::tests::sample_bicubic_gradient_order_preserved ... ok [INFO] [stdout] test sampling::tests::sample_bicubic_matches_pixel_at_exact_integer_coords ... ok [INFO] [stdout] test sampling::tests::sample_bicubic_solid_colour_centre ... ok [INFO] [stdout] test sampling::tests::sample_bicubic_solid_colour_fractional_position ... ok [INFO] [stdout] test sampling::tests::sample_u8_zero_dim_error ... ok [INFO] [stdout] test sampling::tests::sample_bicubic_zero_dim_returns_black ... ok [INFO] [stdout] test sampling::tests::bicubic_solid_colour_u8 ... ok [INFO] [stdout] test sampling::tests::bicubic_solid_u16 ... ok [INFO] [stdout] test sampling::tests::lanczos2_solid_colour_u8 ... ok [INFO] [stdout] test sampling::tests::sample_f32_zero_dim_error ... ok [INFO] [stdout] test sampling::tests::one_channel_image_works ... ok [INFO] [stdout] test sampling::tests::sinc_at_integer_is_zero ... ok [INFO] [stdout] test seam_blending::tests::edge_pixel_index_top_row_correct ... ok [INFO] [stdout] test seam_blending::tests::feather_face_buffer_too_small_returns_error ... ok [INFO] [stdout] test sampling::tests::sinc_at_zero_is_one ... ok [INFO] [stdout] test seam_blending::tests::feather_face_darkens_border_pixels ... ok [INFO] [stdout] test seam_blending::tests::feather_weights_interior_is_one ... ok [INFO] [stdout] test seam_blending::tests::feather_weights_monotonically_non_decreasing_in_blend_zone ... ok [INFO] [stdout] test seam_blending::tests::feather_face_output_size_unchanged ... ok [INFO] [stdout] test seam_blending::tests::edge_pixel_index_bottom_row_correct ... ok [INFO] [stdout] test seam_blending::tests::seam_quality_is_acceptable_threshold ... ok [INFO] [stdout] test seam_blending::tests::feather_weights_boundary_approaches_zero ... ok [INFO] [stdout] test seam_blending::tests::seam_quality_metrics_identical_faces_zero_error ... ok [INFO] [stdout] test spatial_audio_360::tests::ambisonics_order_channel_counts ... ok [INFO] [stdout] test spatial_audio_360::tests::audio_sphere_point_linear_gain_0db ... ok [INFO] [stdout] test spatial_audio_360::tests::audio_sphere_point_cartesian_forward ... ok [INFO] [stdout] test spatial_audio_360::tests::encode_foa_forward_source_nonzero_wx ... ok [INFO] [stdout] test spatial_audio_360::tests::head_rotation_renderer_foa_default_8_speakers ... ok [INFO] [stdout] test spatial_audio_360::tests::encode_foa_top_source_z_nonzero ... ok [INFO] [stdout] test seam_blending::tests::feather_weights_rejects_zero_size ... ok [INFO] [stdout] test seam_blending::tests::seam_blend_reduces_boundary_difference ... ok [INFO] [stdout] test sampling::tests::lanczos3_solid_colour_u8 ... ok [INFO] [stdout] test projection::tests::equirect_cube_equirect_psnr_above_threshold ... ok [INFO] [stdout] test spatial_audio_360::tests::head_rotation_renderer_hints_identity_orientation ... ok [INFO] [stdout] test seam_blending::tests::seam_blender_new_rejects_zero_size ... ok [INFO] [stdout] test spatial_audio_360::tests::head_rotation_renderer_no_speakers_error ... ok [INFO] [stdout] test spatial_audio_360::tests::mix_ambisonics_mismatched_length_error ... ok [INFO] [stdout] test spatial_metadata::tests::parse_xmp_fisheye_projection ... ok [INFO] [stdout] test spatial_metadata::tests::parse_xmp_returns_none_for_empty_string ... ok [INFO] [stdout] test spatial_audio_360::tests::mix_ambisonics_two_sources_sum_correctly ... ok [INFO] [stdout] test spatial_metadata::tests::parse_xmp_returns_none_for_non_gpano_xml ... ok [INFO] [stdout] test spatial_audio_360::tests::sphere_map_sorted_by_gain_descending ... ok [INFO] [stdout] test spatial_audio_360::tests::sn3d_n3d_round_trip ... ok [INFO] [stdout] test spatial_audio_360::tests::metadata_validate_wrong_channel_count ... ok [INFO] [stdout] test spatial_metadata::tests::parse_xmp_roundtrip_topbottom ... ok [INFO] [stdout] test spatial_audio_360::tests::sn3d_to_n3d_gain_acn0_is_one ... ok [INFO] [stdout] test spatial_metadata::tests::parse_xmp_roundtrip_equirect_mono ... ok [INFO] [stdout] test spatial_metadata::tests::projection_type_from_gpano_str_roundtrip ... ok [INFO] [stdout] test spatial_audio_360::tests::sphere_map_gain_weighted_centroid_symmetric ... ok [INFO] [stdout] test spatial_audio_360::tests::sphere_map_nearest_returns_closest ... ok [INFO] [stdout] test spatial_audio_360::tests::mix_ambisonics_empty_input_error ... ok [INFO] [stdout] test spatial_audio_360::tests::metadata_validate_correct ... ok [INFO] [stdout] test spatial_audio_360::tests::sphere_map_nearest_single_point ... ok [INFO] [stdout] test spatial_metadata::tests::projection_type_to_gpano_str ... ok [INFO] [stdout] test spatial_metadata::tests::projection_type_unknown_fallback ... ok [INFO] [stdout] test spatial_metadata::tests::st3d_box_fourcc ... ok [INFO] [stdout] test spatial_metadata::tests::st3d_box_mono_stereo_mode ... ok [INFO] [stdout] test spatial_metadata::tests::st3d_box_size_field ... ok [INFO] [stdout] test spatial_metadata::tests::st3d_box_top_bottom_stereo_mode ... ok [INFO] [stdout] test spatial_metadata::tests::sv3d_box_cubemap_fourcc ... ok [INFO] [stdout] test spatial_metadata::tests::st3d_box_version_is_zero ... ok [INFO] [stdout] test spatial_metadata::tests::st3d_box_left_right_stereo_mode ... ok [INFO] [stdout] test spatial_metadata::tests::sv3d_box_contains_equi_fourcc ... ok [INFO] [stdout] test spatial_metadata::tests::sv3d_box_equirect_length ... ok [INFO] [stdout] test spatial_metadata::tests::sv3d_box_size_field_matches_length ... ok [INFO] [stdout] test spatial_metadata::tests::sv3d_box_starts_with_sv3d_fourcc ... ok [INFO] [stdout] test spatial_metadata::tests::to_xmp_contains_gpano_namespace ... ok [INFO] [stdout] test spatial_metadata::tests::to_xmp_contains_projection_type ... ok [INFO] [stdout] test spatial_metadata::tests::to_xmp_contains_initial_view_angles ... ok [INFO] [stdout] test spatial_metadata::tests::to_xmp_contains_stereo_mode ... ok [INFO] [stdout] test stabilization::tests::imu_integrator_nonzero_rotation_changes_quaternion ... ok [INFO] [stdout] test stabilization::tests::imu_integrator_empty_input_returns_empty ... ok [INFO] [stdout] test stabilization::tests::quat_normalise_unit_stays_unit ... ok [INFO] [stdout] test stabilization::tests::imu_integrator_zero_rotation_stays_identity ... ok [INFO] [stdout] test stabilization::tests::quat_slerp_t1_returns_b ... ok [INFO] [stdout] test stabilization::tests::quat_slerp_t0_returns_a ... ok [INFO] [stdout] test stabilization::tests::quat_identity_mul_is_identity ... ok [INFO] [stdout] test stabilization::tests::smooth_identity_sequence_stays_identity ... ok [INFO] [stdout] test stabilization::tests::smooth_orientations_returns_same_length ... ok [INFO] [stdout] test spatial_metadata::tests::to_xmp_contains_xpacket_header ... ok [INFO] [stdout] test stabilization::tests::stabilize_frame_buffer_too_small_error ... ok [INFO] [stdout] test stereo::tests::depth_map_fill_and_sample ... ok [INFO] [stdout] test stereo::tests::disparity_at_infinity_is_near_zero ... ok [INFO] [stdout] test stereo::tests::disparity_increases_for_closer_objects ... ok [INFO] [stdout] test stereo::tests::disparity_zero_depth_returns_zero ... ok [INFO] [stdout] test stabilization::tests::imu_integrator_single_sample_is_identity ... ok [INFO] [stdout] test stereo::tests::disparity_zero_width_returns_zero ... ok [INFO] [stdout] test stabilization::tests::imu_orientations_at_timestamps_returns_correct_count ... ok [INFO] [stdout] test stabilization::tests::stabilize_frame_correct_output_size ... ok [INFO] [stdout] test stabilization::tests::stabilize_frame_identity_is_noop ... ok [INFO] [stdout] test stabilization::tests::stabilize_frame_zero_dimensions_error ... ok [INFO] [stdout] test stereo::tests::alternating_split_unsupported ... ok [INFO] [stdout] test stereo::tests::leftright_merge_roundtrip ... ok [INFO] [stdout] test stereo::tests::leftright_split_odd_width_error ... ok [INFO] [stdout] test stereo::tests::leftright_split_then_merge_identity ... ok [INFO] [stdout] test stereo::tests::mono_merge_unsupported ... ok [INFO] [stdout] test stereo::tests::mono_split_unsupported ... ok [INFO] [stdout] test stereo::tests::parallax_error_buffer_too_small ... ok [INFO] [stdout] test stereo::tests::metadata_defaults ... ok [INFO] [stdout] test stereo::tests::parallax_error_different_frames_is_positive ... ok [INFO] [stdout] test stereo::tests::parallax_error_maximum_is_255 ... ok [INFO] [stdout] test stereo::tests::rgba_buffer_too_small_error ... ok [INFO] [stdout] test stereo::tests::rgba_leftright_split_then_merge_identity ... ok [INFO] [stdout] test stereo::tests::rgba_mono_unsupported ... ok [INFO] [stdout] test stereo::tests::rgba_odd_height_topbottom_error ... ok [INFO] [stdout] test stereo::tests::rgba_topbottom_merge_roundtrip ... ok [INFO] [stdout] test stereo::tests::rgba_odd_width_leftright_error ... ok [INFO] [stdout] test stereo::tests::leftright_split_sizes ... ok [INFO] [stdout] test stereo::tests::rgba_alternating_unsupported ... ok [INFO] [stdout] test stereo::tests::rgba_topbottom_split_sizes ... ok [INFO] [stdout] test stereo::tests::rgba_leftright_merge_roundtrip ... ok [INFO] [stdout] test stereo::tests::rgba_topbottom_split_then_merge_identity ... ok [INFO] [stdout] test stereo::tests::stereo_from_depth_produces_correct_sizes ... ok [INFO] [stdout] test stereo::tests::topbottom_merge_roundtrip ... ok [INFO] [stdout] test stereo::tests::topbottom_split_odd_height_error ... ok [INFO] [stdout] test stereo::tests::topbottom_split_then_merge_identity ... ok [INFO] [stdout] test stitching_quality::tests::parallax_rejects_zero_dimensions ... ok [INFO] [stdout] test stereo::tests::topbottom_split_sizes ... ok [INFO] [stdout] test stitching_quality::tests::parallax_solid_image_low_gradient ... ok [INFO] [stdout] test stitching_quality::tests::seam_score_rejects_buffer_too_small ... ok [INFO] [stdout] test stitching_quality::tests::colour_mismatch_full_contrast_is_near_one ... ok [INFO] [stdout] test stereo::tests::parallax_error_identical_frames_is_zero ... ok [INFO] [stdout] test stitching_quality::tests::seam_analyser_rejects_zero_dimensions ... ok [INFO] [stdout] test stereo::tests::stereo_from_depth_zero_disparity_mirrors_source ... ok [INFO] [stdout] test stitching_quality::tests::parallax_rejects_seam_too_close_to_edge ... ok [INFO] [stdout] test stitching_quality::tests::colour_mismatch_solid_is_zero ... ok [INFO] [stdout] test stitching_quality::tests::seam_score_solid_image_is_zero ... ok [INFO] [stdout] test stitching_quality::tests::stitch_report_solid_image_excellent_quality ... ok [INFO] [stdout] test stitching_quality::tests::colour_mismatch_rejects_invalid_seam_col ... ok [INFO] [stdout] test stitching_quality::tests::stitch_report_quality_labels_cover_range ... ok [INFO] [stdout] test tile_selector::tests::fov_allocator_correct_tile_count ... ok [INFO] [stdout] test tile_selector::tests::fov_allocator_cutoff_less_than_fovea_error ... ok [INFO] [stdout] test tile_selector::tests::fov_allocator_centre_tile_gets_max_level ... ok [INFO] [stdout] test tile_selector::tests::fov_allocator_grid_accessor ... ok [INFO] [stdout] test tile_selector::tests::fov_allocator_angle_is_non_negative ... ok [INFO] [stdout] test tile_selector::tests::fov_allocator_all_falloff_modes_produce_valid_levels ... ok [INFO] [stdout] test stitching_quality::tests::stitch_report_high_contrast_poor_quality ... ok [INFO] [stdout] test stitching_quality::tests::seam_score_high_for_max_contrast_seam ... ok [INFO] [stdout] test tile_selector::tests::fov_allocator_invalid_fovea_radius ... ok [INFO] [stdout] test tile_selector::tests::fov_allocator_quality_decreases_with_angle ... ok [INFO] [stdout] test tile_selector::tests::quality_ladder_critical_gets_max_level ... ok [INFO] [stdout] test tile_selector::tests::quality_ladder_rejects_zero_levels ... ok [INFO] [stdout] test stereo::tests::depth_map_sample_corners ... ok [INFO] [stdout] test tile_selector::tests::quality_ladder_skip_always_zero ... ok [INFO] [stdout] test tile_selector::tests::selector_all_tiles_assigned ... ok [INFO] [stdout] test tile_selector::tests::selector_with_zero_near_margin_has_no_near_tiles_outside_viewport ... ok [INFO] [stdout] test tile_selector::tests::sorted_assignment_is_critical_first ... ok [INFO] [stdout] test tile_selector::tests::tile_grid_angular_widths_cover_sphere ... ok [INFO] [stdout] test tile_selector::tests::tile_grid_indices_count_matches_tile_count ... ok [INFO] [stdout] test stereo::tests::rgba_leftright_split_sizes ... ok [INFO] [stdout] test tile_selector::tests::tile_grid_correct_tile_count ... ok [INFO] [stdout] test tile_selector::tests::tile_grid_region_out_of_bounds ... ok [INFO] [stdout] test tiled::tests::packed_sampler_solid_colour ... ok [INFO] [stdout] test tiled::tests::tiled_buffer_too_small_error ... ok [INFO] [stdout] test tiled::tests::packed_sampler_corner_clamping ... ok [INFO] [stdout] test tiled::tests::resample_parallel_zero_dim_error ... ok [INFO] [stdout] test tile_selector::tests::selector_critical_tiles_in_viewport ... ok [INFO] [stdout] test tile_selector::tests::tile_grid_rejects_zero_dimensions ... ok [INFO] [stdout] test v3d::tests::fixed_16_16_roundtrip_positive ... ok [INFO] [stdout] test v3d::tests::projection_fisheye_is_one ... ok [INFO] [stdout] test v3d::tests::signed_fixed_16_16_roundtrip_negative ... ok [INFO] [stdout] test tiled::tests::packed_sampler_matches_generic ... ok [INFO] [stdout] test tile_selector::tests::fov_allocator_tiles_beyond_cutoff_are_zero ... ok [INFO] [stdout] test v3d::tests::stereo_mode_lr_is_zero ... ok [INFO] [stdout] test v3d::tests::stereo_mode_roundtrip ... ok [INFO] [stdout] test v3d::tests::stereo_mode_tb_is_one ... ok [INFO] [stdout] test v3d::tests::v3d_box_equirectangular_lr_roundtrip ... ok [INFO] [stdout] test v3d::tests::v3d_box_fisheye_lr_roundtrip ... ok [INFO] [stdout] test v3d::tests::v3d_box_fourcc_is_correct ... ok [INFO] [stdout] test v3d::tests::v3d_box_size_field_matches_length ... ok [INFO] [stdout] test v3d::tests::v3d_box_size_is_32 ... ok [INFO] [stdout] test v3d::tests::v3d_box_top_bottom_mode_roundtrip ... ok [INFO] [stdout] test v3d::tests::v3d_box_version_is_zero ... ok [INFO] [stdout] test v3d::tests::v3d_parse_error_wrong_fourcc ... ok [INFO] [stdout] test v3d::tests::v3d_parse_error_too_short ... ok [INFO] [stdout] test v3d::tests::v3d_parse_error_size_too_small ... ok [INFO] [stdout] test v3d::tests::projection_equirect_is_zero ... ok [INFO] [stdout] test tiled::tests::tiled_face_size_is_correct ... ok [INFO] [stdout] test tiled::tests::tiled_zero_face_size_error ... ok [INFO] [stdout] test tiled::tests::tiled_zero_tile_size_error ... ok [INFO] [stdout] test viewport::tests::buffer_too_small_error ... ok [INFO] [stdout] test viewport::tests::invalid_fov_error ... ok [INFO] [stdout] test tiled::tests::resample_parallel_solid_colour_preserved ... ok [INFO] [stdout] test tiled::tests::tiled_produces_six_faces ... ok [INFO] [stdout] test viewport::tests::render_with_coords_sizes ... ok [INFO] [stdout] test viewport::tests::rot_identity_does_not_change_vector ... ok [INFO] [stdout] test viewport::tests::rot_yaw_90_rotates_forward_to_right ... ok [INFO] [stdout] test tiled::tests::tiled_matches_standard_result ... ok [INFO] [stdout] test viewport::tests::vfov_16x9_90hfov ... ok [INFO] [stdout] test viewport::tests::viewport_params_builder ... ok [INFO] [stdout] test viewport::tests::render_with_coords_centre_pixel_near_yaw_direction ... ok [INFO] [stdout] test tiled::tests::parallel_produces_six_faces ... ok [INFO] [stdout] test viewport_predictor::tests::constant_position_no_history_zero_confidence ... ok [INFO] [stdout] test viewport_predictor::tests::constant_position_reset_clears_state ... ok [INFO] [stdout] test viewport_predictor::tests::linear_predictor_capacity_evicts_old_samples ... ok [INFO] [stdout] test viewport::tests::zero_src_dimension_error ... ok [INFO] [stdout] test viewport::tests::yaw_90_shifts_view ... ok [INFO] [stdout] test viewport_predictor::tests::linear_predictor_pitch_clamped_to_pi_over_2 ... ok [INFO] [stdout] test viewport_predictor::tests::constant_position_returns_last_sample ... ok [INFO] [stdout] test viewport_predictor::tests::linear_predictor_extrapolates_constant_velocity ... ok [INFO] [stdout] test viewport_predictor::tests::linear_predictor_wraps_yaw ... ok [INFO] [stdout] test viewport_predictor::tests::weighted_predictor_confidence_grows_with_samples ... ok [INFO] [stdout] test viewport_predictor::tests::weighted_predictor_invalid_alpha_returns_error ... ok [INFO] [stdout] test viewport::tests::render_viewport_correct_output_size ... ok [INFO] [stdout] test vr180::tests::nv12_to_rgba_alpha_is_opaque ... ok [INFO] [stdout] test tiled::tests::resample_parallel_identity_map_correct_size ... ok [INFO] [stdout] test viewport::tests::zero_output_dimension_error ... ok [INFO] [stdout] test vr180::tests::nv12_to_rgba_too_small_returns_empty ... ok [INFO] [stdout] test vr180::tests::to_equirectangular_centre_pixel_sampled_from_half_frame ... ok [INFO] [stdout] test vr180::tests::to_equirectangular_output_size ... ok [INFO] [stdout] test vr180::tests::to_equirectangular_rear_hemisphere_is_black ... ok [INFO] [stdout] test vr180::tests::to_equirectangular_zero_dims_returns_zeros ... ok [INFO] [stdout] test viewport::tests::solid_panorama_any_orientation_returns_same_colour ... ok [INFO] [stdout] test viewport_predictor::tests::viewport_region_from_fov_rejects_zero_fov ... ok [INFO] [stdout] test viewport_predictor::tests::viewport_region_does_not_contain_outside ... ok [INFO] [stdout] test viewport_predictor::tests::viewport_region_contains_centre ... ok [INFO] [stdout] test viewport_predictor::tests::viewport_region_iou_non_overlapping ... ok [INFO] [stdout] test vr180::tests::nv12_to_rgba_output_size ... ok [INFO] [stdout] test viewport_predictor::tests::viewport_region_iou_identical_regions ... ok [INFO] [stdout] test vr180::tests::validate_half_frame_ok ... ok [INFO] [stdout] test vr180::tests::validate_half_frame_too_small ... ok [INFO] [stdout] test vr180::tests::validate_half_frame_zero_dims ... ok [INFO] [stdout] test viewport_predictor::tests::weighted_predictor_constant_velocity_matches_linear ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 544 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] [stderr] Doc-tests oximedia_360 [INFO] [stdout] [INFO] [stdout] running 21 tests [INFO] [stdout] test src/mesh_warp.rs - mesh_warp (line 20) ... ok [INFO] [stdout] test src/stabilization.rs - stabilization (line 22) ... ok [INFO] [stdout] test src/rectilinear.rs - rectilinear (line 22) ... ok [INFO] [stdout] test src/rectilinear.rs - rectilinear::RectilinearProjection (line 54) ... ok [INFO] [stdout] test src/apple_spatial.rs - apple_spatial (line 35) ... ok [INFO] [stdout] test src/spatial_audio_360.rs - spatial_audio_360 (line 32) ... ok [INFO] [stdout] test src/fisheye.rs - fisheye::DualFisheyeStitcherBuilder (line 573) ... ok [INFO] [stdout] test src/octahedral.rs - octahedral (line 29) ... ok [INFO] [stdout] test src/stitching_quality.rs - stitching_quality (line 26) ... ok [INFO] [stdout] test src/fisheye_lut.rs - fisheye_lut (line 11) ... ok [INFO] [stdout] test src/v3d.rs - v3d (line 35) ... ok [INFO] [stdout] test src/orientation.rs - orientation (line 19) ... ok [INFO] [stdout] test src/seam_blending.rs - seam_blending (line 24) ... ok [INFO] [stdout] test src/tiled.rs - tiled (line 22) ... ok [INFO] [stdout] test src/viewport.rs - viewport (line 20) - compile ... ok [INFO] [stdout] test src/headset_metadata.rs - headset_metadata::HeadsetOptimizedConfig::for_headset (line 224) ... ok [INFO] [stdout] test src/pixel_format.rs - pixel_format (line 10) ... ok [INFO] [stdout] test src/gaze_tracker.rs - gaze_tracker (line 26) ... ok [INFO] [stdout] test src/viewport_predictor.rs - viewport_predictor (line 27) ... ok [INFO] [stdout] test src/tile_selector.rs - tile_selector (line 25) ... ok [INFO] [stdout] test src/vr180.rs - vr180 (line 18) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.21s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "f0200ac8c88519521ea70665254e41e73b84b630f65c753270cdbc623c3d6ad4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f0200ac8c88519521ea70665254e41e73b84b630f65c753270cdbc623c3d6ad4", kill_on_drop: false }` [INFO] [stdout] f0200ac8c88519521ea70665254e41e73b84b630f65c753270cdbc623c3d6ad4