test_C_straight_seam_is_not_traversable (test_model.ModelTests.test_C_straight_seam_is_not_traversable) ... ok
test_all_solvable_and_bounded (test_model.ModelTests.test_all_solvable_and_bounded) ... ok
test_both_modes_on_dry_island_valid (test_model.ModelTests.test_both_modes_on_dry_island_valid) ... ok
test_dry_swap_atomically_changes_all_tiles (test_model.ModelTests.test_dry_swap_atomically_changes_all_tiles) ... ok
test_full_graph_invariants_and_valid_card_set (test_model.ModelTests.test_full_graph_invariants_and_valid_card_set) ... ok
test_invalid_action (test_model.ModelTests.test_invalid_action) ... ok
test_invalid_rules_atomic (test_model.ModelTests.test_invalid_rules_atomic) ... ok
test_loader_rejects_outside (test_model.ModelTests.test_loader_rejects_outside) ... ok
test_loader_rejects_overlap (test_model.ModelTests.test_loader_rejects_overlap) ... ok
test_loader_rejects_unknown_mode (test_model.ModelTests.test_loader_rejects_unknown_mode) ... ok
test_loader_rejects_water_start (test_model.ModelTests.test_loader_rejects_water_start) ... ok
test_no_animation_timing_loophole (test_model.ModelTests.test_no_animation_timing_loophole) ... ok
test_no_change_cards (test_model.ModelTests.test_no_change_cards) ... ok
test_no_zero_swap_solution (test_model.ModelTests.test_no_zero_swap_solution) ... ok
test_rule_cards_one_each (test_model.ModelTests.test_rule_cards_one_each) ... ok
test_short_lengths_and_single_change (test_model.ModelTests.test_short_lengths_and_single_change) ... ok
test_sink_switch_rejected (test_model.ModelTests.test_sink_switch_rejected) ... ok
test_terminal_is_absorbing (test_model.ModelTests.test_terminal_is_absorbing) ... ok
test_water_and_bounds_no_change (test_model.ModelTests.test_water_and_bounds_no_change) ... ok
test_all_draw_states_glyph_coverage (test_ui.InputTests.test_all_draw_states_glyph_coverage) ... ok
test_cancel_preview_preserves_history (test_ui.InputTests.test_cancel_preview_preserves_history) ... ok
test_edge_only_single_step (test_ui.InputTests.test_edge_only_single_step) ... ok
test_editor_arrows_no_walk_or_rule_change (test_ui.InputTests.test_editor_arrows_no_walk_or_rule_change) ... ok
test_menu_start_staggered (test_ui.InputTests.test_menu_start_staggered) ... ok
test_neutral_then_next_deliberate_press_responsive (test_ui.InputTests.test_neutral_then_next_deliberate_press_responsive) ... ok
test_no_held_preview_auto_confirmation (test_ui.InputTests.test_no_held_preview_auto_confirmation) ... ok
test_pause_freezes_then_staggered_actions_blocked (test_ui.InputTests.test_pause_freezes_then_staggered_actions_blocked) ... ok
test_rejected_swap_does_not_create_history (test_ui.InputTests.test_rejected_swap_does_not_create_history) ... ok
test_restart_staggered (test_ui.InputTests.test_restart_staggered) ... ok
test_simultaneous_arrow_priority (test_ui.InputTests.test_simultaneous_arrow_priority) ... ok
test_start_held_and_staggered_space (test_ui.InputTests.test_start_held_and_staggered_space) ... ok
test_success_next_staggered_space (test_ui.InputTests.test_success_next_staggered_space) ... ok
test_success_undo_and_restart (test_ui.InputTests.test_success_undo_and_restart) ... ok
test_undo_rule_and_movement_and_future (test_ui.InputTests.test_undo_rule_and_movement_and_future) ... ok

----------------------------------------------------------------------
Ran 34 tests in 0.266s

OK
