[INFO] cloning repository https://github.com/jrollin/typer-cli
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jrollin/typer-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjrollin%2Ftyper-cli", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjrollin%2Ftyper-cli'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c0c75be2af7043a3501c64b46070e5aae4fe1ea5
[INFO] testing jrollin/typer-cli against 1.95.0 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjrollin%2Ftyper-cli" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jrollin/typer-cli
[INFO] finished tweaking git repo https://github.com/jrollin/typer-cli
[INFO] tweaked toml for git repo https://github.com/jrollin/typer-cli written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jrollin/typer-cli on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jrollin/typer-cli 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 88a78ae583d609ae0738c47412b7f63371042d614109f3a6c9387952316d1463
[INFO] running `Command { std: "docker" "start" "-a" "88a78ae583d609ae0738c47412b7f63371042d614109f3a6c9387952316d1463", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "88a78ae583d609ae0738c47412b7f63371042d614109f3a6c9387952316d1463", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "88a78ae583d609ae0738c47412b7f63371042d614109f3a6c9387952316d1463", kill_on_drop: false }`
[INFO] [stdout] 88a78ae583d609ae0738c47412b7f63371042d614109f3a6c9387952316d1463
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=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" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3aeb6fba733745983110dc0f2f0549aa40b83b9fd02e26b5ebf2a25bd7ed74bc
[INFO] running `Command { std: "docker" "start" "-a" "3aeb6fba733745983110dc0f2f0549aa40b83b9fd02e26b5ebf2a25bd7ed74bc", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling instability v0.3.9
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.7
[INFO] [stderr]    Compiling mio v1.1.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling typer-cli v0.11.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.70s
[INFO] running `Command { std: "docker" "inspect" "3aeb6fba733745983110dc0f2f0549aa40b83b9fd02e26b5ebf2a25bd7ed74bc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3aeb6fba733745983110dc0f2f0549aa40b83b9fd02e26b5ebf2a25bd7ed74bc", kill_on_drop: false }`
[INFO] [stdout] 3aeb6fba733745983110dc0f2f0549aa40b83b9fd02e26b5ebf2a25bd7ed74bc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=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" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2c64a5be2ca67decbeb91572333da9bc46b13f9fd07c795ce9b0be021e85cbc8
[INFO] running `Command { std: "docker" "start" "-a" "2c64a5be2ca67decbeb91572333da9bc46b13f9fd07c795ce9b0be021e85cbc8", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling typer-cli v0.11.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 8.64s
[INFO] running `Command { std: "docker" "inspect" "2c64a5be2ca67decbeb91572333da9bc46b13f9fd07c795ce9b0be021e85cbc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c64a5be2ca67decbeb91572333da9bc46b13f9fd07c795ce9b0be021e85cbc8", kill_on_drop: false }`
[INFO] [stdout] 2c64a5be2ca67decbeb91572333da9bc46b13f9fd07c795ce9b0be021e85cbc8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=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" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] f17bfbca6ad0c0caffd85e2eb088abc1af4f15ef04395dac52ee9448a87b14ad
[INFO] running `Command { std: "docker" "start" "-a" "f17bfbca6ad0c0caffd85e2eb088abc1af4f15ef04395dac52ee9448a87b14ad", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/typer_cli-43ada3ae706081a8)
[INFO] [stdout] 
[INFO] [stdout] running 168 tests
[INFO] [stdout] test content::adaptive_generator::tests::test_get_keys_by_mastery_beginner ... ok
[INFO] [stdout] test content::adaptive_generator::tests::test_generate_contains_weak_keys ... ok
[INFO] [stdout] test content::adaptive_generator::tests::test_fallback_balanced_practice ... ok
[INFO] [stdout] test content::adaptive_generator::tests::test_multiple_generations_vary ... ok
[INFO] [stdout] test content::adaptive_generator::tests::test_get_keys_by_mastery_learning ... ok
[INFO] [stdout] test content::adaptive_generator::tests::test_generate_content ... ok
[INFO] [stdout] test content::adaptive_generator::tests::test_get_keys_by_mastery_mastered ... ok
[INFO] [stdout] test content::bigram::tests::test_all_bigrams_have_examples ... ok
[INFO] [stdout] test content::bigram::tests::test_bigram_structure ... ok
[INFO] [stdout] test content::bigram::tests::test_code_bigrams_frequency_order ... ok
[INFO] [stdout] test content::bigram::tests::test_english_bigrams_frequency_order ... ok
[INFO] [stdout] test content::bigram_generator::tests::test_code_bigrams ... ok
[INFO] [stdout] test content::bigram::tests::test_french_bigrams_frequency_order ... ok
[INFO] [stdout] test content::bigram_generator::tests::test_drill_mode_generation ... ok
[INFO] [stdout] test content::bigram_generator::tests::test_level_progression ... ok
[INFO] [stdout] test content::bigram_generator::tests::test_mixed_mode_generation ... ok
[INFO] [stdout] test content::bigram_generator::tests::test_random_newlines_in_generation ... ok
[INFO] [stdout] test content::bigram_generator::tests::test_word_mode_generation ... ok
[INFO] [stdout] test content::code_generator::tests::test_all_levels_generate_content ... ok
[INFO] [stdout] test content::code_generator::tests::test_deterministic_generation ... ok
[INFO] [stdout] test content::bigram_generator::tests::test_english_bigrams ... ok
[INFO] [stdout] test content::code_generator::tests::test_language_specific_content ... ok
[INFO] [stdout] test content::code_generator::tests::test_progressive_difficulty ... ok
[INFO] [stdout] test content::bigram::tests::test_examples_contain_bigrams ... ok
[INFO] [stdout] test content::code_generator::tests::test_python_generation ... ok
[INFO] [stdout] test content::code_generator::tests::test_rust_generation ... ok
[INFO] [stdout] test content::code_symbols::tests::test_difficulty_progression ... ok
[INFO] [stdout] test content::code_symbols::tests::test_python_snippets_count ... ok
[INFO] [stdout] test content::code_symbols::tests::test_rust_snippets_count ... ok
[INFO] [stdout] test content::code_symbols::tests::test_snippets_not_empty ... ok
[INFO] [stdout] test content::code_symbols::tests::test_typescript_snippets_count ... ok
[INFO] [stdout] test content::common_word::tests::test_frequency_order_english ... ok
[INFO] [stdout] test content::common_word::tests::test_frequency_order_french ... ok
[INFO] [stdout] test content::common_word::tests::test_frequency_range ... ok
[INFO] [stdout] test content::code_generator::tests::test_typescript_generation ... ok
[INFO] [stdout] test content::common_word::tests::test_word_count ... ok
[INFO] [stdout] test content::common_word_generator::tests::test_content_length_constraint ... ok
[INFO] [stdout] test content::common_word::tests::test_word_length_stored ... ok
[INFO] [stdout] test content::common_word::tests::test_word_structure ... ok
[INFO] [stdout] test content::common_word_generator::tests::test_drill_mode_has_repetition ... ok
[INFO] [stdout] test content::common_word_generator::tests::test_drill_mode_uses_top_words ... ok
[INFO] [stdout] test content::common_word_generator::tests::test_level_word_selection ... ok
[INFO] [stdout] test content::common_word_generator::tests::test_sentence_mode_frequency_bias ... ok
[INFO] [stdout] test content::custom::tests::test_deduplicate_titles_none ... ok
[INFO] [stdout] test content::custom::tests::test_deduplicate_titles_three ... ok
[INFO] [stdout] test content::custom::tests::test_deduplicate_titles_two ... ok
[INFO] [stdout] test content::common_word_generator::tests::test_sentence_mode_has_variety ... ok
[INFO] [stdout] test content::custom::tests::test_parse_yaml_line_invalid ... ok
[INFO] [stdout] test content::custom::tests::test_parse_front_matter_full ... ok
[INFO] [stdout] test content::custom::tests::test_parse_front_matter_title_only ... ok
[INFO] [stdout] test content::common_word_generator::tests::test_empty_on_invalid_level ... ok
[INFO] [stdout] test content::custom::tests::test_parse_yaml_line_valid ... ok
[INFO] [stdout] test content::custom::tests::test_parse_markdown_empty_content ... ok
[INFO] [stdout] test content::custom::tests::test_parse_front_matter_missing ... ok
[INFO] [stdout] test content::custom::tests::test_parse_yaml_line_with_colon_in_value ... ok
[INFO] [stdout] test content::custom::tests::test_parse_markdown_preserves_formatting ... ok
[INFO] [stdout] test content::finger_generator::tests::test_all_finger_pairs_level_1 ... ok
[INFO] [stdout] test content::finger_generator::tests::test_generate_base_drills ... ok
[INFO] [stdout] test content::finger_generator::tests::test_generate_shift_drills ... ok
[INFO] [stdout] test content::finger_generator::tests::test_level_progression ... ok
[INFO] [stdout] test content::finger_generator::tests::test_middle_all_keys_no_shift ... ok
[INFO] [stdout] test content::finger_generator::tests::test_middle_home_row_no_shift ... ok
[INFO] [stdout] test content::finger_generator::tests::test_middle_all_keys_with_shift ... ok
[INFO] [stdout] test content::finger_generator::tests::test_no_placeholder_keys ... ok
[INFO] [stdout] test content::finger_generator::tests::test_middle_extended_no_shift ... ok
[INFO] [stdout] test content::trigram::tests::test_english_trigrams_frequency_order ... ok
[INFO] [stdout] test content::generator::tests::test_get_keys_for_row_level_progression ... ok
[INFO] [stdout] test content::trigram::tests::test_examples_contain_trigrams ... ok
[INFO] [stdout] test content::trigram::tests::test_trigram_structure ... ok
[INFO] [stdout] test content::generator::tests::test_get_keys_for_row_level_with_shift ... ok
[INFO] [stdout] test content::trigram_generator::tests::test_drill_mode_generation ... ok
[INFO] [stdout] test content::lesson::tests::test_row_progression_lesson_types ... ok
[INFO] [stdout] test content::lesson::tests::test_row_progression_lessons_count ... ok
[INFO] [stdout] test content::lesson::tests::test_row_progression_titles ... ok
[INFO] [stdout] test content::lesson::tests::test_shifted_char_mapping ... ok
[INFO] [stdout] test content::trigram::tests::test_all_trigrams_have_examples ... ok
[INFO] [stdout] test content::trigram_generator::tests::test_english_trigrams ... ok
[INFO] [stdout] test content::trigram_generator::tests::test_mixed_mode_generation ... ok
[INFO] [stdout] test content::trigram_generator::tests::test_random_newlines_in_generation ... ok
[INFO] [stdout] test content::trigram_generator::tests::test_word_mode_generation ... ok
[INFO] [stdout] test content::trigram_generator::tests::test_level_selection ... ok
[INFO] [stdout] test content::trigram::tests::test_french_trigrams_frequency_order ... ok
[INFO] [stdout] test data::config::tests::test_config_roundtrip_json ... ok
[INFO] [stdout] test data::config::tests::test_default_layout_is_mac ... ok
[INFO] [stdout] test data::stats::tests::test_session_record_serialization ... ok
[INFO] [stdout] test data::stats::tests::test_stats_add_session ... ok
[INFO] [stdout] test data::stats::tests::test_stats_averages ... ok
[INFO] [stdout] test data::stats::tests::test_stats_new ... ok
[INFO] [stdout] test data::storage::tests::test_load_config_defaults_when_missing ... ok
[INFO] [stdout] test data::storage::tests::test_load_empty_stats ... ok
[INFO] [stdout] test data::storage::tests::test_load_config_invalid_json_returns_error ... ok
[INFO] [stdout] test data::storage::tests::test_save_and_load ... ok
[INFO] [stdout] test content::finger_generator::tests::test_content_generation_all_lessons ... ok
[INFO] [stdout] test engine::adaptive::tests::test_identify_weak_keys ... ok
[INFO] [stdout] test engine::analytics::tests::test_bigram_stats_accuracy ... ok
[INFO] [stdout] test engine::analytics::tests::test_key_stats_accuracy ... ok
[INFO] [stdout] test engine::analytics::tests::test_key_stats_average_time ... ok
[INFO] [stdout] test data::storage::tests::test_save_and_load_config ... ok
[INFO] [stdout] test engine::analytics::tests::test_key_stats_error_rate ... ok
[INFO] [stdout] test engine::adaptive::tests::test_identify_weak_keys_minimum_attempts ... ok
[INFO] [stdout] test engine::analytics::tests::test_mastery_level_beginner ... ok
[INFO] [stdout] test engine::analytics::tests::test_mastery_level_learning ... ok
[INFO] [stdout] test engine::analytics::tests::test_mastery_level_mastered ... ok
[INFO] [stdout] test engine::analytics::tests::test_mastery_level_proficient ... ok
[INFO] [stdout] test engine::analytics::tests::test_session_analyzer_basic ... ok
[INFO] [stdout] test data::storage::tests::test_storage_new ... ok
[INFO] [stdout] test engine::scoring::tests::test_calculate_accuracy_half ... ok
[INFO] [stdout] test engine::analytics::tests::test_practice_weights ... ok
[INFO] [stdout] test engine::scoring::tests::test_calculate_wpm_one_minute ... ok
[INFO] [stdout] test engine::scoring::tests::test_calculate_accuracy_zero_total ... ok
[INFO] [stdout] test engine::scoring::tests::test_calculate_wpm_zero_duration ... ok
[INFO] [stdout] test engine::types::tests::test_char_input_correct ... ok
[INFO] [stdout] test engine::types::tests::test_char_input_enter_incorrect ... ok
[INFO] [stdout] test engine::types::tests::test_char_input_enter_key ... ok
[INFO] [stdout] test engine::types::tests::test_char_input_incorrect ... ok
[INFO] [stdout] test engine::types::tests::test_typing_session_add_input ... ok
[INFO] [stdout] test engine::types::tests::test_typing_session_backspace ... ok
[INFO] [stdout] test engine::types::tests::test_typing_session_backspace_after_completion ... ok
[INFO] [stdout] test engine::scoring::tests::test_calculate_wpm_thirty_seconds ... ok
[INFO] [stdout] test engine::types::tests::test_typing_session_complete ... ok
[INFO] [stdout] test engine::types::tests::test_typing_session_new ... ok
[INFO] [stdout] test engine::types::tests::test_typing_session_start ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_all_rows_populated ... ok
[INFO] [stdout] test engine::types::tests::test_typing_session_backspace_at_start ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_altgr_character_highlighting ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_azerty_home_row ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_find_key ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_finger_hand_detection ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_get_base_key ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_altgr_mapping_number_row ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_get_base_key_with_altgr ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_is_home_row_key ... ok
[INFO] [stdout] test engine::scoring::tests::test_calculate_accuracy_perfect ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_mac_all_rows_populated ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_mac_bottom_row_equals ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_mac_get_base_key ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_mac_layout_variant ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_mac_home_row_same ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_mac_shift_mappings ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_mac_top_row_dollar_shift ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_mac_number_row ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_number_highlighting ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_number_row_count ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_mac_requires_option ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_number_row_has_altgr_variants ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_number_row_has_superscript_key ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_mac_requires_shift ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_mac_option_mappings ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_other_rows_no_altgr ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_requires_altgr ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_requires_shift ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_shift_character_highlighting ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_mac_home_row_backtick ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_number_row_has_13_keys ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_shift_mapping_special_chars ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_shift_mapping_letters ... ok
[INFO] [stdout] test ui::analytics::tests::test_calculate_daily_goal_progress ... ok
[INFO] [stdout] test ui::analytics::tests::test_create_daily_wpm_chart ... ok
[INFO] [stdout] test ui::analytics::tests::test_get_session_chart_stats_empty ... ok
[INFO] [stdout] test ui::analytics::tests::test_calculate_daily_progress ... ok
[INFO] [stdout] test ui::analytics::tests::test_get_session_chart_stats_limited ... ok
[INFO] [stdout] test keyboard::azerty::tests::test_shift_mapping_numbers ... ok
[INFO] [stdout] test engine::adaptive::tests::test_identify_slow_keys ... ok
[INFO] [stdout] test ui::analytics::tests::test_create_goal_progress_display ... ok
[INFO] [stdout] test content::generator::tests::test_row_progression_content_generation ... ok
[INFO] [stdout] test content::trigram_generator::tests::test_level_progression ... ok
[INFO] [stdout] test engine::adaptive::tests::test_identify_weak_bigrams ... ok
[INFO] [stdout] test engine::scoring::tests::test_calculate_results ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 168 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "f17bfbca6ad0c0caffd85e2eb088abc1af4f15ef04395dac52ee9448a87b14ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f17bfbca6ad0c0caffd85e2eb088abc1af4f15ef04395dac52ee9448a87b14ad", kill_on_drop: false }`
[INFO] [stdout] f17bfbca6ad0c0caffd85e2eb088abc1af4f15ef04395dac52ee9448a87b14ad
