test_all5400_choices_new_and_old (test_stages.Choices.test_all5400_choices_new_and_old) ... ok
test_cost_includes_view_and_budget_equal (test_stages.Choices.test_cost_includes_view_and_budget_equal) ... ok
test_goal_is_not_attraction_and_does_not_stop (test_stages.Choices.test_goal_is_not_attraction_and_does_not_stop) ... ok
test_initial_first_choices (test_stages.Choices.test_initial_first_choices) ... ok
test_interest_then_cost_then_cell (test_stages.Choices.test_interest_then_cost_then_cell) ... ok
test_old_known_and_seen_never_count_twice (test_stages.Choices.test_old_known_and_seen_never_count_twice) ... ok
test_preview_is_pure (test_stages.Choices.test_preview_is_pure) ... ok
test_all5400_layout_contexts (test_stages.Context.test_all5400_layout_contexts) ... ok
test_initial_bowl_three_tags (test_stages.Context.test_initial_bowl_three_tags) ... ok
test_orthogonal_not_diagonal_or_rowwrap (test_stages.Context.test_orthogonal_not_diagonal_or_rowwrap) ... ok
test_symmetric_nonchain (test_stages.Context.test_symmetric_nonchain) ... ok
test_demos (test_stages.Controller.test_demos) ... ok
test_draw_pure_bounded_all_scenes (test_stages.Controller.test_draw_pure_bounded_all_scenes) ... ok
test_gate_held_new_key_and_simultaneous (test_stages.Controller.test_gate_held_new_key_and_simultaneous) ... ok
test_no_automatic_ticking (test_stages.Controller.test_no_automatic_ticking) ... ok
test_pause_blocks_commit_and_enter (test_stages.Controller.test_pause_blocks_commit_and_enter) ... ok
test_comparison_changes_only_vertical_context (test_stages.Exercises.test_comparison_changes_only_vertical_context) ... ok
test_stage01_and_stage02_documented_keys (test_stages.Exercises.test_stage01_and_stage02_documented_keys) ... ok
test_exact_rights_and_requirements (test_stages.Package.test_exact_rights_and_requirements) ... ok
test_final_cli_save_path_validation (test_stages.Package.test_final_cli_save_path_validation) ... ok
test_live_original (test_stages.Package.test_live_original) ... ok
test_negative_cli_before_pyxel_import (test_stages.Package.test_negative_cli_before_pyxel_import) ... ok
test_snippets_exact (test_stages.Package.test_snippets_exact) ... ok
test_four_only_empty_and_replace (test_stages.Placement.test_four_only_empty_and_replace) ... ok
test_initial_is_original_C (test_stages.Placement.test_initial_is_original_C) ... ok
test_move_into_occupied_is_not_swap (test_stages.Placement.test_move_into_occupied_is_not_swap) ... ok
test_partial_design_reaches_four (test_stages.Placement.test_partial_design_reaches_four) ... ok
test_placement_boundaries (test_stages.Placement.test_placement_boundaries) ... ok
test_same_item_removes (test_stages.Placement.test_same_item_removes) ... ok
test_compare_reset_log_and_replay (test_stages.Replay.test_compare_reset_log_and_replay) ... ok
test_empty_and_three_item_records_are_valid (test_stages.Replay.test_empty_and_three_item_records_are_valid) ... ok
test_original_records_exact (test_stages.Replay.test_original_records_exact) ... ok
test_save_explicit_utf8_partial_and_no_creation_at_init (test_stages.Replay.test_save_explicit_utf8_partial_and_no_creation_at_init) ... ok
test_save_without_path_and_oserror (test_stages.Replay.test_save_without_path_and_oserror) ... ok
test_tamper_refused (test_stages.Replay.test_tamper_refused) ... ok
test_undo_after_edit_restores_finished_run (test_stages.Replay.test_undo_after_edit_restores_finished_run) ... ok
test_undo_returns_before_whole_run (test_stages.Replay.test_undo_returns_before_whole_run) ... ok
test_all5400_full_end_states (test_stages.Visitors.test_all5400_full_end_states) ... ok
test_all_three_exit_reasons (test_stages.Visitors.test_all_three_exit_reasons) ... ok
test_goal_threshold_two_and_terminal_noop (test_stages.Visitors.test_goal_threshold_two_and_terminal_noop) ... ok
test_next_visitor_is_new_state_with_old_result (test_stages.Visitors.test_next_visitor_is_new_state_with_old_result) ... ok
test_one_step_selection_then_commit (test_stages.Visitors.test_one_step_selection_then_commit) ... ok
test_open_requires_exactly_four_and_locked (test_stages.Visitors.test_open_requires_exactly_four_and_locked) ... ok
test_source_derived_initial_trace (test_stages.Visitors.test_source_derived_initial_trace) ... ok

----------------------------------------------------------------------
Ran 44 tests in 13.936s

OK
