[INFO] fetching crate trajix 0.1.0... [INFO] testing trajix-0.1.0 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate trajix 0.1.0 into /workspace/builds/worker-1-tc2/source [INFO] started tweaking crates.io crate trajix 0.1.0 [INFO] finished tweaking crates.io crate trajix 0.1.0 [INFO] tweaked toml for crates.io crate trajix 0.1.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate trajix 0.1.0 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 trajix 0.1.0 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-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5cc01a2c1cafdec914c37b4313e1190781fa52074ff32cd9ed65ef671d9a3681 [INFO] running `Command { std: "docker" "start" "-a" "5cc01a2c1cafdec914c37b4313e1190781fa52074ff32cd9ed65ef671d9a3681", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5cc01a2c1cafdec914c37b4313e1190781fa52074ff32cd9ed65ef671d9a3681", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5cc01a2c1cafdec914c37b4313e1190781fa52074ff32cd9ed65ef671d9a3681", kill_on_drop: false }` [INFO] [stdout] 5cc01a2c1cafdec914c37b4313e1190781fa52074ff32cd9ed65ef671d9a3681 [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=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] 6bffb1f86622c1e5f908a895acb3c6da9e6aa37a1a8c5bb890e00216c585f46e [INFO] running `Command { std: "docker" "start" "-a" "6bffb1f86622c1e5f908a895acb3c6da9e6aa37a1a8c5bb890e00216c585f46e", kill_on_drop: false }` [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Compiling rawpointer v0.2.1 [INFO] [stderr] Compiling safe_arch v0.7.4 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling approx v0.5.1 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling wide v0.7.33 [INFO] [stderr] Compiling simba v0.9.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling nalgebra-macros v0.3.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling nalgebra v0.34.1 [INFO] [stderr] Compiling trajix v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.09s [INFO] running `Command { std: "docker" "inspect" "6bffb1f86622c1e5f908a895acb3c6da9e6aa37a1a8c5bb890e00216c585f46e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6bffb1f86622c1e5f908a895acb3c6da9e6aa37a1a8c5bb890e00216c585f46e", kill_on_drop: false }` [INFO] [stdout] 6bffb1f86622c1e5f908a895acb3c6da9e6aa37a1a8c5bb890e00216c585f46e [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=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] 56dd87b644f76e18e6cd55aac60176f051a3fb5b9fd2758291360079f6c2a1b8 [INFO] running `Command { std: "docker" "start" "-a" "56dd87b644f76e18e6cd55aac60176f051a3fb5b9fd2758291360079f6c2a1b8", kill_on_drop: false }` [INFO] [stderr] Compiling trajix v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 5.18s [INFO] running `Command { std: "docker" "inspect" "56dd87b644f76e18e6cd55aac60176f051a3fb5b9fd2758291360079f6c2a1b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "56dd87b644f76e18e6cd55aac60176f051a3fb5b9fd2758291360079f6c2a1b8", kill_on_drop: false }` [INFO] [stdout] 56dd87b644f76e18e6cd55aac60176f051a3fb5b9fd2758291360079f6c2a1b8 [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=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] 98f9926f6d9721cb33106440fd0b8202942785d37e4e45b55cb862b6e1f77d19 [INFO] running `Command { std: "docker" "start" "-a" "98f9926f6d9721cb33106440fd0b8202942785d37e4e45b55cb862b6e1f77d19", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/trajix-a7b443e113c53b0d) [INFO] [stdout] [INFO] [stdout] running 315 tests [INFO] [stdout] test altitude::tests::interleaving_no_altitude ... ok [INFO] [stdout] test altitude::tests::interleaving_single_provider ... ok [INFO] [stdout] test altitude::tests::smooth_custom_gap_threshold ... ok [INFO] [stdout] test altitude::tests::smooth_linear_preserved ... ok [INFO] [stdout] test altitude::tests::smooth_single ... ok [INFO] [stdout] test altitude::tests::smooth_respects_time_gap ... ok [INFO] [stdout] test altitude::tests::smooth_two_points ... ok [INFO] [stdout] test altitude::tests::spike_filter_custom_config ... ok [INFO] [stdout] test altitude::tests::spike_filter_empty ... ok [INFO] [stdout] test altitude::tests::spike_filter_gps_flp_jitter_preserved ... ok [INFO] [stdout] test altitude::tests::spike_filter_gradual_climb_preserved ... ok [INFO] [stdout] test altitude::tests::spike_filter_just_over_threshold ... ok [INFO] [stdout] test altitude::tests::spike_filter_mountain_with_spike ... ok [INFO] [stdout] test altitude::tests::spike_filter_no_spikes ... ok [INFO] [stdout] test altitude::tests::spike_filter_one_spike_at_center ... ok [INFO] [stdout] test altitude::tests::spike_filter_spike_at_end ... ok [INFO] [stdout] test altitude::tests::spike_filter_spike_at_start ... ok [INFO] [stdout] test altitude::tests::spike_filter_two_points ... ok [INFO] [stdout] test altitude::tests::smooth_constant_unchanged ... ok [INFO] [stdout] test altitude::tests::spike_filter_single ... ok [INFO] [stdout] test altitude::tests::vv_empty ... ok [INFO] [stdout] test altitude::tests::interleaving_empty ... ok [INFO] [stdout] test altitude::tests::smooth_empty ... ok [INFO] [stdout] test altitude::tests::smooth_jitter_reduction ... ok [INFO] [stdout] test altitude::tests::vv_known_velocity ... ok [INFO] [stdout] test altitude::tests::vv_skip_large_gap ... ok [INFO] [stdout] test altitude::tests::vv_spike_counts ... ok [INFO] [stdout] test altitude::tests::vv_spike_segments ... ok [INFO] [stdout] test anomaly::tests::anomaly_sorted_descending ... ok [INFO] [stdout] test anomaly::tests::known_speed ... ok [INFO] [stdout] test anomaly::tests::single_fix ... ok [INFO] [stdout] test anomaly::tests::skip_zero_dt ... ok [INFO] [stdout] test anomaly::tests::histogram_buckets_count ... ok [INFO] [stdout] test anomaly::tests::stationary_fixes ... ok [INFO] [stdout] test anomaly::tests::threshold_boundary ... ok [INFO] [stdout] test anomaly::tests::walking_speed_no_anomaly ... ok [INFO] [stdout] test coverage::tests::custom_threshold ... ok [INFO] [stdout] test coverage::tests::gap_at_start ... ok [INFO] [stdout] test coverage::tests::gap_percentage_calculation ... ok [INFO] [stdout] test coverage::tests::multiple_gaps ... ok [INFO] [stdout] test coverage::tests::nlp_no_accuracy_during_gap ... ok [INFO] [stdout] test coverage::tests::empty_fixes ... ok [INFO] [stdout] test coverage::tests::nlp_in_gap_classification ... ok [INFO] [stdout] test coverage::tests::no_gap_close_fixes ... ok [INFO] [stdout] test coverage::tests::from_threshold_ms ... ok [INFO] [stdout] test coverage::tests::single_gap_between_gps ... ok [INFO] [stdout] test coverage::tests::gap_at_end ... ok [INFO] [stdout] test coverage::tests::single_gps_fix ... ok [INFO] [stdout] test coverage::tests::nlp_only_session ... ok [INFO] [stdout] test dead_reckoning::tests::attitude_staleness_at_threshold ... ok [INFO] [stdout] test coverage::tests::mixed_gps_flp ... ok [INFO] [stdout] test anomaly::tests::custom_threshold ... ok [INFO] [stdout] test anomaly::tests::empty_fixes ... ok [INFO] [stdout] test dead_reckoning::tests::attitude_staleness_resumes_after_refresh ... ok [INFO] [stdout] test dead_reckoning::tests::attitude_staleness_accepts_fresh ... ok [INFO] [stdout] test dead_reckoning::tests::device_quaternion_to_unit_identity ... ok [INFO] [stdout] test dead_reckoning::tests::device_quaternion_to_unit_normalizes ... ok [INFO] [stdout] test dead_reckoning::tests::device_to_enu_flat ... ok [INFO] [stdout] test dead_reckoning::tests::device_to_enu_upright ... ok [INFO] [stdout] test dead_reckoning::tests::attitude_staleness_custom_threshold ... ok [INFO] [stdout] test dead_reckoning::tests::attitude_staleness_rejects_stale ... ok [INFO] [stdout] test dead_reckoning::tests::attitude_staleness_no_attitude ... ok [INFO] [stdout] test dead_reckoning::tests::device_quaternion_to_unit_maps_xyzw_correctly ... ok [INFO] [stdout] test dead_reckoning::tests::dr_constant_velocity_eastward ... ok [INFO] [stdout] test dead_reckoning::tests::dr_gnss_fusion ... ok [INFO] [stdout] test dead_reckoning::tests::dr_large_gap_resets_velocity ... ok [INFO] [stdout] test dead_reckoning::tests::dr_max_duration ... ok [INFO] [stdout] test dead_reckoning::tests::attitude_staleness_disabled ... ok [INFO] [stdout] test dead_reckoning::tests::dr_viz_highway_turn ... ignored [INFO] [stdout] test dead_reckoning::tests::dr_viz_max_duration_cutoff ... ignored [INFO] [stdout] test dead_reckoning::tests::dr_viz_real_data_analysis ... ignored [INFO] [stdout] test dead_reckoning::tests::dr_viz_real_flight ... ignored [INFO] [stdout] test dead_reckoning::tests::dr_viz_real_hiking ... ignored [INFO] [stdout] test dead_reckoning::tests::dr_viz_s_curve ... ignored [INFO] [stdout] test dead_reckoning::tests::dr_viz_stationary_noise ... ignored [INFO] [stdout] test dead_reckoning::tests::dr_viz_tunnel_traverse ... ignored [INFO] [stdout] test dead_reckoning::tests::dr_viz_urban_canyon ... ignored [INFO] [stdout] test dead_reckoning::tests::dr_stationary ... ok [INFO] [stdout] test dead_reckoning::tests::process_all_matches_finalize ... ok [INFO] [stdout] test dead_reckoning::tests::push_gnss_returns_gnss_point ... ok [INFO] [stdout] test dead_reckoning::tests::push_gnss_still_accumulates ... ok [INFO] [stdout] test dead_reckoning::tests::dr_push_dispatches ... ok [INFO] [stdout] test dead_reckoning::tests::push_gnss_degraded_returns_none ... ok [INFO] [stdout] test dead_reckoning::tests::push_imu_no_state_returns_none ... ok [INFO] [stdout] test dead_reckoning::tests::dr_zupt_prevents_drift ... ok [INFO] [stdout] test dead_reckoning::tests::enu_to_latlon_origin ... ok [INFO] [stdout] test dead_reckoning::tests::quat_identity_preserves_vector ... ok [INFO] [stdout] test dead_reckoning::tests::quat_90deg_around_z ... ok [INFO] [stdout] test dead_reckoning::tests::quat_conjugate_is_inverse ... ok [INFO] [stdout] test dead_reckoning::tests::push_record_returns_point_for_fix ... ok [INFO] [stdout] test dead_reckoning::tests::smooth_endpoint_basic ... ok [INFO] [stdout] test dead_reckoning::tests::smooth_altitude_unchanged ... ok [INFO] [stdout] test dead_reckoning::tests::smooth_empty ... ok [INFO] [stdout] test dead_reckoning::tests::smooth_multiple_segments ... ok [INFO] [stdout] test dead_reckoning::tests::smooth_no_reacquire ... ok [INFO] [stdout] test dead_reckoning::tests::smooth_preserves_gnss ... ok [INFO] [stdout] test dead_reckoning::tests::smooth_quadratic_weighting ... ok [INFO] [stdout] test dead_reckoning::tests::timestamp_ms_display ... ok [INFO] [stdout] test dead_reckoning::tests::timestamp_ms_as_i64 ... ok [INFO] [stdout] test dead_reckoning::tests::timestamp_ms_dt_seconds ... ok [INFO] [stdout] test dead_reckoning::tests::timestamp_ms_elapsed_ms ... ok [INFO] [stdout] test dead_reckoning::tests::timestamp_ms_ordering ... ok [INFO] [stdout] test dead_reckoning::tests::velocity_no_speed ... ok [INFO] [stdout] test dead_reckoning::tests::velocity_north ... ok [INFO] [stdout] test dead_reckoning::tests::velocity_east ... ok [INFO] [stdout] test downsample::tests::decimate_empty ... ok [INFO] [stdout] test downsample::tests::decimate_100hz_to_10hz ... ok [INFO] [stdout] test downsample::tests::decimate_first_and_last_always_kept ... ok [INFO] [stdout] test downsample::tests::decimate_fixed_grid_no_drift ... ok [INFO] [stdout] test downsample::tests::decimate_no_reduction_when_sparse ... ok [INFO] [stdout] test downsample::tests::decimate_large_interval_keeps_first_and_last ... ok [INFO] [stdout] test downsample::tests::decimate_output_is_subset ... ok [INFO] [stdout] test dead_reckoning::tests::push_imu_returns_dr_point ... ok [INFO] [stdout] test altitude::tests::vv_single_point ... ok [INFO] [stdout] test altitude::tests::vv_skip_zero_dt ... ok [INFO] [stdout] test anomaly::tests::mixed_providers ... ok [INFO] [stdout] test downsample::tests::decimate_selects_nearest_to_center ... ok [INFO] [stdout] test downsample::tests::decimate_two ... ok [INFO] [stdout] test downsample::tests::decimate_single ... ok [INFO] [stdout] test dead_reckoning::tests::push_record_returns_none_for_skipped ... ok [INFO] [stdout] test dead_reckoning::tests::push_record_returns_none_for_attitude ... ok [INFO] [stdout] test downsample::tests::decimate_preserves_order ... ok [INFO] [stdout] test dead_reckoning::tests::enu_to_latlon_north ... ok [INFO] [stdout] test downsample::tests::decimate_with_time_gap ... ok [INFO] [stdout] test downsample::tests::lttb_output_count ... ok [INFO] [stdout] test downsample::tests::lttb_output_is_subset ... ok [INFO] [stdout] test dead_reckoning::tests::smooth_linear_basic ... ok [INFO] [stdout] test downsample::tests::lttb_exact_target ... ok [INFO] [stdout] test downsample::tests::lttb_indices_first_and_last ... ok [INFO] [stdout] test downsample::tests::lttb_indices_match_lttb_values ... ok [INFO] [stdout] test downsample::tests::lttb_indices_multi_axis_alignment ... ok [INFO] [stdout] test downsample::tests::lttb_indices_returns_correct_count ... ok [INFO] [stdout] test altitude::tests::spike_filter_threshold_boundary ... ok [INFO] [stdout] test altitude::tests::vv_descending ... ok [INFO] [stdout] test downsample::tests::lttb_empty ... ok [INFO] [stdout] test downsample::tests::lttb_constant_data ... ok [INFO] [stdout] test downsample::tests::lttb_fewer_than_target ... ok [INFO] [stdout] test downsample::tests::lttb_preserves_first_and_last ... ok [INFO] [stdout] test downsample::tests::lttb_preserves_spike ... ok [INFO] [stdout] test downsample::tests::lttb_preserves_valley ... ok [INFO] [stdout] test downsample::tests::lttb_sine_wave_preserves_extrema ... ok [INFO] [stdout] test downsample::tests::streaming_decimator_basic ... ok [INFO] [stdout] test downsample::tests::streaming_decimator_empty ... ok [INFO] [stdout] test downsample::tests::lttb_two_distinct_values ... ok [INFO] [stdout] test downsample::tests::streaming_decimator_output_count ... ok [INFO] [stdout] test downsample::tests::streaming_decimator_preserves_order ... ok [INFO] [stdout] test downsample::tests::streaming_decimator_sparse_input ... ok [INFO] [stdout] test altitude::tests::interleaving_alternating ... ok [INFO] [stdout] test downsample::tests::streaming_decimator_single_sample ... ok [INFO] [stdout] test downsample::tests::lttb_preserves_order ... ok [INFO] [stdout] test geo::tests::haversine_antipodal ... ok [INFO] [stdout] test geo::tests::haversine_equator_90_degrees ... ok [INFO] [stdout] test geo::tests::haversine_short_distance ... ok [INFO] [stdout] test parser::filter::tests::composable_filters ... ok [INFO] [stdout] test geo::tests::haversine_tokyo_to_osaka ... ok [INFO] [stdout] test parser::filter::tests::filter_fix_only ... ok [INFO] [stdout] test parser::filter::tests::filter_skipped_records ... ok [INFO] [stdout] test parser::filter::tests::filter_multiple_types ... ok [INFO] [stdout] test parser::filter::tests::filter_time_open_end ... ok [INFO] [stdout] test geo::tests::bearing_tokyo_to_osaka ... ok [INFO] [stdout] test geo::tests::bearing_same_point ... ok [INFO] [stdout] test downsample::tests::triangle_area_basic ... ok [INFO] [stdout] test downsample::tests::triangle_area_collinear ... ok [INFO] [stdout] test geo::tests::bearing_due_east ... ok [INFO] [stdout] test geo::tests::bearing_due_north ... ok [INFO] [stdout] test geo::tests::bearing_due_south ... ok [INFO] [stdout] test downsample::tests::streaming_decimator_selects_nearest_to_center ... ok [INFO] [stdout] test parser::filter::tests::filter_time_open_start ... ok [INFO] [stdout] test parser::filter::tests::filter_time_passes_no_timestamp_records ... ok [INFO] [stdout] test parser::header::tests::parse_header_empty ... ok [INFO] [stdout] test parser::filter::tests::fixes_extracts_only_fix_records ... ok [INFO] [stdout] test parser::header::tests::parse_header_no_version_line ... ok [INFO] [stdout] test parser::filter::tests::fixes_returns_empty_for_no_fixes ... ok [INFO] [stdout] test parser::filter::tests::primary_fixes_returns_empty_for_nlp_only ... ok [INFO] [stdout] test parser::line::tests::unknown_record_type ... ok [INFO] [stdout] test parser::streaming::tests::stream_header_only ... ok [INFO] [stdout] test parser::streaming::tests::stream_header_then_data ... ok [INFO] [stdout] test parser::line::tests::parse_mixed_records ... ok [INFO] [stdout] test dead_reckoning::tests::dr_no_anchor_no_dr ... ok [INFO] [stdout] test parser::streaming::tests::stream_record_type_variety ... ok [INFO] [stdout] test parser::streaming::tests::stream_mixed_records ... ok [INFO] [stdout] test parser::time_context::tests::annotates_status_with_preceding_timestamp ... ok [INFO] [stdout] test parser::streaming::tests::stream_tracks_line_numbers ... ok [INFO] [stdout] test parser::line::tests::skip_comments_and_blanks ... ok [INFO] [stdout] test parser::filter::tests::primary_fixes_excludes_nlp ... ok [INFO] [stdout] test parser::header::tests::parse_header_from_fixture ... ok [INFO] [stdout] test parser::streaming::tests::stream_preserves_record_order ... ok [INFO] [stdout] test parser::line::tests::parse_fix_via_dispatcher ... ok [INFO] [stdout] test parser::line::tests::parse_status_via_dispatcher ... ok [INFO] [stdout] test geo::tests::bearing_due_west ... ok [INFO] [stdout] test parser::time_context::tests::existing_status_timestamp_updates_tracker ... ok [INFO] [stdout] test parser::time_context::tests::inferer_infers_status ... ok [INFO] [stdout] test parser::time_context::tests::inferer_annotate_combined ... ok [INFO] [stdout] test parser::time_context::tests::inferer_preserves_existing_status ... ok [INFO] [stdout] test parser::time_context::tests::inferer_tracks_fix_timestamp ... ok [INFO] [stdout] test parser::time_context::tests::non_status_records_pass_through_unchanged ... ok [INFO] [stdout] test parser::line::tests::parse_raw_via_dispatcher ... ok [INFO] [stdout] test parser::time_context::tests::preserves_existing_status_timestamp ... ok [INFO] [stdout] test parser::time_context::tests::status_at_start_gets_none_without_preceding ... ok [INFO] [stdout] test pipeline::tests::nlp_gap_fallback_when_no_gps_at_all ... ok [INFO] [stdout] test pipeline::tests::nlp_gap_fallback_when_no_recent_gps ... ok [INFO] [stdout] test pipeline::tests::nlp_rejected_when_gps_recent ... ok [INFO] [stdout] test pipeline::tests::processor_counts_records ... ok [INFO] [stdout] test pipeline::tests::satellite_snapshots_skipped_without_timestamp ... ok [INFO] [stdout] test pipeline::tests::processor_dr_runs_inline ... ok [INFO] [stdout] test pipeline::tests::processor_aggregator_runs_inline ... ok [INFO] [stdout] test pipeline::tests::processor_sensor_decimation ... ok [INFO] [stdout] test parser::time_context::tests::timestamp_updates_through_mixed_records ... ok [INFO] [stdout] test geo::tests::haversine_same_point ... ok [INFO] [stdout] test pipeline::tests::satellite_snapshots_timestamp_inference ... ok [INFO] [stdout] test quality::tests::custom_threshold ... ok [INFO] [stdout] test pipeline::tests::processor_status_time_annotation_and_aggregation ... ok [INFO] [stdout] test pipeline::tests::satellite_snapshots_populated_from_status ... ok [INFO] [stdout] test quality::tests::mixed_sequence ... ok [INFO] [stdout] test quality::tests::nlp_no_prior_gps_is_gap_fallback ... ok [INFO] [stdout] test quality::tests::streaming_default_threshold ... ok [INFO] [stdout] test quality::tests::streaming_matches_batch ... ok [INFO] [stdout] test quality::tests::nlp_within_gap_threshold_is_rejected ... ok [INFO] [stdout] test record::fix::tests::distance_to_is_symmetric ... ok [INFO] [stdout] test record::fix::tests::distance_to_known_points ... ok [INFO] [stdout] test record::fix::tests::distance_to_same_point ... ok [INFO] [stdout] test record::fix::tests::parse_fix_unknown_provider ... ok [INFO] [stdout] test record::fix::tests::parse_fix_wrong_field_count ... ok [INFO] [stdout] test quality::tests::empty_input ... ok [INFO] [stdout] test record::fix::tests::parse_gps_fix_with_bearing ... ok [INFO] [stdout] test record::fix::tests::parse_high_speed_fix ... ok [INFO] [stdout] test record::fix::tests::parse_nlp_empty_fields ... ok [INFO] [stdout] test record::fix::tests::parse_nlp_accuracy_400 ... ok [INFO] [stdout] test record::fix::tests::parse_normal_gps_fix_field_values ... ok [INFO] [stdout] test record::fix::tests::speed_between_is_symmetric ... ok [INFO] [stdout] test record::fix::tests::parse_normal_flp_fix ... ok [INFO] [stdout] test record::fix::tests::parse_mid_file_fix ... ok [INFO] [stdout] test record::fix::tests::speed_between_zero_dt ... ok [INFO] [stdout] test record::fix::tests::time_delta_s_negative ... ok [INFO] [stdout] test record::fix::tests::parse_normal_gps_fix ... ok [INFO] [stdout] test record::fix::tests::time_delta_s_positive ... ok [INFO] [stdout] test record::raw::tests::parse_gps_raw_field_values ... ok [INFO] [stdout] test record::raw::tests::parse_qzss_has_klobuchar ... ok [INFO] [stdout] test record::raw::tests::parse_raw_wrong_field_count ... ok [INFO] [stdout] test record::raw::tests::parse_qzss_raw_without_ecef ... ok [INFO] [stdout] test record::sensor::tests::parse_game_rotation_vector ... ok [INFO] [stdout] test record::sensor::tests::parse_game_rotation_wrong_field_count ... ok [INFO] [stdout] test record::sensor::tests::parse_orientation ... ok [INFO] [stdout] test record::sensor::tests::parse_orientation_wrong_field_count ... ok [INFO] [stdout] test record::sensor::tests::parse_uncal_accel ... ok [INFO] [stdout] test record::sensor::tests::parse_uncal_gyro ... ok [INFO] [stdout] test record::sensor::tests::parse_uncal_mag ... ok [INFO] [stdout] test record::sensor::tests::parse_uncal_wrong_field_count ... ok [INFO] [stdout] test record::sensor::tests::unbiased_negative_bias ... ok [INFO] [stdout] test record::sensor::tests::unbiased_with_bias ... ok [INFO] [stdout] test record::sensor::tests::unbiased_zero_bias ... ok [INFO] [stdout] test record::status::tests::parse_all_constellations ... ok [INFO] [stdout] test record::status::tests::parse_all_status_records ... ok [INFO] [stdout] test record::status::tests::parse_beidou_not_used_no_ephemeris ... ok [INFO] [stdout] test record::status::tests::parse_gps_satellite ... ok [INFO] [stdout] test record::status::tests::parse_satellite_not_used_in_fix ... ok [INFO] [stdout] test record::status::tests::parse_status_sbas_constellation ... ok [INFO] [stdout] test record::status::tests::parse_status_unknown_constellation ... ok [INFO] [stdout] test record::status::tests::parse_status_wrong_field_count ... ok [INFO] [stdout] test record::status::tests::snapshot_from_status_basic ... ok [INFO] [stdout] test record::status::tests::snapshot_from_status_preserves_constellation ... ok [INFO] [stdout] test record::status::tests::snapshot_serializes_constellation_as_u8 ... ok [INFO] [stdout] test record::status::tests::unix_time_always_empty ... ok [INFO] [stdout] test stats::tests::accuracy_percentiles ... ok [INFO] [stdout] test stats::tests::duration_calculated ... ok [INFO] [stdout] test stats::tests::empty_fixes ... ok [INFO] [stdout] test stats::tests::per_provider_counts ... ok [INFO] [stdout] test stats::tests::percentiles_100_elements ... ok [INFO] [stdout] test stats::tests::percentiles_single_element ... ok [INFO] [stdout] test stats::tests::percentiles_two_elements ... ok [INFO] [stdout] test stats::tests::provider_detailed_stats_empty ... ok [INFO] [stdout] test stats::tests::provider_detailed_stats_multi_provider ... ok [INFO] [stdout] test stats::tests::provider_detailed_stats_no_accuracy ... ok [INFO] [stdout] test stats::tests::provider_detailed_stats_single_provider ... ok [INFO] [stdout] test downsample::tests::decimate_panics_on_zero_interval - should panic ... ok [INFO] [stdout] test stats::tests::single_fix ... ok [INFO] [stdout] test downsample::tests::lttb_panics_on_small_target - should panic ... ok [INFO] [stdout] test stats::tests::total_distance ... ok [INFO] [stdout] test stats::tests::total_distance_three_points ... ok [INFO] [stdout] test summary::tests::aggregator_ignores_other_records ... ok [INFO] [stdout] test summary::tests::aggregator_basic ... ok [INFO] [stdout] test summary::tests::fix_best_accuracy_in_epoch ... ok [INFO] [stdout] test summary::tests::aggregator_with_parsed_lines ... ok [INFO] [stdout] test summary::tests::fix_empty_input ... ok [INFO] [stdout] test stats::tests::no_accuracy_data ... ok [INFO] [stdout] test summary::tests::fix_none_fields ... ok [INFO] [stdout] test summary::tests::fix_single_epoch ... ok [INFO] [stdout] test summary::tests::fix_two_epochs ... ok [INFO] [stdout] test summary::tests::epoch_bin_basics ... ok [INFO] [stdout] test summary::tests::status_no_used_satellites ... ok [INFO] [stdout] test record::fix::tests::distance_to_fixture_data ... ok [INFO] [stdout] test quality::tests::all_nlp_is_all_gap_fallback ... ok [INFO] [stdout] test summary::tests::status_skips_no_timestamp ... ok [INFO] [stdout] test pipeline::tests::satellite_snapshots_with_explicit_timestamp ... ok [INFO] [stdout] test quality::tests::nlp_at_exact_threshold_is_rejected ... ok [INFO] [stdout] test summary::tests::status_two_epochs ... ok [INFO] [stdout] test quality::tests::flp_is_primary ... ok [INFO] [stdout] test quality::tests::gps_is_primary ... ok [INFO] [stdout] test parser::filter::tests::filter_time_range ... ok [INFO] [stdout] test types::tests::constellation_type_unknown_preserved ... ok [INFO] [stdout] test types::tests::fix_provider_roundtrip ... ok [INFO] [stdout] test summary::tests::status_multi_constellation ... ok [INFO] [stdout] test types::tests::constellation_type_roundtrip ... ok [INFO] [stdout] test quality::tests::nlp_beyond_gap_threshold_is_gap_fallback ... ok [INFO] [stdout] test types::tests::record_type_roundtrip ... ok [INFO] [stdout] test summary::tests::status_single_epoch ... ok [INFO] [stdout] test types::tests::code_type_parse ... ok [INFO] [stdout] test types::tests::record_type_unknown ... ok [INFO] [stdout] test types::tests::constellation_type_display ... ok [INFO] [stdout] test types::tests::fix_provider_unknown ... ok [INFO] [stdout] test quality::tests::streaming_tracks_state_across_calls ... ok [INFO] [stdout] test parser::line::tests::skip_nav_and_agc ... ok [INFO] [stdout] test record::fix::tests::speed_between_known ... ok [INFO] [stdout] test record::raw::tests::parse_gps_raw_with_ecef ... ok [INFO] [stdout] test summary::tests::status_empty_input ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 306 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 0.44s [INFO] [stdout] [INFO] [stderr] Doc-tests trajix [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test src/downsample.rs - downsample::lttb_indices (line 205) ... ok [INFO] [stdout] test src/pipeline.rs - pipeline (line 9) - compile ... ok [INFO] [stdout] test src/geo.rs - geo::haversine_distance_m (line 12) ... ok [INFO] [stdout] test src/geo.rs - geo::bearing_deg (line 36) ... ok [INFO] [stdout] test src/parser/time_context.rs - parser::time_context::TimestampInferer (line 12) ... ok [INFO] [stdout] test src/quality.rs - quality::classify_fixes (line 87) ... ok [INFO] [stdout] test src/lib.rs - (line 9) - compile ... ok [INFO] [stdout] test src/lib.rs - prelude (line 96) ... ok [INFO] [stdout] test src/stats.rs - stats::summarize_fixes (line 48) ... ok [INFO] [stdout] test src/quality.rs - quality::FixQualityClassifier (line 31) ... ok [INFO] [stdout] test src/downsample.rs - downsample::StreamingDecimator (line 323) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.74s; merged doctests compilation took 0.72s [INFO] running `Command { std: "docker" "inspect" "98f9926f6d9721cb33106440fd0b8202942785d37e4e45b55cb862b6e1f77d19", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "98f9926f6d9721cb33106440fd0b8202942785d37e4e45b55cb862b6e1f77d19", kill_on_drop: false }` [INFO] [stdout] 98f9926f6d9721cb33106440fd0b8202942785d37e4e45b55cb862b6e1f77d19