[INFO] fetching crate oximedia-analytics 0.1.2... [INFO] testing oximedia-analytics-0.1.2 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate oximedia-analytics 0.1.2 into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate oximedia-analytics 0.1.2 [INFO] finished tweaking crates.io crate oximedia-analytics 0.1.2 [INFO] tweaked toml for crates.io crate oximedia-analytics 0.1.2 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-analytics 0.1.2 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-analytics 0.1.2 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6df48028a3294c82f18c06e99b6938d02a16392aec88f1e7faefc5430c84d44a [INFO] running `Command { std: "docker" "start" "-a" "6df48028a3294c82f18c06e99b6938d02a16392aec88f1e7faefc5430c84d44a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6df48028a3294c82f18c06e99b6938d02a16392aec88f1e7faefc5430c84d44a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6df48028a3294c82f18c06e99b6938d02a16392aec88f1e7faefc5430c84d44a", kill_on_drop: false }` [INFO] [stdout] 6df48028a3294c82f18c06e99b6938d02a16392aec88f1e7faefc5430c84d44a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2d5f023d6a0b7e0318895767b1f40724e063cae32738e49100c34c2c79ad6ec6 [INFO] running `Command { std: "docker" "start" "-a" "2d5f023d6a0b7e0318895767b1f40724e063cae32738e49100c34c2c79ad6ec6", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling oximedia-analytics v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.28s [INFO] running `Command { std: "docker" "inspect" "2d5f023d6a0b7e0318895767b1f40724e063cae32738e49100c34c2c79ad6ec6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2d5f023d6a0b7e0318895767b1f40724e063cae32738e49100c34c2c79ad6ec6", kill_on_drop: false }` [INFO] [stdout] 2d5f023d6a0b7e0318895767b1f40724e063cae32738e49100c34c2c79ad6ec6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d860b98b63c2ab57a6a0040595efb7427f2125e02e50c89e2a33f743da83d531 [INFO] running `Command { std: "docker" "start" "-a" "d860b98b63c2ab57a6a0040595efb7427f2125e02e50c89e2a33f743da83d531", kill_on_drop: false }` [INFO] [stderr] Compiling oximedia-analytics v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.18s [INFO] running `Command { std: "docker" "inspect" "d860b98b63c2ab57a6a0040595efb7427f2125e02e50c89e2a33f743da83d531", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d860b98b63c2ab57a6a0040595efb7427f2125e02e50c89e2a33f743da83d531", kill_on_drop: false }` [INFO] [stdout] d860b98b63c2ab57a6a0040595efb7427f2125e02e50c89e2a33f743da83d531 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] a9a7dd2c31e5345fd2e378f6f4790e3e3b6750195b30d3efdad9c3cfa524700b [INFO] running `Command { std: "docker" "start" "-a" "a9a7dd2c31e5345fd2e378f6f4790e3e3b6750195b30d3efdad9c3cfa524700b", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_analytics-2a8896bf9ac165e0) [INFO] [stdout] [INFO] [stdout] running 188 tests [INFO] [stdout] test ab_testing::tests::alpha_to_critical_z_values ... ok [INFO] [stdout] test ab_testing::tests::assign_variant_deterministic_same_user ... ok [INFO] [stdout] test ab_testing::tests::assign_variant_zero_weight_returns_error ... ok [INFO] [stdout] test ab_testing::tests::assign_variant_different_users_may_differ ... ok [INFO] [stdout] test ab_testing::tests::assign_variant_no_variants_returns_error ... ok [INFO] [stdout] test ab_testing::tests::average_watch_duration_basic ... ok [INFO] [stdout] test ab_testing::tests::assign_variant_weighted_distribution ... ok [INFO] [stdout] test ab_testing::tests::assign_variant_single_variant ... ok [INFO] [stdout] test ab_testing::tests::bayesian_winner_zero_impressions_returns_error ... ok [INFO] [stdout] test ab_testing::tests::click_through_rate_zero_impressions ... ok [INFO] [stdout] test ab_testing::tests::click_through_rate_basic ... ok [INFO] [stdout] test ab_testing::tests::completion_rate_basic ... ok [INFO] [stdout] test ab_testing::tests::bayesian_winner_missing_variant_returns_error ... ok [INFO] [stdout] test ab_testing::tests::experiment_results_record_methods ... ok [INFO] [stdout] test ab_testing::tests::winning_variant_by_completion ... ok [INFO] [stdout] test ab_testing::tests::winning_variant_by_ctr ... ok [INFO] [stdout] test ab_testing::tests::winning_variant_no_impressions_returns_none ... ok [INFO] [stdout] test ab_testing::tests::winning_variant_with_alpha_01 ... ok [INFO] [stdout] test ab_testing::tests::conversion_rate_basic ... ok [INFO] [stdout] test ab_testing::tests::is_significant_alpha_01 ... ok [INFO] [stdout] test ab_testing::tests::winning_variant_with_alpha_no_impressions ... ok [INFO] [stdout] test ab_testing::tests::z_test_zero_sample_returns_zero ... ok [INFO] [stdout] test attribution::tests::attribution_empty_segments_error ... ok [INFO] [stdout] test attribution::tests::attribution_empty_sessions_error ... ok [INFO] [stdout] test attribution::tests::normalised_credit_sums_to_one ... ok [INFO] [stdout] test attribution::tests::position_weighted_second_half_gets_more_credit ... ok [INFO] [stdout] test attribution::tests::uniform_equal_segments_equal_credit ... ok [INFO] [stdout] test bandit::tests::arm_rankings_sorted_descending ... ok [INFO] [stdout] test bandit::tests::bandit_new_empty_arms_returns_error ... ok [INFO] [stdout] test bandit::tests::arm_record_outcome_updates_stats ... ok [INFO] [stdout] test bandit::tests::bandit_new_single_arm ... ok [INFO] [stdout] test ab_testing::tests::is_significant_alpha_05 ... ok [INFO] [stdout] test ab_testing::tests::winning_variant_with_alpha_same_result_as_default ... ok [INFO] [stdout] test ab_testing::tests::z_test_large_difference_significant ... ok [INFO] [stdout] test ab_testing::tests::z_test_no_difference ... ok [INFO] [stdout] test bandit::tests::arm_empirical_mean_correct ... ok [INFO] [stdout] test bandit::tests::arm_empirical_mean_zero_pulls ... ok [INFO] [stdout] test bandit::tests::epsilon_greedy_converges_to_best_arm ... ok [INFO] [stdout] test bandit::tests::arm_new_has_jeffreys_prior ... ok [INFO] [stdout] test bandit::tests::regret_never_negative ... ok [INFO] [stdout] test bandit::tests::regret_tracker_accumulates_correctly ... ok [INFO] [stdout] test bandit::tests::regret_tracker_no_steps ... ok [INFO] [stdout] test cohort::cohort_analyzer_tests::retention_curve_events_before_cohort_date_ignored ... ok [INFO] [stdout] test cohort::cohort_analyzer_tests::retention_curve_gradual_decay ... ok [INFO] [stdout] test cohort::cohort_analyzer_tests::retention_curve_non_cohort_events_ignored ... ok [INFO] [stdout] test cohort::cohort_analyzer_tests::retention_curve_length_equals_periods_plus_one ... ok [INFO] [stdout] test cohort::cohort_analyzer_tests::retention_curve_period0_full_retention ... ok [INFO] [stdout] test cohort::cohort_analyzer_tests::retention_curve_user_active_multiple_times_same_day_counted_once ... ok [INFO] [stdout] test bandit::tests::thompson_sampling_returns_valid_arm_index ... ok [INFO] [stdout] test cohort::cohort_analyzer_tests::retention_curve_day1_partial_retention ... ok [INFO] [stdout] test cohort::cohort_analyzer_tests::retention_curve_empty_events_returns_zeros ... ok [INFO] [stdout] test cohort::cohort_analyzer_tests::retention_curve_empty_users_returns_zeros ... ok [INFO] [stdout] test cohort::cohort_analyzer_tests::retention_curve_multi_period_full_retention ... ok [INFO] [stdout] test bandit::tests::epsilon_greedy_always_exploits_at_zero_epsilon ... ok [INFO] [stdout] test bandit::tests::thompson_sampling_converges_to_best_arm ... ok [INFO] [stdout] test bandit::tests::epsilon_greedy_explores_at_full_epsilon ... ok [INFO] [stdout] test cohort::cohort_analyzer_tests::retention_curve_zero_retention_after_day0 ... ok [INFO] [stdout] test attribution::tests::attribution_zero_duration_error ... ok [INFO] [stdout] test cohort::tests::cohort_single_cohort_period0_full_retention ... ok [INFO] [stdout] test cohort::tests::cohort_average_retention_weighted ... ok [INFO] [stdout] test cohort::tests::period_offset_next_day_is_one ... ok [INFO] [stdout] test cohort::tests::cohort_empty_events_returns_error ... ok [INFO] [stdout] test cohort::tests::cohort_two_cohorts ... ok [INFO] [stdout] test cohort::tests::cohort_matrix_cells_cover_all_periods ... ok [INFO] [stdout] test cohort::tests::truncate_ms_day_epoch_start ... ok [INFO] [stdout] test cohort::tests::cohort_viewer_counted_once_per_period ... ok [INFO] [stdout] test cohort::tests::truncate_ms_month_same_month ... ok [INFO] [stdout] test cohort::tests::period_offset_event_before_cohort_clamps_to_zero ... ok [INFO] [stdout] test cohort::tests::cohort_first_period_viewer_is_in_earliest_cohort ... ok [INFO] [stdout] test cohort::tests::truncate_ms_week_epoch_is_thursday ... ok [INFO] [stdout] test cohort::tests::truncate_ms_week_stable_within_week ... ok [INFO] [stdout] test engagement::tests::engagement_content_id_from_first_session ... ok [INFO] [stdout] test engagement::tests::engagement_empty_sessions ... ok [INFO] [stdout] test cohort::tests::truncate_ms_month_different_months ... ok [INFO] [stdout] test engagement::tests::engagement_forward_seek_penalty ... ok [INFO] [stdout] test engagement::tests::engagement_components_watch_time_capped ... ok [INFO] [stdout] test engagement::tests::engagement_full_watch_high_score ... ok [INFO] [stdout] test engagement::tests::engagement_partial_watch_lower_score ... ok [INFO] [stdout] test ab_testing::tests::bayesian_winner_b_clearly_beats_a ... ok [INFO] [stdout] test engagement::tests::engagement_rewatch_detected ... ok [INFO] [stdout] test engagement::tests::engagement_social_score_placeholder ... ok [INFO] [stdout] test engagement::tests::engagement_trend_slope_method ... ok [INFO] [stdout] test engagement::tests::engagement_weights_default_sum_to_one ... ok [INFO] [stdout] test engagement::tests::engagement_zero_duration ... ok [INFO] [stdout] test engagement::tests::ranker_empty_input ... ok [INFO] [stdout] test cohort::tests::truncate_ms_day_mid_day ... ok [INFO] [stdout] test cohort::tests::period_offset_same_period_is_zero ... ok [INFO] [stdout] test cohort::tests::period_offset_next_week_is_one ... ok [INFO] [stdout] test engagement::tests::slope_flat ... ok [INFO] [stdout] test engagement::tests::slope_perfectly_decreasing ... ok [INFO] [stdout] test engagement::tests::slope_single_point_returns_zero ... ok [INFO] [stdout] test engagement::tests::ranker_single_item ... ok [INFO] [stdout] test funnel::tests::churn_high_risk_strong_decline ... ok [INFO] [stdout] test engagement::tests::slope_two_points ... ok [INFO] [stdout] test engagement::tests::slope_perfectly_increasing ... ok [INFO] [stdout] test funnel::tests::churn_low_engagement_always_high_risk ... ok [INFO] [stdout] test funnel::tests::churn_insufficient_data_returns_error ... ok [INFO] [stdout] test funnel::tests::churn_low_risk_growing_engagement ... ok [INFO] [stdout] test funnel::tests::funnel_all_viewers_reach_all_milestones ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_conversion_rates_sum_correctly ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_full_conversion_two_steps ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_empty_sessions ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_irrelevant_events_ignored ... ok [INFO] [stdout] test engagement::tests::ranker_sorted_descending ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_no_step0_users_conversion_rate_is_zero ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_multiple_users_independent ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_overall_completion_rate ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_partial_conversion ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_single_step_single_user ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_three_step_funnel ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_time_window_exceeded_resets ... ok [INFO] [stdout] test funnel::tests::funnel_empty_milestones_returns_error ... ok [INFO] [stdout] test funnel::tests::funnel_dropout_midway ... ok [INFO] [stdout] test funnel::tests::funnel_empty_sessions_returns_error ... ok [INFO] [stdout] test funnel::tests::loyalty_churned_viewer ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_step0_first_conversion_rate_always_one ... ok [INFO] [stdout] test quantile::tests::percentiles_empty_returns_error ... ok [INFO] [stdout] test quantile::tests::percentiles_basic ... ok [INFO] [stdout] test funnel::tests::loyalty_empty_sessions ... ok [INFO] [stdout] test quantile::tests::tdigest_invalid_quantile ... ok [INFO] [stdout] test quantile::tests::tdigest_empty_returns_error ... ok [INFO] [stdout] test funnel::tests::loyalty_perfect_viewer ... ok [INFO] [stdout] test funnel::tests::loyalty_mismatched_lengths_error ... ok [INFO] [stdout] test quantile::tests::tdigest_single_value ... ok [INFO] [stdout] test quantile::tests::percentiles_out_of_range_error ... ok [INFO] [stdout] test quantile::tests::tdigest_uniform_distribution_p50 ... ok [INFO] [stdout] test quantile::tests::tdigest_merge_produces_consistent_quantiles ... ok [INFO] [stdout] test realtime::tests::aggregator_new_invalid_params ... ok [INFO] [stdout] test realtime::tests::bitrate_stats_basic ... ok [INFO] [stdout] test realtime::tests::aggregator_new_valid ... ok [INFO] [stdout] test realtime::tests::bitrate_stats_empty_window ... ok [INFO] [stdout] test realtime::tests::concurrent_viewers_does_not_go_negative ... ok [INFO] [stdout] test realtime::tests::concurrent_viewers_join_leave ... ok [INFO] [stdout] test quantile::tests::tdigest_min_max_exact ... ok [INFO] [stdout] test quantile::tests::tdigest_uniform_distribution_p95 ... ok [INFO] [stdout] test funnel::tests::funnel_analyzer_empty_steps_returns_empty_report ... ok [INFO] [stdout] test quantile::tests::tdigest_large_dataset_p99 ... ok [INFO] [stdout] test realtime::tests::peak_concurrent_tracked_per_bucket ... ok [INFO] [stdout] test realtime::tests::window_evicts_old_buckets ... ok [INFO] [stdout] test retention::tests::average_view_duration_empty_curve ... ok [INFO] [stdout] test retention::tests::average_view_duration_full_retention ... ok [INFO] [stdout] test quantile::tests::tdigest_centroid_count_bounded ... ok [INFO] [stdout] test realtime::tests::buffer_events_counted ... ok [INFO] [stdout] test retention::tests::compare_to_benchmark_empty_curve ... ok [INFO] [stdout] test retention::tests::benchmark_constants_values ... ok [INFO] [stdout] test retention::tests::compare_to_benchmark_perfect_match ... ok [INFO] [stdout] test retention::tests::compute_retention_basic ... ok [INFO] [stdout] test retention::tests::compute_retention_completed_views ... ok [INFO] [stdout] test retention::tests::compute_retention_empty_sessions ... ok [INFO] [stdout] test retention::tests::average_view_duration_linear_decay ... ok [INFO] [stdout] test retention::tests::compute_retention_incremental_empty_sessions ... ok [INFO] [stdout] test retention::tests::compare_to_benchmark_below_benchmark ... ok [INFO] [stdout] test retention::tests::content_segment_duration_ms ... ok [INFO] [stdout] test retention::tests::compute_retention_single_bucket ... ok [INFO] [stdout] test retention::tests::content_segment_duration_ms_saturates_on_underflow ... ok [INFO] [stdout] test retention::tests::drop_off_points_no_drop ... ok [INFO] [stdout] test retention::tests::drop_off_points_detects_large_drop ... ok [INFO] [stdout] test retention::tests::incremental_state_add_sessions_incrementally ... ok [INFO] [stdout] test retention::tests::segment_retention_all_viewers_watch_all_segments ... ok [INFO] [stdout] test retention::tests::segment_retention_empty_segments ... ok [INFO] [stdout] test retention::tests::segment_retention_empty_sessions ... ok [INFO] [stdout] test retention::tests::segment_retention_partial_viewers ... ok [INFO] [stdout] test session::tests::analyze_session_no_end_event ... ok [INFO] [stdout] test session::tests::build_map_play_then_end ... ok [INFO] [stdout] test session::tests::build_map_no_events_returns_all_false ... ok [INFO] [stdout] test session::tests::analyze_session_zero_duration ... ok [INFO] [stdout] test session::tests::heatmap_bucket_positions_correct ... ok [INFO] [stdout] test session::tests::analyze_session_basic ... ok [INFO] [stdout] test session::tests::heatmap_single_session_full_watch ... ok [INFO] [stdout] test session::tests::playback_map_coverage_half ... ok [INFO] [stdout] test session::tests::build_map_play_pause_play_end ... ok [INFO] [stdout] test session::tests::playback_map_mark_range_basic ... ok [INFO] [stdout] test session::tests::playback_map_mark_range_clamps_to_capacity ... ok [INFO] [stdout] test ab_testing::tests::bayesian_winner_conversion_metric ... ok [INFO] [stdout] test session::tests::build_map_seek_forward ... ok [INFO] [stdout] test session::tests::heatmap_zero_bucket_ms_returns_empty ... ok [INFO] [stdout] test retention::tests::re_watch_segments_none ... ok [INFO] [stdout] test session::tests::playback_map_coverage_zero_duration ... ok [INFO] [stdout] test retention::tests::incremental_state_matches_batch_compute ... ok [INFO] [stdout] test session::tests::viewer_session_new ... ok [INFO] [stdout] test retention::tests::incremental_state_new_invalid_returns_none ... ok [INFO] [stdout] test session::tests::viewer_session_push_event ... ok [INFO] [stdout] test retention::tests::re_watch_segments_detected ... ok [INFO] [stdout] test retention::tests::retention_curve_total_starts_matches_sessions ... ok [INFO] [stdout] test session::tests::playback_map_empty_range_is_noop ... ok [INFO] [stdout] test session::tests::heatmap_empty_sessions ... ok [INFO] [stdout] test session::tests::playback_map_coverage_full ... ok [INFO] [stderr] Doc-tests oximedia_analytics [INFO] [stdout] test ab_testing::tests::bayesian_winner_equal_variants_around_50pct ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 188 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/quantile.rs - quantile::TDigest (line 41) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "a9a7dd2c31e5345fd2e378f6f4790e3e3b6750195b30d3efdad9c3cfa524700b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a9a7dd2c31e5345fd2e378f6f4790e3e3b6750195b30d3efdad9c3cfa524700b", kill_on_drop: false }` [INFO] [stdout] a9a7dd2c31e5345fd2e378f6f4790e3e3b6750195b30d3efdad9c3cfa524700b