test_47_invariants_reject_bad_ownership (__main__.BoundaryDetails.test_47_invariants_reject_bad_ownership) ... ok
test_48_transient_overflow_is_not_stable (__main__.BoundaryDetails.test_48_transient_overflow_is_not_stable) ... ok
test_49_no_dish_dry_and_empty_priority (__main__.BoundaryDetails.test_49_no_dish_dry_and_empty_priority) ... ok
test_50_movement_has_no_transport_trace (__main__.BoundaryDetails.test_50_movement_has_no_transport_trace) ... ok
test_23_all_85_C_states_340_transitions (__main__.CompleteModel.test_23_all_85_C_states_340_transitions) ... ok
test_24_success_requires_F_and_K (__main__.CompleteModel.test_24_success_requires_F_and_K) ... ok
test_25_rejected_inputs_leave_every_fact (__main__.CompleteModel.test_25_rejected_inputs_leave_every_fact) ... ok
test_26_full_empty_edge_and_shade (__main__.CompleteModel.test_26_full_empty_edge_and_shade) ... ok
test_27_flower_not_consumed_and_can_recover_before_win (__main__.CompleteModel.test_27_flower_not_consumed_and_can_recover_before_win) ... ok
test_28_take_K_closes_gate (__main__.CompleteModel.test_28_take_K_closes_gate) ... ok
test_29_overflow_returns_to_source (__main__.CompleteModel.test_29_overflow_returns_to_source) ... ok
test_30_three_rains_at_closed_gate_never_open (__main__.CompleteModel.test_30_three_rains_at_closed_gate_never_open) ... ok
test_31_terminal_freezes_but_opt_in_transition_exists (__main__.CompleteModel.test_31_terminal_freezes_but_opt_in_transition_exists) ... ok
test_32_ledger_explicit (__main__.CompleteModel.test_32_ledger_explicit) ... ok
test_33_undo_all_and_branch (__main__.ControllerUndo.test_33_undo_all_and_branch) ... ok
test_34_undo_success_and_resucceed (__main__.ControllerUndo.test_34_undo_success_and_resucceed) ... ok
test_35_empty_undo (__main__.ControllerUndo.test_35_empty_undo) ... ok
test_36_selection_moves_are_actions (__main__.ControllerUndo.test_36_selection_moves_are_actions) ... ok
test_37_hold_and_partial_release (__main__.ControllerUndo.test_37_hold_and_partial_release) ... ok
test_38_chord_including_reset_is_rejected (__main__.ControllerUndo.test_38_chord_including_reset_is_rejected) ... ok
test_39_reset_requires_release_and_clears_history (__main__.ControllerUndo.test_39_reset_requires_release_and_clears_history) ... ok
test_40_blocked_action_not_history (__main__.ControllerUndo.test_40_blocked_action_not_history) ... ok
test_41_stage4_no_undo (__main__.ControllerUndo.test_41_stage4_no_undo) ... ok
test_42_drawing_does_not_mutate (__main__.ControllerUndo.test_42_drawing_does_not_mutate) ... ok
test_43_lazy_pyxel_import (__main__.Distribution.test_43_lazy_pyxel_import) ... ok
test_44_embedded_full_license (__main__.Distribution.test_44_embedded_full_license) ... ok
test_45_exact_lesson_snippets (__main__.Distribution.test_45_exact_lesson_snippets) ... ok
test_46_optional_live_original (__main__.Distribution.test_46_optional_live_original) ... ok
test_14_source_microstep_fixtures (__main__.Flow.test_14_source_microstep_fixtures) ... ok
test_15_all_scan_orders_gate_and_merge (__main__.Flow.test_15_all_scan_orders_gate_and_merge) ... ok
test_16_merge_surplus_waits_next_tick (__main__.Flow.test_16_merge_surplus_waits_next_tick) ... ok
test_17_same_tick_K_arrival_does_not_open_old_gate (__main__.Flow.test_17_same_tick_K_arrival_does_not_open_old_gate) ... ok
test_18_one_drop_per_emitter (__main__.Flow.test_18_one_drop_per_emitter) ... ok
test_19_bad_scan_order_rejected (__main__.Flow.test_19_bad_scan_order_rejected) ... ok
test_20_unrouted_overflow_is_error (__main__.Flow.test_20_unrouted_overflow_is_error) ... ok
test_21_cycle_validation_and_settle_limit (__main__.Flow.test_21_cycle_validation_and_settle_limit) ... ok
test_22_graph_unknown_and_negative (__main__.Flow.test_22_graph_unknown_and_negative) ... ok
test_01_ownership_round_trip (__main__.Ownership.test_01_ownership_round_trip) ... ok
test_02_empty_does_not_change (__main__.Ownership.test_02_empty_does_not_change) ... ok
test_03_full_does_not_change (__main__.Ownership.test_03_full_does_not_change) ... ok
test_04_stage_one_column_fixed (__main__.Ownership.test_04_stage_one_column_fixed) ... ok
test_05_no_future_logic_early (__main__.Ownership.test_05_no_future_logic_early) ... ok
test_06_presets_are_source_states (__main__.Visibility.test_06_presets_are_source_states) ... ok
test_07_closed_gate_blocks_both (__main__.Visibility.test_07_closed_gate_blocks_both) ... ok
test_08_open_gate_skipped (__main__.Visibility.test_08_open_gate_skipped) ... ok
test_09_bottom_returns_to_source (__main__.Visibility.test_09_bottom_returns_to_source) ... ok
test_10_survey_does_not_play_outside_S (__main__.Visibility.test_10_survey_does_not_play_outside_S) ... ok
test_11_pipe_is_transparent (__main__.Visibility.test_11_pipe_is_transparent) ... ok
test_12_nearest_vertical_then_name (__main__.Visibility.test_12_nearest_vertical_then_name) ... ok
test_13_ambiguous_catch_tie_rejected (__main__.Visibility.test_13_ambiguous_catch_tie_rejected) ... ok

----------------------------------------------------------------------
Ran 50 tests in 0.046s

OK
