test_all_demos_model (__main__.Controller.test_all_demos_model) ... ok
test_chord_does_not_advance (__main__.Controller.test_chord_does_not_advance) ... ok
test_cli_preimport_validations (__main__.Controller.test_cli_preimport_validations) ... ok
test_draw_and_preview_read_only (__main__.Controller.test_draw_and_preview_read_only) ... ok
test_level_change_clears_history (__main__.Controller.test_level_change_clears_history) ... ok
test_release_gate (__main__.Controller.test_release_gate) ... ok
test_reset_clears_history_and_selection (__main__.Controller.test_reset_clears_history_and_selection) ... ok
test_reset_new_press_priority (__main__.Controller.test_reset_new_press_priority) ... ok
test_selection_no_time_or_stock (__main__.Controller.test_selection_no_time_or_stock) ... ok
test_terminal_undo_control (__main__.Controller.test_terminal_undo_control) ... ok
test_01_checkpoint (__main__.Core.test_01_checkpoint) ... ok
test_01_exercise_start_two (__main__.Core.test_01_exercise_start_two) ... ok
test_01_invalid_atomic (__main__.Core.test_01_invalid_atomic) ... ok
test_01_one_step_old_grid (__main__.Core.test_01_one_step_old_grid) ... ok
test_01_south_drain (__main__.Core.test_01_south_drain) ... ok
test_02_boundary_no_wrap (__main__.Core.test_02_boundary_no_wrap) ... ok
test_02_demo (__main__.Core.test_02_demo) ... ok
test_02_equal_height_is_not_downhill (__main__.Core.test_02_equal_height_is_not_downhill) ... ok
test_02_exercise_higher_stock (__main__.Core.test_02_exercise_higher_stock) ... ok
test_02_invalid_reject_atomic (__main__.Core.test_02_invalid_reject_atomic) ... ok
test_02_no_small_cell_capacity (__main__.Core.test_02_no_small_cell_capacity) ... ok
test_02_one_step_injection (__main__.Core.test_02_one_step_injection) ... ok
test_02_stock_reject_atomic (__main__.Core.test_02_stock_reject_atomic) ... ok
test_02_stone_blocks_destination (__main__.Core.test_02_stone_blocks_destination) ... ok
test_02_terrain_minimum_before_rank (__main__.Core.test_02_terrain_minimum_before_rank) ... ok
test_03_arrival_consumes_one (__main__.Core.test_03_arrival_consumes_one) ... ok
test_03_ash_cannot_reignite (__main__.Core.test_03_ash_cannot_reignite) ... ok
test_03_extinguished_source_cannot_spread (__main__.Core.test_03_extinguished_source_cannot_spread) ... ok
test_03_natural_burnout (__main__.Core.test_03_natural_burnout) ... ok
test_03_new_fire_waits_next_tick (__main__.Core.test_03_new_fire_waits_next_tick) ... ok
test_03_no_wet_reignition (__main__.Core.test_03_no_wet_reignition) ... ok
test_03_old_fire_fuel_decreases_once (__main__.Core.test_03_old_fire_fuel_decreases_once) ... ok
test_03_terminal_does_not_force_drain (__main__.Core.test_03_terminal_does_not_force_drain) ... ok
test_03_two_units_prevent_reignition_this_tick (__main__.Core.test_03_two_units_prevent_reignition_this_tick) ... ok
test_03_water_consumed_before_move (__main__.Core.test_03_water_consumed_before_move) ... ok
test_04_exercise_disable_wet (__main__.Core.test_04_exercise_disable_wet) ... ok
test_04_forecast_pure (__main__.Core.test_04_forecast_pure) ... ok
test_04_house_damage_sticky (__main__.Core.test_04_house_damage_sticky) ... ok
test_04_no_artificial_deadline (__main__.Core.test_04_no_artificial_deadline) ... ok
test_04_old_wet_ages_before_ignition (__main__.Core.test_04_old_wet_ages_before_ignition) ... ok
test_04_touch_even_consumed_source (__main__.Core.test_04_touch_even_consumed_source) ... ok
test_04_wet_blocks_same_tick_reignition (__main__.Core.test_04_wet_blocks_same_tick_reignition) ... ok
test_04_wet_is_not_water (__main__.Core.test_04_wet_is_not_water) ... ok
test_05_authored_solutions (__main__.Core.test_05_authored_solutions) ... ok
test_05_b_order_matters (__main__.Core.test_05_b_order_matters) ... ok
test_05_c_wind_turn (__main__.Core.test_05_c_wind_turn) ... ok
test_05_no_undo_at_start (__main__.Core.test_05_no_undo_at_start) ... ok
test_05_rejections_not_recorded (__main__.Core.test_05_rejections_not_recorded) ... ok
test_05_undo_every_field (__main__.Core.test_05_undo_every_field) ... ok
test_practice_no_deadline (__main__.Core.test_practice_no_deadline) ... ok
test_random_conservation_and_nonnegative (__main__.Core.test_random_conservation_and_nonnegative) ... ok
test_actual_source_edit_exercises (__main__.Package.test_actual_source_edit_exercises) ... ok
test_diffs_exact (__main__.Package.test_diffs_exact) ... ok
test_full_license_headers_and_notices (__main__.Package.test_full_license_headers_and_notices) ... ok
test_lesson_snippets_exact_and_schema (__main__.Package.test_lesson_snippets_exact_and_schema) ... ok
test_frozen_reachable_states_all_levels (__main__.Reference.test_frozen_reachable_states_all_levels) ... ok
test_optional_direct_original (__main__.Reference.test_optional_direct_original) ... skipped 'optional original absent: set PYXEL046_ORIGINAL to model.py or folder'

----------------------------------------------------------------------
Ran 57 tests in 1.870s

OK (skipped=1)
