test_hold_does_not_repeat (test_stages.Controllers.test_hold_does_not_repeat) ... ok
test_idle_never_advances (test_stages.Controllers.test_idle_never_advances) ... ok
test_mismatched_pressed_held_does_nothing (test_stages.Controllers.test_mismatched_pressed_held_does_nothing) ... ok
test_preview_selects_without_playing (test_stages.Controllers.test_preview_selects_without_playing) ... ok
test_simultaneous_keys_do_nothing (test_stages.Controllers.test_simultaneous_keys_do_nothing) ... ok
test_stage_three_transfer_and_invalid_key (test_stages.Controllers.test_stage_three_transfer_and_invalid_key) ... ok
test_stage_two_actor_and_shield (test_stages.Controllers.test_stage_two_actor_and_shield) ... ok
test_unsupported_stage_controls_are_ignored (test_stages.Controllers.test_unsupported_stage_controls_are_ignored) ... ok
test_win_undo_and_reset_release (test_stages.Controllers.test_win_undo_and_reset_release) ... ok
test_01_clamp_and_strict_input (test_stages.Models.test_01_clamp_and_strict_input) ... ok
test_01_fire_two_hits_and_terminal (test_stages.Models.test_01_fire_two_hits_and_terminal) ... ok
test_02_deliberate_setup (test_stages.Models.test_02_deliberate_setup) ... ok
test_02_heal_caps_and_zero_is_legal (test_stages.Models.test_02_heal_caps_and_zero_is_legal) ... ok
test_02_lab_allows_dead_actor_and_no_auto_enemy (test_stages.Models.test_02_lab_allows_dead_actor_and_no_auto_enemy) ... ok
test_02_shield_reduces_fire_then_expires (test_stages.Models.test_02_shield_reduces_fire_then_expires) ... ok
test_02_spark_blocked_and_own_barrier_retained (test_stages.Models.test_02_spark_blocked_and_own_barrier_retained) ... ok
test_03_manual_actor_not_automatic_turn (test_stages.Models.test_03_manual_actor_not_automatic_turn) ... ok
test_03_move_same_card_no_duplicate (test_stages.Models.test_03_move_same_card_no_duplicate) ... ok
test_03_zero_heal_still_passes (test_stages.Models.test_03_zero_heal_still_passes) ... ok
test_ai_a_heal_threshold_and_order (test_stages.Models.test_ai_a_heal_threshold_and_order) ... ok
test_ai_sees_after_effect_and_transfer (test_stages.Models.test_ai_sees_after_effect_and_transfer) ... ok
test_cast_refuses_unowned_and_bad_actor (test_stages.Models.test_cast_refuses_unowned_and_bad_actor) ... ok
test_draw_after_surviving_twelve_rounds (test_stages.Models.test_draw_after_surviving_twelve_rounds) ... ok
test_fixture_all_round_transitions (test_stages.Models.test_fixture_all_round_transitions) ... ok
test_fixture_all_single_casts (test_stages.Models.test_fixture_all_single_casts) ... ok
test_fixture_timeline_traces (test_stages.Models.test_fixture_timeline_traces) ... ok
test_forecast_pure_and_same_as_execution (test_stages.Models.test_forecast_pure_and_same_as_execution) ... ok
test_invalid_input_has_no_round (test_stages.Models.test_invalid_input_has_no_round) ... ok
test_last_round_win_precedes_draw (test_stages.Models.test_last_round_win_precedes_draw) ... ok
test_loss_precedes_draw (test_stages.Models.test_loss_precedes_draw) ... ok
test_nonattack_expires_target_barrier (test_stages.Models.test_nonattack_expires_target_barrier) ... ok
test_source_winning_sequence (test_stages.Models.test_source_winning_sequence) ... ok
test_undo_whole_round_and_terminal (test_stages.Models.test_undo_whole_round_and_terminal) ... ok
test_win_after_transfer_without_counterattack (test_stages.Models.test_win_after_transfer_without_counterattack) ... ok
test_accessible_enemy_and_fire_text_foregrounds (test_stages.Package.test_accessible_enemy_and_fire_text_foregrounds) ... ok
test_cli_conflicting_or_gui_output_options_rejected (test_stages.Package.test_cli_conflicting_or_gui_output_options_rejected) ... ok
test_cli_rejects_unsupported_stage_keys_without_pyxel (test_stages.Package.test_cli_rejects_unsupported_stage_keys_without_pyxel) ... ok
test_five_entries_and_exact_snippets (test_stages.Package.test_five_entries_and_exact_snippets) ... ok
test_four_diffs_match_exact_bytes (test_stages.Package.test_four_diffs_match_exact_bytes) ... ok
test_license_and_requirement (test_stages.Package.test_license_and_requirement) ... ok
test_metadata_declares_scope (test_stages.Package.test_metadata_declares_scope) ... ok
test_standalone_imports_no_pyxel_required (test_stages.Package.test_standalone_imports_no_pyxel_required) ... ok
test_utf8_text_io (test_stages.Package.test_utf8_text_io) ... ok

----------------------------------------------------------------------
Ran 43 tests in 0.426s

OK
