[INFO] fetching crate trajix 0.1.0...
[INFO] testing trajix-0.1.0 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] extracting crate trajix 0.1.0 into /workspace/builds/worker-4-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-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate trajix 0.1.0 on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 301cddc1ed4a145355ea1b37b0f462e8c36896189bc4d028bf03c35cf7aeeb89
[INFO] running `Command { std: "docker" "start" "-a" "301cddc1ed4a145355ea1b37b0f462e8c36896189bc4d028bf03c35cf7aeeb89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "301cddc1ed4a145355ea1b37b0f462e8c36896189bc4d028bf03c35cf7aeeb89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "301cddc1ed4a145355ea1b37b0f462e8c36896189bc4d028bf03c35cf7aeeb89", kill_on_drop: false }`
[INFO] [stdout] 301cddc1ed4a145355ea1b37b0f462e8c36896189bc4d028bf03c35cf7aeeb89
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 363c0eabd01c7e729bb7ab8bd19db50d7ca3842d83edc6493e09bcfc34c3a30e
[INFO] running `Command { std: "docker" "start" "-a" "363c0eabd01c7e729bb7ab8bd19db50d7ca3842d83edc6493e09bcfc34c3a30e", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling simba v0.9.1
[INFO] [stderr]    Compiling nalgebra-macros v0.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl 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 27.05s
[INFO] running `Command { std: "docker" "inspect" "363c0eabd01c7e729bb7ab8bd19db50d7ca3842d83edc6493e09bcfc34c3a30e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "363c0eabd01c7e729bb7ab8bd19db50d7ca3842d83edc6493e09bcfc34c3a30e", kill_on_drop: false }`
[INFO] [stdout] 363c0eabd01c7e729bb7ab8bd19db50d7ca3842d83edc6493e09bcfc34c3a30e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d918613846eb63e751933c01aea1928d243c859c6b62d2b32e9112ffacaf95f3
[INFO] running `Command { std: "docker" "start" "-a" "d918613846eb63e751933c01aea1928d243c859c6b62d2b32e9112ffacaf95f3", kill_on_drop: false }`
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling trajix v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 8.56s
[INFO] running `Command { std: "docker" "inspect" "d918613846eb63e751933c01aea1928d243c859c6b62d2b32e9112ffacaf95f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d918613846eb63e751933c01aea1928d243c859c6b62d2b32e9112ffacaf95f3", kill_on_drop: false }`
[INFO] [stdout] d918613846eb63e751933c01aea1928d243c859c6b62d2b32e9112ffacaf95f3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 54fbb9f7a19c20adc8921f660ec1dc08420c0902c0ff09ccebb64bacf62cab1e
[INFO] running `Command { std: "docker" "start" "-a" "54fbb9f7a19c20adc8921f660ec1dc08420c0902c0ff09ccebb64bacf62cab1e", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/trajix-d51f37ba49fd8338)
[INFO] [stdout] 
[INFO] [stdout] running 315 tests
[INFO] [stdout] test altitude::tests::interleaving_empty ... ok
[INFO] [stdout] test altitude::tests::interleaving_no_altitude ... ok
[INFO] [stdout] test altitude::tests::interleaving_single_provider ... ok
[INFO] [stdout] test altitude::tests::smooth_constant_unchanged ... ok
[INFO] [stdout] test altitude::tests::smooth_empty ... ok
[INFO] [stdout] test altitude::tests::smooth_custom_gap_threshold ... ok
[INFO] [stdout] test altitude::tests::smooth_jitter_reduction ... ok
[INFO] [stdout] test altitude::tests::spike_filter_empty ... ok
[INFO] [stdout] test altitude::tests::interleaving_alternating ... ok
[INFO] [stdout] test altitude::tests::smooth_respects_time_gap ... ok
[INFO] [stdout] test altitude::tests::smooth_single ... ok
[INFO] [stdout] test altitude::tests::spike_filter_custom_config ... ok
[INFO] [stdout] test altitude::tests::smooth_two_points ... ok
[INFO] [stdout] test altitude::tests::smooth_linear_preserved ... ok
[INFO] [stdout] test altitude::tests::spike_filter_gradual_climb_preserved ... ok
[INFO] [stdout] test altitude::tests::spike_filter_gps_flp_jitter_preserved ... 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_just_over_threshold ... ok
[INFO] [stdout] test altitude::tests::spike_filter_threshold_boundary ... ok
[INFO] [stdout] test altitude::tests::spike_filter_single ... ok
[INFO] [stdout] test altitude::tests::spike_filter_two_points ... 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::vv_empty ... ok
[INFO] [stdout] test altitude::tests::vv_descending ... ok
[INFO] [stdout] test altitude::tests::vv_single_point ... ok
[INFO] [stdout] test altitude::tests::vv_known_velocity ... ok
[INFO] [stdout] test anomaly::tests::custom_threshold ... ok
[INFO] [stdout] test altitude::tests::vv_skip_large_gap ... ok
[INFO] [stdout] test anomaly::tests::empty_fixes ... ok
[INFO] [stdout] test anomaly::tests::histogram_buckets_count ... ok
[INFO] [stdout] test altitude::tests::vv_skip_zero_dt ... 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::skip_zero_dt ... ok
[INFO] [stdout] test anomaly::tests::single_fix ... ok
[INFO] [stdout] test anomaly::tests::stationary_fixes ... ok
[INFO] [stdout] test anomaly::tests::walking_speed_no_anomaly ... ok
[INFO] [stdout] test coverage::tests::empty_fixes ... ok
[INFO] [stdout] test anomaly::tests::threshold_boundary ... ok
[INFO] [stdout] test anomaly::tests::known_speed ... ok
[INFO] [stdout] test coverage::tests::custom_threshold ... ok
[INFO] [stdout] test coverage::tests::gap_percentage_calculation ... ok
[INFO] [stdout] test coverage::tests::multiple_gaps ... ok
[INFO] [stdout] test coverage::tests::mixed_gps_flp ... ok
[INFO] [stdout] test coverage::tests::gap_at_start ... ok
[INFO] [stdout] test coverage::tests::from_threshold_ms ... ok
[INFO] [stdout] test anomaly::tests::mixed_providers ... ok
[INFO] [stdout] test coverage::tests::nlp_in_gap_classification ... ok
[INFO] [stdout] test coverage::tests::gap_at_end ... ok
[INFO] [stdout] test coverage::tests::nlp_no_accuracy_during_gap ... ok
[INFO] [stdout] test coverage::tests::nlp_only_session ... ok
[INFO] [stdout] test coverage::tests::single_gps_fix ... ok
[INFO] [stdout] test coverage::tests::no_gap_close_fixes ... ok
[INFO] [stdout] test coverage::tests::single_gap_between_gps ... ok
[INFO] [stdout] test dead_reckoning::tests::attitude_staleness_disabled ... ok
[INFO] [stdout] test dead_reckoning::tests::attitude_staleness_accepts_fresh ... ok
[INFO] [stdout] test dead_reckoning::tests::attitude_staleness_at_threshold ... ok
[INFO] [stdout] test dead_reckoning::tests::attitude_staleness_custom_threshold ... ok
[INFO] [stdout] test dead_reckoning::tests::attitude_staleness_no_attitude ... ok
[INFO] [stdout] test dead_reckoning::tests::attitude_staleness_rejects_stale ... 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::attitude_staleness_resumes_after_refresh ... ok
[INFO] [stdout] test dead_reckoning::tests::device_to_enu_flat ... ok
[INFO] [stdout] test dead_reckoning::tests::device_quaternion_to_unit_maps_xyzw_correctly ... ok
[INFO] [stdout] test dead_reckoning::tests::dr_no_anchor_no_dr ... ok
[INFO] [stdout] test dead_reckoning::tests::device_to_enu_upright ... ok
[INFO] [stdout] test dead_reckoning::tests::dr_large_gap_resets_velocity ... ok
[INFO] [stdout] test dead_reckoning::tests::dr_push_dispatches ... 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_gnss_fusion ... ok
[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_max_duration ... ok
[INFO] [stdout] test dead_reckoning::tests::push_gnss_degraded_returns_none ... ok
[INFO] [stdout] test dead_reckoning::tests::push_gnss_returns_gnss_point ... ok
[INFO] [stdout] test dead_reckoning::tests::dr_constant_velocity_eastward ... ok
[INFO] [stdout] test dead_reckoning::tests::push_gnss_still_accumulates ... ok
[INFO] [stdout] test dead_reckoning::tests::push_imu_no_state_returns_none ... ok
[INFO] [stdout] test dead_reckoning::tests::dr_stationary ... ok
[INFO] [stdout] test dead_reckoning::tests::dr_zupt_prevents_drift ... ok
[INFO] [stdout] test dead_reckoning::tests::enu_to_latlon_north ... ok
[INFO] [stdout] test dead_reckoning::tests::enu_to_latlon_origin ... ok
[INFO] [stdout] test dead_reckoning::tests::push_record_returns_point_for_fix ... ok
[INFO] [stdout] test dead_reckoning::tests::push_record_returns_none_for_skipped ... ok
[INFO] [stdout] test dead_reckoning::tests::process_all_matches_finalize ... ok
[INFO] [stdout] test dead_reckoning::tests::push_imu_returns_dr_point ... ok
[INFO] [stdout] test dead_reckoning::tests::quat_conjugate_is_inverse ... ok
[INFO] [stdout] test dead_reckoning::tests::quat_90deg_around_z ... ok
[INFO] [stdout] test dead_reckoning::tests::smooth_linear_basic ... ok
[INFO] [stdout] test dead_reckoning::tests::smooth_empty ... 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::push_record_returns_none_for_attitude ... ok
[INFO] [stdout] test dead_reckoning::tests::quat_identity_preserves_vector ... 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::timestamp_ms_as_i64 ... ok
[INFO] [stdout] test dead_reckoning::tests::timestamp_ms_display ... ok
[INFO] [stdout] test dead_reckoning::tests::timestamp_ms_elapsed_ms ... ok
[INFO] [stdout] test dead_reckoning::tests::timestamp_ms_dt_seconds ... 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_east ... ok
[INFO] [stdout] test dead_reckoning::tests::velocity_north ... ok
[INFO] [stdout] test downsample::tests::decimate_100hz_to_10hz ... ok
[INFO] [stdout] test downsample::tests::decimate_empty ... ok
[INFO] [stdout] test downsample::tests::decimate_no_reduction_when_sparse ... 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_large_interval_keeps_first_and_last ... ok
[INFO] [stdout] test downsample::tests::decimate_preserves_order ... ok
[INFO] [stdout] test downsample::tests::decimate_output_is_subset ... ok
[INFO] [stdout] test downsample::tests::decimate_selects_nearest_to_center ... ok
[INFO] [stdout] test downsample::tests::decimate_single ... ok
[INFO] [stdout] test downsample::tests::decimate_with_time_gap ... ok
[INFO] [stdout] test downsample::tests::lttb_constant_data ... ok
[INFO] [stdout] test downsample::tests::lttb_empty ... ok
[INFO] [stdout] test downsample::tests::decimate_two ... ok
[INFO] [stdout] test downsample::tests::lttb_exact_target ... ok
[INFO] [stdout] test downsample::tests::lttb_fewer_than_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_returns_correct_count ... ok
[INFO] [stdout] test downsample::tests::lttb_output_is_subset ... ok
[INFO] [stdout] test downsample::tests::lttb_output_count ... ok
[INFO] [stdout] test downsample::tests::lttb_preserves_first_and_last ... ok
[INFO] [stdout] test downsample::tests::lttb_preserves_valley ... ok
[INFO] [stdout] test downsample::tests::lttb_preserves_order ... ok
[INFO] [stdout] test downsample::tests::lttb_preserves_spike ... ok
[INFO] [stdout] test downsample::tests::lttb_two_distinct_values ... 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::streaming_decimator_output_count ... ok
[INFO] [stdout] test downsample::tests::streaming_decimator_preserves_order ... ok
[INFO] [stdout] test downsample::tests::streaming_decimator_single_sample ... ok
[INFO] [stdout] test downsample::tests::streaming_decimator_sparse_input ... ok
[INFO] [stdout] test downsample::tests::streaming_decimator_selects_nearest_to_center ... ok
[INFO] [stdout] test downsample::tests::triangle_area_basic ... ok
[INFO] [stdout] test geo::tests::bearing_due_east ... ok
[INFO] [stdout] test downsample::tests::triangle_area_collinear ... ok
[INFO] [stdout] test geo::tests::bearing_due_north ... ok
[INFO] [stdout] test geo::tests::bearing_due_west ... ok
[INFO] [stdout] test dead_reckoning::tests::smooth_preserves_gnss ... ok
[INFO] [stdout] test dead_reckoning::tests::smooth_quadratic_weighting ... ok
[INFO] [stdout] test downsample::tests::lttb_indices_multi_axis_alignment ... ok
[INFO] [stdout] test geo::tests::bearing_due_south ... ok
[INFO] [stdout] test geo::tests::bearing_same_point ... ok
[INFO] [stdout] test geo::tests::haversine_antipodal ... ok
[INFO] [stdout] test geo::tests::haversine_same_point ... ok
[INFO] [stdout] test parser::filter::tests::filter_fix_only ... ok
[INFO] [stdout] test parser::filter::tests::composable_filters ... ok
[INFO] [stdout] test geo::tests::haversine_short_distance ... ok
[INFO] [stdout] test geo::tests::haversine_tokyo_to_osaka ... ok
[INFO] [stdout] test parser::filter::tests::filter_multiple_types ... ok
[INFO] [stdout] test geo::tests::bearing_tokyo_to_osaka ... ok
[INFO] [stdout] test geo::tests::haversine_equator_90_degrees ... ok
[INFO] [stdout] test parser::filter::tests::filter_time_open_start ... ok
[INFO] [stdout] test parser::filter::tests::filter_skipped_records ... ok
[INFO] [stdout] test parser::filter::tests::filter_time_open_end ... ok
[INFO] [stdout] test parser::filter::tests::filter_time_range ... ok
[INFO] [stdout] test parser::filter::tests::filter_time_passes_no_timestamp_records ... 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::filter::tests::primary_fixes_excludes_nlp ... 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_from_fixture ... ok
[INFO] [stdout] test parser::header::tests::parse_header_no_version_line ... ok
[INFO] [stdout] test parser::line::tests::parse_fix_via_dispatcher ... ok
[INFO] [stdout] test parser::line::tests::parse_mixed_records ... ok
[INFO] [stdout] test parser::line::tests::parse_raw_via_dispatcher ... ok
[INFO] [stdout] test parser::line::tests::skip_comments_and_blanks ... ok
[INFO] [stdout] test parser::line::tests::skip_nav_and_agc ... ok
[INFO] [stdout] test parser::line::tests::parse_status_via_dispatcher ... 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::time_context::tests::annotates_status_with_preceding_timestamp ... ok
[INFO] [stdout] test parser::time_context::tests::existing_status_timestamp_updates_tracker ... ok
[INFO] [stdout] test parser::time_context::tests::inferer_annotate_combined ... ok
[INFO] [stdout] test parser::time_context::tests::inferer_infers_status ... ok
[INFO] [stdout] test parser::streaming::tests::stream_tracks_line_numbers ... ok
[INFO] [stdout] test parser::time_context::tests::inferer_tracks_fix_timestamp ... ok
[INFO] [stdout] test parser::time_context::tests::inferer_preserves_existing_status ... ok
[INFO] [stdout] test parser::time_context::tests::preserves_existing_status_timestamp ... ok
[INFO] [stdout] test parser::streaming::tests::stream_mixed_records ... ok
[INFO] [stdout] test parser::time_context::tests::status_at_start_gets_none_without_preceding ... ok
[INFO] [stdout] test parser::line::tests::unknown_record_type ... ok
[INFO] [stdout] test parser::streaming::tests::stream_preserves_record_order ... ok
[INFO] [stdout] test parser::streaming::tests::stream_record_type_variety ... ok
[INFO] [stdout] test parser::time_context::tests::timestamp_updates_through_mixed_records ... ok
[INFO] [stdout] test pipeline::tests::nlp_gap_fallback_when_no_recent_gps ... ok
[INFO] [stdout] test pipeline::tests::processor_counts_records ... ok
[INFO] [stdout] test pipeline::tests::processor_aggregator_runs_inline ... ok
[INFO] [stdout] test pipeline::tests::processor_dr_runs_inline ... ok
[INFO] [stdout] test pipeline::tests::processor_status_time_annotation_and_aggregation ... ok
[INFO] [stdout] test pipeline::tests::nlp_gap_fallback_when_no_gps_at_all ... ok
[INFO] [stdout] test pipeline::tests::satellite_snapshots_populated_from_status ... ok
[INFO] [stdout] test pipeline::tests::satellite_snapshots_timestamp_inference ... ok
[INFO] [stdout] test pipeline::tests::satellite_snapshots_skipped_without_timestamp ... ok
[INFO] [stdout] test pipeline::tests::satellite_snapshots_with_explicit_timestamp ... ok
[INFO] [stdout] test pipeline::tests::processor_sensor_decimation ... ok
[INFO] [stdout] test pipeline::tests::nlp_rejected_when_gps_recent ... ok
[INFO] [stdout] test quality::tests::custom_threshold ... ok
[INFO] [stdout] test quality::tests::all_nlp_is_all_gap_fallback ... ok
[INFO] [stdout] test quality::tests::empty_input ... ok
[INFO] [stdout] test parser::time_context::tests::non_status_records_pass_through_unchanged ... ok
[INFO] [stdout] test quality::tests::flp_is_primary ... ok
[INFO] [stdout] test quality::tests::gps_is_primary ... ok
[INFO] [stdout] test quality::tests::mixed_sequence ... ok
[INFO] [stdout] test quality::tests::nlp_at_exact_threshold_is_rejected ... ok
[INFO] [stdout] test quality::tests::nlp_beyond_gap_threshold_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_no_prior_gps_is_gap_fallback ... ok
[INFO] [stdout] test quality::tests::streaming_tracks_state_across_calls ... ok
[INFO] [stdout] test record::fix::tests::distance_to_fixture_data ... 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::parse_fix_unknown_provider ... ok
[INFO] [stdout] test record::fix::tests::parse_fix_wrong_field_count ... ok
[INFO] [stdout] test record::fix::tests::parse_gps_fix_with_bearing ... ok
[INFO] [stdout] test record::fix::tests::parse_mid_file_fix ... ok
[INFO] [stdout] test record::fix::tests::parse_nlp_accuracy_400 ... ok
[INFO] [stdout] test record::fix::tests::parse_high_speed_fix ... ok
[INFO] [stdout] test record::fix::tests::distance_to_same_point ... ok
[INFO] [stdout] test record::fix::tests::parse_normal_gps_fix ... ok
[INFO] [stdout] test record::fix::tests::speed_between_known ... 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_field_values ... ok
[INFO] [stdout] test record::fix::tests::speed_between_is_symmetric ... ok
[INFO] [stdout] test record::fix::tests::time_delta_s_positive ... ok
[INFO] [stdout] test record::fix::tests::parse_normal_flp_fix ... ok
[INFO] [stdout] test record::raw::tests::parse_gps_raw_field_values ... ok
[INFO] [stdout] test record::fix::tests::parse_nlp_empty_fields ... ok
[INFO] [stdout] test record::raw::tests::parse_gps_raw_with_ecef ... 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_wrong_field_count ... ok
[INFO] [stdout] test record::sensor::tests::parse_orientation_wrong_field_count ... ok
[INFO] [stdout] test record::sensor::tests::parse_game_rotation_vector ... ok
[INFO] [stdout] test record::sensor::tests::parse_orientation ... ok
[INFO] [stdout] test record::sensor::tests::unbiased_negative_bias ... ok
[INFO] [stdout] test record::sensor::tests::parse_uncal_gyro ... ok
[INFO] [stdout] test record::sensor::tests::parse_uncal_accel ... 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_with_bias ... 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_preserves_constellation ... ok
[INFO] [stdout] test record::status::tests::snapshot_from_status_basic ... 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::no_accuracy_data ... 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 record::status::tests::parse_all_status_records ... ok
[INFO] [stdout] test stats::tests::provider_detailed_stats_empty ... ok
[INFO] [stdout] test record::status::tests::parse_beidou_not_used_no_ephemeris ... ok
[INFO] [stdout] test record::status::tests::snapshot_serializes_constellation_as_u8 ... ok
[INFO] [stdout] test stats::tests::provider_detailed_stats_no_accuracy ... ok
[INFO] [stdout] test record::sensor::tests::unbiased_zero_bias ... ok
[INFO] [stdout] test stats::tests::provider_detailed_stats_multi_provider ... ok
[INFO] [stdout] test stats::tests::provider_detailed_stats_single_provider ... ok
[INFO] [stdout] test stats::tests::total_distance ... ok
[INFO] [stdout] test record::status::tests::parse_all_constellations ... ok
[INFO] [stdout] test stats::tests::single_fix ... ok
[INFO] [stdout] test summary::tests::aggregator_ignores_other_records ... ok
[INFO] [stdout] test stats::tests::total_distance_three_points ... ok
[INFO] [stdout] test summary::tests::epoch_bin_basics ... ok
[INFO] [stdout] test summary::tests::fix_best_accuracy_in_epoch ... ok
[INFO] [stdout] test summary::tests::fix_empty_input ... ok
[INFO] [stdout] test summary::tests::fix_two_epochs ... ok
[INFO] [stdout] test summary::tests::status_empty_input ... ok
[INFO] [stdout] test summary::tests::fix_none_fields ... ok
[INFO] [stdout] test summary::tests::aggregator_basic ... ok
[INFO] [stdout] test summary::tests::fix_single_epoch ... ok
[INFO] [stdout] test summary::tests::status_multi_constellation ... ok
[INFO] [stdout] test summary::tests::status_no_used_satellites ... ok
[INFO] [stdout] test summary::tests::status_single_epoch ... ok
[INFO] [stdout] test summary::tests::status_skips_no_timestamp ... ok
[INFO] [stdout] test downsample::tests::decimate_panics_on_zero_interval - should panic ... ok
[INFO] [stdout] test summary::tests::status_two_epochs ... ok
[INFO] [stdout] test types::tests::constellation_type_unknown_preserved ... ok
[INFO] [stdout] test summary::tests::aggregator_with_parsed_lines ... ok
[INFO] [stdout] test types::tests::fix_provider_roundtrip ... ok
[INFO] [stdout] test types::tests::fix_provider_unknown ... ok
[INFO] [stdout] test types::tests::constellation_type_roundtrip ... ok
[INFO] [stdout] test types::tests::code_type_parse ... ok
[INFO] [stdout] test types::tests::constellation_type_display ... ok
[INFO] [stdout] test downsample::tests::lttb_panics_on_small_target - should panic ... ok
[INFO] [stdout] test types::tests::record_type_unknown ... ok
[INFO] [stdout] test types::tests::record_type_roundtrip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 306 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests trajix
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test src/downsample.rs - downsample::StreamingDecimator (line 323) ... ok
[INFO] [stdout] test src/geo.rs - geo::bearing_deg (line 36) ... ok
[INFO] [stdout] test src/lib.rs - (line 9) - compile ... 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/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::classify_fixes (line 87) ... ok
[INFO] [stdout] test src/parser/time_context.rs - parser::time_context::TimestampInferer (line 12) ... ok
[INFO] [stdout] test src/downsample.rs - downsample::lttb_indices (line 205) ... ok
[INFO] [stdout] test src/quality.rs - quality::FixQualityClassifier (line 31) ... 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.47s; merged doctests compilation took 0.46s
[INFO] running `Command { std: "docker" "inspect" "54fbb9f7a19c20adc8921f660ec1dc08420c0902c0ff09ccebb64bacf62cab1e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "54fbb9f7a19c20adc8921f660ec1dc08420c0902c0ff09ccebb64bacf62cab1e", kill_on_drop: false }`
[INFO] [stdout] 54fbb9f7a19c20adc8921f660ec1dc08420c0902c0ff09ccebb64bacf62cab1e
