[INFO] fetching crate oximedia-spatial 0.1.5...
[INFO] testing oximedia-spatial-0.1.5 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate oximedia-spatial 0.1.5 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate oximedia-spatial 0.1.5
[INFO] finished tweaking crates.io crate oximedia-spatial 0.1.5
[INFO] tweaked toml for crates.io crate oximedia-spatial 0.1.5 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate oximedia-spatial 0.1.5 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate oximedia-spatial 0.1.5 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4b7a91c5509f8c39cdece9c3f0eb487498967233436aeb1f0c25e14566fc0b8e
[INFO] running `Command { std: "docker" "start" "-a" "4b7a91c5509f8c39cdece9c3f0eb487498967233436aeb1f0c25e14566fc0b8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4b7a91c5509f8c39cdece9c3f0eb487498967233436aeb1f0c25e14566fc0b8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4b7a91c5509f8c39cdece9c3f0eb487498967233436aeb1f0c25e14566fc0b8e", kill_on_drop: false }`
[INFO] [stdout] 4b7a91c5509f8c39cdece9c3f0eb487498967233436aeb1f0c25e14566fc0b8e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] acafd51773a0c44e9cfbba8c2b1c08c3623b828cbe9b018729b55887f76f42bd
[INFO] running `Command { std: "docker" "start" "-a" "acafd51773a0c44e9cfbba8c2b1c08c3623b828cbe9b018729b55887f76f42bd", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling oximedia-spatial v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.90s
[INFO] running `Command { std: "docker" "inspect" "acafd51773a0c44e9cfbba8c2b1c08c3623b828cbe9b018729b55887f76f42bd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "acafd51773a0c44e9cfbba8c2b1c08c3623b828cbe9b018729b55887f76f42bd", kill_on_drop: false }`
[INFO] [stdout] acafd51773a0c44e9cfbba8c2b1c08c3623b828cbe9b018729b55887f76f42bd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c0258cc2cc23312a517645c13b8b855998b81092b4c7b3eff37c79da253184bf
[INFO] running `Command { std: "docker" "start" "-a" "c0258cc2cc23312a517645c13b8b855998b81092b4c7b3eff37c79da253184bf", kill_on_drop: false }`
[INFO] [stderr]    Compiling oximedia-spatial v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.91s
[INFO] running `Command { std: "docker" "inspect" "c0258cc2cc23312a517645c13b8b855998b81092b4c7b3eff37c79da253184bf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c0258cc2cc23312a517645c13b8b855998b81092b4c7b3eff37c79da253184bf", kill_on_drop: false }`
[INFO] [stdout] c0258cc2cc23312a517645c13b8b855998b81092b4c7b3eff37c79da253184bf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ee4ea3d198e33f5e080616a635ef9c233b5649de35496b7c76fb0268e757f0cf
[INFO] running `Command { std: "docker" "start" "-a" "ee4ea3d198e33f5e080616a635ef9c233b5649de35496b7c76fb0268e757f0cf", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_spatial-b1b93490b0e7c021)
[INFO] [stdout] 
[INFO] [stdout] running 369 tests
[INFO] [stdout] test ambisonics::tests::test_decode_5_1_lfe_is_attenuated ... ok
[INFO] [stdout] test ambisonics::tests::test_encode_decode_roundtrip_front_source ... ok
[INFO] [stdout] test ambisonics::tests::test_decode_stereo_returns_two_buffers_correct_length ... ok
[INFO] [stdout] test ambisonics::tests::test_decode_5_1_returns_six_channels ... ok
[INFO] [stdout] test ambisonics::tests::test_encode_mono_channel_count_fourth ... ok
[INFO] [stdout] test ambisonics::tests::test_encode_mono_channel_count_fifth ... ok
[INFO] [stdout] test ambisonics::tests::test_encode_mono_channel_count_third ... ok
[INFO] [stdout] test ambisonics::tests::test_encode_mono_silence_produces_silence ... ok
[INFO] [stdout] test ambisonics::tests::test_encode_decode_fifth_order_5_1 ... ok
[INFO] [stdout] test ambisonics::tests::test_encode_mono_length_preserved ... ok
[INFO] [stdout] test ambisonics::tests::test_encode_mono_w_channel_nonzero_for_impulse ... ok
[INFO] [stdout] test ambisonics::tests::test_encode_mono_channel_count_first ... ok
[INFO] [stdout] test ambisonics::tests::test_fifth_order_all_channels_finite ... ok
[INFO] [stdout] test ambisonics::tests::test_encode_mono_channel_count_second ... ok
[INFO] [stdout] test ambisonics::tests::test_fifth_order_w_channel_nonzero ... ok
[INFO] [stdout] test ambisonics::tests::test_fifth_order_stereo_encoding ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_apply_modifies_higher_orders ... ok
[INFO] [stdout] test ambisonics::tests::test_fifth_order_encode_preserves_signal_energy ... ok
[INFO] [stdout] test ambisonics::tests::test_fourth_order_encode_decode_roundtrip ... ok
[INFO] [stdout] test ambisonics::tests::test_fifth_order_decode_stereo ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_fifth_order_filter_states ... ok
[INFO] [stdout] test ambisonics::tests::test_fifth_order_sh_coefficients_sum_positive ... ok
[INFO] [stdout] test ambisonics::tests::test_fourth_order_energy_preservation ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_higher_orders_have_larger_alpha ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_far_source_minimal_filtering ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_apply_does_not_modify_order0 ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_closer_source_more_filtering_on_high_orders ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_output_finite ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_closer_distance_stronger_filtering ... ok
[INFO] [stdout] test ambisonics::tests::test_higher_order_has_more_channels ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_reset_clears_state ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_set_distance ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_set_distance_recalculates ... ok
[INFO] [stdout] test ambisonics::tests::test_order_num_channels ... ok
[INFO] [stdout] test ambisonics::tests::test_order_num_channels_fourth ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_distance_accessor ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_minimum_distance_clamp ... ok
[INFO] [stdout] test ambisonics::tests::test_encode_stereo_channel_count ... ok
[INFO] [stdout] test ambisonics::tests::test_order_num_channels_fifth ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_new_creates_correct_filter_count ... ok
[INFO] [stdout] test ambisonics::tests::test_sh_batch_matches_scalar_first_order ... ok
[INFO] [stdout] test ambisonics::tests::test_sh_batch_empty_input_produces_empty_output ... ok
[INFO] [stdout] test ambisonics::tests::test_sh_batch_matches_scalar_third_order ... ok
[INFO] [stdout] test ambisonics::tests::test_sh_batch_output_all_finite ... ok
[INFO] [stdout] test ambisonics::tests::test_sh_batch_output_length ... ok
[INFO] [stdout] test ambisonics::tests::test_sh_batch_clears_previous_contents ... ok
[INFO] [stdout] test ambisonics::tests::test_sn3d_norm_differs_from_n3d ... ok
[INFO] [stdout] test ambisonics::tests::test_sn3d_norm_fifth_order ... ok
[INFO] [stdout] test ambisonics::tests::test_sound_source_new_defaults ... ok
[INFO] [stdout] test ambisonics::tests::test_sound_source_rotate_yaw_90 ... ok
[INFO] [stdout] test binaural::tests::test_convolve_empty_signal ... ok
[INFO] [stdout] test binaural::tests::test_convolve_impulse_recovers_ir ... ok
[INFO] [stdout] test binaural::tests::test_convolve_output_length ... ok
[INFO] [stdout] test ambisonics::tests::test_nfc_order0_alpha_is_zero ... ok
[INFO] [stdout] test ambisonics::tests::test_sound_source_rotate_identity ... ok
[INFO] [stdout] test binaural::tests::test_render_moving_empty_path ... ok
[INFO] [stdout] test binaural::tests::test_hrtf_irs_not_all_zero ... ok
[INFO] [stdout] test binaural::tests::test_nearest_measurement_exact_match ... ok
[INFO] [stdout] test ambisonics::tests::test_sh_orthogonality_first_order ... ok
[INFO] [stdout] test binaural::tests::test_invert_symmetric_matrix_identity ... ok
[INFO] [stdout] test binaural::tests::test_render_produces_audio ... ok
[INFO] [stdout] test binaural::tests::test_render_output_length ... ok
[INFO] [stdout] test binaural::tests::test_nearest_measurement_approximate ... ok
[INFO] [stdout] test binauralizer::tests::test_ambisonics_layout_eight_virtual_speakers ... ok
[INFO] [stdout] test binaural::tests::test_render_moving_output_length ... ok
[INFO] [stdout] test binaural::tests::test_synthetic_db_ir_length ... ok
[INFO] [stdout] test binauralizer::tests::test_five_one_layout_six_speakers ... ok
[INFO] [stdout] test binaural::tests::test_synthetic_db_measurement_count ... ok
[INFO] [stdout] test binauralizer::tests::test_foa_decode_silent_input_gives_silent_output ... ok
[INFO] [stdout] test binaural::tests::test_sh_interpolated_lateral_source_asymmetry ... ok
[INFO] [stdout] test binaural::tests::test_sh_binaural_renderer_front_symmetric ... ok
[INFO] [stdout] test binauralizer::tests::test_atmos_layout_twelve_speakers ... ok
[INFO] [stdout] test binauralizer::tests::test_foa_decode_output_finite ... ok
[INFO] [stdout] test binaural::tests::test_sh_binaural_renderer_render ... ok
[INFO] [stdout] test binaural::tests::test_sh_interpolated_ir_length ... ok
[INFO] [stdout] test binaural::tests::test_sh_interpolated_elevation_sweep ... ok
[INFO] [stdout] test binauralizer::tests::test_mono_layout_one_speaker ... ok
[INFO] [stdout] test binauralizer::tests::test_from_layout_stereo ... ok
[INFO] [stdout] test binauralizer::tests::test_foa_decode_wrong_channel_count_fails ... ok
[INFO] [stdout] test binaural::tests::test_sh_interpolated_db_from_synthetic ... ok
[INFO] [stdout] test binaural::tests::test_sh_interpolated_continuity ... ok
[INFO] [stdout] test binauralizer::tests::test_from_custom_valid ... ok
[INFO] [stdout] test binauralizer::tests::test_foa_decode_valid_four_channels ... ok
[INFO] [stdout] test binauralizer::tests::test_set_channel_gain ... ok
[INFO] [stdout] test binauralizer::tests::test_render_mono_at_has_energy ... ok
[INFO] [stdout] test binauralizer::tests::test_seven_one_layout_eight_speakers ... ok
[INFO] [stdout] test binaural::tests::test_sh_interpolated_irs_are_finite ... ok
[INFO] [stdout] test binauralizer::tests::test_stereo_layout_two_speakers ... ok
[INFO] [stdout] test dbap::tests::test_dbap_all_gains_non_negative ... ok
[INFO] [stdout] test dbap::tests::test_dbap_3d_layout_energy_preserved ... ok
[INFO] [stdout] test dbap::tests::test_dbap_centre_gives_equal_gains_to_symmetric_speakers ... ok
[INFO] [stdout] test binauralizer::tests::test_render_stereo_output_lengths ... ok
[INFO] [stdout] test dbap::tests::test_dbap_energy_normalised_centre ... ok
[INFO] [stdout] test dbap::tests::test_dbap_energy_normalised_off_centre ... ok
[INFO] [stdout] test binaural::tests::test_sh_interpolated_non_measured_direction ... ok
[INFO] [stdout] test binauralizer::tests::test_render_stereo_has_energy ... ok
[INFO] [stdout] test binauralizer::tests::test_from_custom_empty_fails ... ok
[INFO] [stdout] test dbap::tests::test_dbap_exact_coincidence_routes_to_one_speaker ... ok
[INFO] [stdout] test binauralizer::tests::test_foa_decode_output_has_energy ... ok
[INFO] [stdout] test binauralizer::tests::test_render_five_one ... ok
[INFO] [stdout] test dbap::tests::test_dbap_higher_rolloff_more_directional ... ok
[INFO] [stdout] test binauralizer::tests::test_render_output_finite ... ok
[INFO] [stdout] test dbap::tests::test_dbap_new_valid ... ok
[INFO] [stdout] test dbap::tests::test_dbap_new_single_speaker_fails ... ok
[INFO] [stdout] test binauralizer::tests::test_render_channel_count_mismatch_fails ... ok
[INFO] [stdout] test dbap::tests::test_dbap_output_length_matches_speakers ... ok
[INFO] [stdout] test dbap::tests::test_dbap_nearest_speaker_receives_most_gain ... ok
[INFO] [stdout] test binaural::tests::test_sh_binaural_renderer_moving_source ... ok
[INFO] [stdout] test head_tracking::tests::test_binaural_angles_after_yaw ... ok
[INFO] [stdout] test head_tracking::tests::test_full_imu_tracker_mag_correction_produces_finite_output ... ok
[INFO] [stdout] test head_tracking::tests::test_full_imu_tracker_mag_heading_stored ... ok
[INFO] [stdout] test binauralizer::tests::test_render_unequal_lengths_fails ... ok
[INFO] [stdout] test binaural::tests::test_sh_interpolated_at_measured_direction_has_energy ... ok
[INFO] [stdout] test head_tracking::tests::test_full_imu_tracker_reset_clears_state ... ok
[INFO] [stdout] test head_tracking::tests::test_head_tracker_accel_correction_at_low_alpha ... ok
[INFO] [stdout] test head_tracking::tests::test_head_tracker_gyro_only_accumulates_yaw ... ok
[INFO] [stdout] test head_tracking::tests::test_binaural_angles_identity_no_change ... ok
[INFO] [stdout] test head_tracking::tests::test_full_imu_tracker_declination_applied ... ok
[INFO] [stdout] test head_tracking::tests::test_full_imu_tracker_gyro_only_accumulates ... ok
[INFO] [stdout] test dbap::tests::test_dbap_rolloff_zero_is_equal_spread ... ok
[INFO] [stdout] test head_tracking::tests::test_full_imu_tracker_identity_at_start ... ok
[INFO] [stdout] test head_tracking::tests::test_head_tracker_identity_at_start ... ok
[INFO] [stdout] test head_tracking::tests::test_head_tracker_lowpass_smoothing ... ok
[INFO] [stdout] test head_tracking::tests::test_head_tracker_reset_clears_orientation ... ok
[INFO] [stdout] test head_tracking::tests::test_kalman_predict_propagates_state ... ok
[INFO] [stdout] test head_tracking::tests::test_kalman_update_moves_toward_measurement ... ok
[INFO] [stdout] test head_tracking::tests::test_low_pass_filter_alpha_one_is_passthrough ... ok
[INFO] [stdout] test head_tracking::tests::test_low_pass_filter_converges ... ok
[INFO] [stdout] test head_tracking::tests::test_low_pass_filter_from_cutoff ... ok
[INFO] [stdout] test head_tracking::tests::test_mag_calibration_identity_no_change ... ok
[INFO] [stdout] test head_tracking::tests::test_mag_calibration_offset_subtracted ... ok
[INFO] [stdout] test head_tracking::tests::test_magnetometer_reading_normalise ... ok
[INFO] [stdout] test head_tracking::tests::test_magnetometer_reading_normalise_zero_returns_none ... ok
[INFO] [stdout] test head_tracking::tests::test_quaternion_euler_round_trip_combined ... ok
[INFO] [stdout] test head_tracking::tests::test_quaternion_euler_round_trip_pitch ... ok
[INFO] [stdout] test head_tracking::tests::test_quaternion_euler_round_trip_roll ... ok
[INFO] [stdout] test head_tracking::tests::test_quaternion_euler_round_trip_yaw ... ok
[INFO] [stdout] test head_tracking::tests::test_quaternion_identity_normalize ... ok
[INFO] [stdout] test head_tracking::tests::test_quaternion_multiply_identity ... ok
[INFO] [stdout] test head_tracking::tests::test_quaternion_normalise_non_unit ... ok
[INFO] [stdout] test head_tracking::tests::test_quaternion_slerp_t0_returns_self ... ok
[INFO] [stdout] test head_tracking::tests::test_quaternion_slerp_t1_returns_other ... ok
[INFO] [stdout] test head_tracking::tests::test_tilt_compensated_heading_east ... ok
[INFO] [stdout] test head_tracking::tests::test_tilt_compensated_heading_north_no_tilt ... ok
[INFO] [stdout] test head_tracking::tests::test_tilt_compensated_heading_range ... ok
[INFO] [stdout] test hoa_decoder::tests::test_allrad_decode_feeds_are_finite ... ok
[INFO] [stdout] test hoa_decoder::tests::test_allrad_decode_output_length ... ok
[INFO] [stdout] test hoa_decoder::tests::test_allrad_decode_omnidirectional_distributes_energy ... ok
[INFO] [stdout] test hoa_decoder::tests::test_allrad_decode_wrong_input_length_fails ... ok
[INFO] [stdout] test binaural::tests::test_sh_interpolated_smooth_rotation_sweep ... ok
[INFO] [stdout] test hoa_decoder::tests::test_allrad_new_order_zero_fails ... ok
[INFO] [stdout] test hoa_decoder::tests::test_allrad_new_too_few_speakers_fails ... ok
[INFO] [stdout] test head_tracking::tests::test_head_tracker_kalman_smoothing ... ok
[INFO] [stdout] test hoa_decoder::tests::test_allrad_new_valid_first_order ... ok
[INFO] [stdout] test hoa_decoder::tests::test_cartesian_to_spherical_front ... ok
[INFO] [stdout] test hoa_decoder::tests::test_cartesian_to_spherical_top ... ok
[INFO] [stdout] test hoa_decoder::tests::test_allrad_new_valid_third_order ... ok
[INFO] [stdout] test hoa_decoder::tests::test_great_circle_distance_opposite_points ... ok
[INFO] [stdout] test hoa_decoder::tests::test_great_circle_distance_same_point ... ok
[INFO] [stdout] test hoa_decoder::tests::test_normalise_vec3_unit ... ok
[INFO] [stdout] test hoa_decoder::tests::test_normalise_vec3_zero_returns_fallback ... ok
[INFO] [stdout] test object_audio::tests::test_audio_object_front_angles ... ok
[INFO] [stdout] test object_audio::tests::test_audio_object_left_angles ... ok
[INFO] [stdout] test object_audio::tests::test_audio_object_new_clamps ... ok
[INFO] [stdout] test object_audio::tests::test_channel_directions_length_matches_num_channels ... ok
[INFO] [stdout] test object_audio::tests::test_custom_curve_clamped_below_first_point ... ok
[INFO] [stdout] test object_audio::tests::test_custom_curve_interpolation ... ok
[INFO] [stdout] test object_audio::tests::test_custom_curve_clamped_beyond_last_point ... ok
[INFO] [stdout] test object_audio::tests::test_distance_attenuation_logarithmic_decreases_with_distance ... ok
[INFO] [stdout] test object_audio::tests::test_distance_attenuation_none_always_one ... ok
[INFO] [stdout] test object_audio::tests::test_doppler_frequency_ratio_receding_source ... ok
[INFO] [stdout] test object_audio::tests::test_doppler_frequency_ratio_stationary ... ok
[INFO] [stdout] test object_audio::tests::test_doppler_process_output_finite ... ok
[INFO] [stdout] test object_audio::tests::test_doppler_process_output_length_matches_input ... ok
[INFO] [stdout] test object_audio::tests::test_find_xml_attr_absent ... ok
[INFO] [stdout] test object_audio::tests::test_nine_one_six_num_channels ... ok
[INFO] [stdout] test object_audio::tests::test_parse_adm_object_basic ... ok
[INFO] [stdout] test object_audio::tests::test_parse_adm_object_clamps_to_unit_cube ... ok
[INFO] [stdout] test object_audio::tests::test_doppler_reset_silences_delay_buffer ... ok
[INFO] [stdout] test object_audio::tests::test_five_one_num_channels ... ok
[INFO] [stdout] test object_audio::tests::test_object_renderer_upsert_remove ... ok
[INFO] [stdout] test object_audio::tests::test_parse_adm_object_missing_x_returns_error ... ok
[INFO] [stdout] test object_audio::tests::test_parse_adm_object_with_timing ... ok
[INFO] [stdout] test object_audio::tests::test_render_to_beds_multiple_objects ... ok
[INFO] [stdout] test object_audio::tests::test_custom_curve_unsorted_points_get_sorted ... ok
[INFO] [stdout] test object_audio::tests::test_seven_four_four_num_channels ... ok
[INFO] [stdout] test object_audio::tests::test_distance_attenuation_inverse_square_at_ref_distance ... ok
[INFO] [stdout] test object_audio::tests::test_parse_adm_object_missing_id_returns_error ... ok
[INFO] [stdout] test object_audio::tests::test_distance_attenuation_inverse_square_beyond_max_is_zero ... ok
[INFO] [stdout] test object_audio::tests::test_parse_adm_object_single_quotes ... ok
[INFO] [stdout] test object_audio::tests::test_distance_attenuation_inverse_square_halves_at_double_distance ... ok
[INFO] [stdout] test object_audio::tests::test_seven_one_num_channels ... ok
[INFO] [stdout] test object_audio::tests::test_distance_attenuation_logarithmic_at_ref_is_one ... ok
[INFO] [stdout] test object_audio::tests::test_distance_attenuation_logarithmic_clamped_to_zero_at_max ... ok
[INFO] [stdout] test object_audio::tests::test_doppler_last_rate_stationary_is_one ... ok
[INFO] [stdout] test object_audio::tests::test_doppler_frequency_ratio_approaching_source ... ok
[INFO] [stdout] test object_audio::tests::test_parse_adm_object_bad_number_returns_error ... ok
[INFO] [stdout] test object_audio::tests::test_spread_gain_non_negative ... ok
[INFO] [stdout] test object_audio::tests::test_spread_gain_normalised ... ok
[INFO] [stdout] test object_audio::tests::test_spread_gain_with_width ... ok
[INFO] [stdout] test object_audio::tests::test_spread_gain_returns_correct_channel_count ... ok
[INFO] [stdout] test object_audio::tests::test_spread_gain_divergence_one_is_omnidirectional ... ok
[INFO] [stdout] test object_audio::tests::test_object_renderer_render_all ... ok
[INFO] [stdout] test object_audio::tests::test_stereo_num_channels ... ok
[INFO] [stdout] test object_audio::tests::test_render_to_beds_returns_all_channels ... ok
[INFO] [stdout] test reverb::tests::test_allpass_reset_clears_state ... ok
[INFO] [stdout] test object_audio::tests::test_find_xml_attr_present ... ok
[INFO] [stdout] test reverb::tests::test_comb_damping_attenuates_high_freq ... ok
[INFO] [stdout] test reverb::tests::test_comb_delay_samples_accessor ... ok
[INFO] [stdout] test reverb::tests::test_comb_feedback_formula ... ok
[INFO] [stdout] test reverb::tests::test_comb_filter_output_delayed ... ok
[INFO] [stdout] test object_audio::tests::test_render_to_beds_gain_applied ... ok
[INFO] [stdout] test reverb::tests::test_comb_filter_reset_clears_state ... ok
[INFO] [stdout] test reverb::tests::test_early_reflections_output_nonzero_after_delay ... ok
[INFO] [stdout] test reverb::tests::test_early_reflections_from_room ... ok
[INFO] [stdout] test reverb::tests::test_allpass_preserves_energy_approx ... ok
[INFO] [stdout] test reverb::tests::test_reverb_new_zero_sr_fails ... ok
[INFO] [stdout] test reverb::tests::test_reverb_new_valid ... ok
[INFO] [stdout] test reverb::tests::test_reverb_process_mono_inplace ... ok
[INFO] [stdout] test reverb::tests::test_reverb_adds_energy_after_signal_ends ... ok
[INFO] [stdout] test reverb::tests::test_reverb_output_finite ... ok
[INFO] [stdout] test reverb::tests::test_reverb_output_length_matches_input ... ok
[INFO] [stdout] test reverb::tests::test_reverb_preset_cathedral_rt60 ... ok
[INFO] [stdout] test reverb::tests::test_reverb_reset_silences_output ... ok
[INFO] [stdout] test reverb::tests::test_reverb_wet_zero_passes_dry ... ok
[INFO] [stdout] test reverb::tests::test_reverb_stereo_output_lengths ... ok
[INFO] [stdout] test reverb::tests::test_early_reflections_reset ... ok
[INFO] [stdout] test reverb::tests::test_reverb_custom_preset ... ok
[INFO] [stdout] test room_simulation::tests::test_apply_to_signal_no_change_on_empty_reflections ... ok
[INFO] [stdout] test room_simulation::tests::test_concert_hall_config ... ok
[INFO] [stdout] test room_simulation::tests::test_early_reflections_positive_gain ... ok
[INFO] [stdout] test room_simulation::tests::test_apply_to_signal_output_length ... ok
[INFO] [stdout] test room_simulation::tests::test_freq_dep_reflections_count ... ok
[INFO] [stdout] test room_simulation::tests::test_carpeted_room_floor_vs_walls ... ok
[INFO] [stdout] test room_simulation::tests::test_freq_dep_sim_constructs ... ok
[INFO] [stdout] test room_simulation::tests::test_freq_dep_reflections_band_gains_positive ... ok
[INFO] [stdout] test room_simulation::tests::test_highly_absorptive_room_lower_reflection_gain ... ok
[INFO] [stdout] test room_simulation::tests::test_image_source_anechoic_zero_gain ... ok
[INFO] [stdout] test room_simulation::tests::test_image_source_model_first_order_reflections ... ok
[INFO] [stdout] test room_simulation::tests::test_image_source_reflections_positive_gain ... ok
[INFO] [stdout] test room_simulation::tests::test_image_source_reflections_sorted_by_delay ... ok
[INFO] [stdout] test room_simulation::tests::test_early_reflections_count ... ok
[INFO] [stdout] test room_simulation::tests::test_new_places_listener_at_centre ... ok
[INFO] [stdout] test room_simulation::tests::test_early_reflections_positive_delay ... ok
[INFO] [stdout] test reverb::tests::test_reverb_apply_preset_changes_behaviour ... ok
[INFO] [stdout] test room_simulation::tests::test_apply_to_signal_produces_nonzero_output ... ok
[INFO] [stdout] test room_simulation::tests::test_per_band_rt60_varies_with_absorption ... ok
[INFO] [stdout] test room_simulation::tests::test_per_band_rt60_uniform_gives_same_across_bands ... ok
[INFO] [stdout] test room_simulation::tests::test_freq_dep_reflections_vary_with_absorption ... ok
[INFO] [stdout] test room_simulation::tests::test_generate_rir_has_direct_sound ... ok
[INFO] [stdout] test room_simulation::tests::test_generate_rir_not_empty ... ok
[INFO] [stdout] test reverb::tests::test_reverb_large_hall_longer_tail_than_small_room ... ok
[INFO] [stdout] test room_simulation::tests::test_octave_bands_correct_count ... ok
[INFO] [stdout] test room_simulation::tests::test_apply_reverb_produces_audio_from_silence ... ok
[INFO] [stdout] test room_simulation::tests::test_freq_dep_rir_has_direct_sound ... ok
[INFO] [stdout] test room_simulation::tests::test_plaster_room_low_absorption ... ok
[INFO] [stdout] test room_simulation::tests::test_recording_studio_config ... ok
[INFO] [stdout] test room_simulation::tests::test_wall_bounces_correct_order ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_adm_time_parse_basic ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_adm_time_parse_invalid_fails ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_adm_time_to_string_round_trip ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_adm_time_total_seconds ... ok
[INFO] [stdout] test room_simulation::tests::test_room_acoustics_params_listening_room ... ok
[INFO] [stdout] test room_simulation::tests::test_small_room_config ... ok
[INFO] [stdout] test room_simulation::tests::test_treated_studio_higher_mid_high ... ok
[INFO] [stdout] test room_simulation::tests::test_uniform_absorption_all_same ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_adm_time_zero ... ok
[INFO] [stdout] test room_simulation::tests::test_uniform_absorption_clamped ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_parse_audio_object ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_axml_chunk_round_trip ... ok
[INFO] [stdout] test room_simulation::tests::test_freq_dep_rir_not_empty ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_parse_channel_format ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_axml_chunk_size_field ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_parse_empty_xml ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_parse_polar_block_format ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_parse_programme_id_and_name ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_parse_block_format_gain ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_parse_raw_xml_preserved ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_polar_to_cartesian_front ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_parse_block_format_position ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_polar_to_cartesian_left ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_polar_to_cartesian_top ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_write_adm_xml_contains_cartesian_position ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_write_adm_xml_contains_programme ... ok
[INFO] [stdout] test spatial_audio_format::tests::test_xml_attr_double_and_single_quotes ... ok
[INFO] [stdout] test room_simulation::tests::test_rir_length_covers_rt60 ... ok
[INFO] [stdout] test vbap::tests::test_delaunay_at_speaker_position_high_gain ... ok
[INFO] [stdout] test vbap::tests::test_delaunay_22_speaker_immersive ... ok
[INFO] [stdout] test room_simulation::tests::test_freq_dep_more_absorptive_shorter_rir ... ok
[INFO] [stdout] test vbap::tests::test_delaunay_cube_speakers_same_as_before ... ok
[INFO] [stdout] test vbap::tests::test_delaunay_irregular_pan_energy_normalised ... ok
[INFO] [stdout] test vbap::tests::test_delaunay_triplet_indices_valid ... ok
[INFO] [stdout] test vbap::tests::test_invert_2x2_round_trip ... ok
[INFO] [stdout] test vbap::tests::test_heuristic_fallback_works ... ok
[INFO] [stdout] test vbap::tests::test_delaunay_irregular_layout_constructs ... ok
[INFO] [stdout] test vbap::tests::test_invert_2x2_singular_returns_none ... ok
[INFO] [stdout] test vbap::tests::test_invert_2x2_identity ... ok
[INFO] [stdout] test vbap::tests::test_invert_3x3_identity ... ok
[INFO] [stdout] test vbap::tests::test_delaunay_produces_triplets ... ok
[INFO] [stdout] test vbap::tests::test_normalise_angle_neg ... ok
[INFO] [stdout] test vbap::tests::test_invert_2x2_known_matrix ... ok
[INFO] [stdout] test vbap::tests::test_normalise_angle_over_360 ... ok
[INFO] [stdout] test vbap::tests::test_pan_centre_front_equal_gains_stereo ... ok
[INFO] [stdout] test vbap::tests::test_pan_at_most_two_active_speakers ... ok
[INFO] [stdout] test vbap::tests::test_delaunay_irregular_at_most_three_active ... ok
[INFO] [stdout] test vbap::tests::test_invert_3x3_round_trip ... ok
[INFO] [stdout] test vbap::tests::test_invert_3x3_singular_returns_none ... ok
[INFO] [stdout] test vbap::tests::test_pan_energy_normalised ... ok
[INFO] [stdout] test vbap::tests::test_new_five_speaker_ring_succeeds ... ok
[INFO] [stdout] test vbap::tests::test_new_stereo_succeeds ... ok
[INFO] [stdout] test vbap::tests::test_new_too_few_speakers_returns_error ... ok
[INFO] [stdout] test vbap::tests::test_pan_exact_speaker_direction_full_gain ... ok
[INFO] [stdout] test vbap::tests::test_delaunay_irregular_pan_non_negative ... ok
[INFO] [stdout] test vbap::tests::test_pan_gains_non_negative ... ok
[INFO] [stdout] test vbap::tests::test_spherical_delaunay_basic ... ok
[INFO] [stdout] test vbap::tests::test_spherical_delaunay_all_indices_valid ... ok
[INFO] [stdout] test vbap::tests::test_vbap3d_at_most_three_active_speakers ... ok
[INFO] [stdout] test vbap::tests::test_vbap3d_gains_non_negative ... ok
[INFO] [stdout] test vbap::tests::test_vbap3d_new_succeeds ... ok
[INFO] [stdout] test vbap::tests::test_vbap3d_too_few_speakers_error ... ok
[INFO] [stdout] test wave_field::tests::test_circular_array_count ... ok
[INFO] [stdout] test vbap::tests::test_pan_returns_correct_length ... ok
[INFO] [stdout] test vbap::tests::test_pan_left_speaker_louder_at_left_azimuth ... ok
[INFO] [stdout] test vbap::tests::test_vbap3d_energy_normalised ... ok
[INFO] [stdout] test vbap::tests::test_vbap3d_pan_returns_correct_length ... ok
[INFO] [stdout] test wave_field::tests::test_circular_array_radii ... ok
[INFO] [stdout] test wave_field::tests::test_complex_abs ... ok
[INFO] [stdout] test wave_field::tests::test_complex_conj ... ok
[INFO] [stdout] test wave_field::tests::test_complex_mul_j_squared ... ok
[INFO] [stdout] test wave_field::tests::test_complex_new ... ok
[INFO] [stdout] test wave_field::tests::test_complex_sqrt_real_positive ... ok
[INFO] [stdout] test wave_field::tests::test_complex_from_polar_roundtrip ... ok
[INFO] [stdout] test wave_field::tests::test_compute_delays_and_gains_all_finite ... ok
[INFO] [stdout] test wave_field::tests::test_compute_delays_and_gains_length ... ok
[INFO] [stdout] test wave_field::tests::test_compute_delays_gains_centre_speaker_minimum_delay ... ok
[INFO] [stdout] test wave_field::tests::test_delay_in_samples_zero_distance ... ok
[INFO] [stdout] test wave_field::tests::test_driving_function_plane_wave_direction ... ok
[INFO] [stdout] test wave_field::tests::test_driving_function_point_source_nonzero ... ok
[INFO] [stdout] test wave_field::tests::test_linear_array_centred ... ok
[INFO] [stdout] test wave_field::tests::test_linear_array_count ... ok
[INFO] [stdout] test wave_field::tests::test_complex_mul_identity ... ok
[INFO] [stdout] test wave_field::tests::test_plane_wave_gain_facing_speakers ... ok
[INFO] [stdout] test zone_control::tests::test_add_duplicate_zone_fails ... ok
[INFO] [stdout] test wave_field::tests::test_renderer_num_speakers ... ok
[INFO] [stdout] test zone_control::tests::test_broadcast_renders_to_all_zones ... ok
[INFO] [stdout] test zone_control::tests::test_add_zone_increases_count ... ok
[INFO] [stdout] test zone_control::tests::test_by_radius_routing ... ok
[INFO] [stdout] test zone_control::tests::test_crossfader_apply_to_buffer ... ok
[INFO] [stdout] test wave_field::tests::test_delay_in_samples_343m_at_48k ... ok
[INFO] [stdout] test zone_control::tests::test_crossfader_is_ramping ... ok
[INFO] [stdout] test wave_field::tests::test_delay_in_samples_one_metre ... ok
[INFO] [stdout] test zone_control::tests::test_active_zones_iterator ... ok
[INFO] [stdout] test wave_field::tests::test_linear_array_normals ... ok
[INFO] [stdout] test zone_control::tests::test_crossfader_instant_transition ... ok
[INFO] [stdout] test zone_control::tests::test_crossfader_monotonic_increasing ... ok
[INFO] [stdout] test zone_control::tests::test_crossfader_ramps_to_target ... ok
[INFO] [stdout] test zone_control::tests::test_explicit_routing ... ok
[INFO] [stdout] test zone_control::tests::test_multiple_objects_accumulate ... ok
[INFO] [stdout] test zone_control::tests::test_mute_zone ... ok
[INFO] [stdout] test room_simulation::tests::test_concert_hall_rir_longer_than_small_room ... ok
[INFO] [stdout] test zone_control::tests::test_muted_zone_receives_no_audio ... ok
[INFO] [stdout] test zone_control::tests::test_nearest_zone_routes_to_one_zone ... ok
[INFO] [stdout] test zone_control::tests::test_remove_zone_decreases_count ... ok
[INFO] [stdout] test zone_control::tests::test_render_num_samples_matches ... ok
[INFO] [stdout] test zone_control::tests::test_set_zone_gain ... ok
[INFO] [stdout] test zone_control::tests::test_zone_distance_known ... ok
[INFO] [stdout] test zone_control::tests::test_zone_distance_same_position ... ok
[INFO] [stdout] test room_simulation::tests::test_apply_reverb_output_length ... ok
[INFO] [stdout] test room_simulation::tests::test_apply_reverb_normalised ... ok
[INFO] [stderr]    Doc-tests oximedia_spatial
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 369 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.28s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test src/room_simulation.rs - room_simulation::ImageSourceModel (line 640) ... ok
[INFO] [stdout] test src/lib.rs - (line 22) ... ok
[INFO] [stdout] test src/room_simulation.rs - room_simulation (line 10) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ee4ea3d198e33f5e080616a635ef9c233b5649de35496b7c76fb0268e757f0cf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ee4ea3d198e33f5e080616a635ef9c233b5649de35496b7c76fb0268e757f0cf", kill_on_drop: false }`
[INFO] [stdout] ee4ea3d198e33f5e080616a635ef9c233b5649de35496b7c76fb0268e757f0cf
