McRogueFace/tests/unit
John McCardle 018e73590f feat: Implement FOV enum and layer draw_fov for #114 and #113
Phase 1 - FOV Enum System:
- Create PyFOV.h/cpp with mcrfpy.FOV IntEnum (BASIC, DIAMOND, SHADOW, etc.)
- Add mcrfpy.default_fov module property initialized to FOV.BASIC
- Add grid.fov and grid.fov_radius properties for per-grid defaults
- Remove deprecated module-level FOV_* constants (breaking change)

Phase 2 - Layer Operations:
- Implement ColorLayer.fill_rect(pos, size, color) for rectangle fills
- Implement TileLayer.fill_rect(pos, size, index) for tile rectangle fills
- Implement ColorLayer.draw_fov(source, radius, fov, visible, discovered, unknown)
  to paint FOV-based visibility on color layers using parent grid's TCOD map

The FOV enum uses Python's IntEnum for type safety while maintaining
backward compatibility with integer values. Tests updated to use new API.

Addresses #114 (FOV enum), #113 (layer operations)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 15:18:10 -05:00
..
WORKING_automation_test_example.py refactor: Rename click property to on_click (closes #139) 2025-11-27 22:31:53 -05:00
api_createScene_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
api_setScene_currentScene_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
api_timer_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
automation_screenshot_test_simple.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
benchmark_logging_test.py feat: Add work_time_ms to benchmark logging for load analysis 2025-11-28 16:13:40 -05:00
check_entity_attrs.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
collection_find_test.py feat: Add .find() method to UICollection and EntityCollection 2025-11-26 05:24:55 -05:00
collection_list_methods_test.py fix: Make UICollection/EntityCollection match Python list semantics 2025-11-26 08:08:43 -05:00
debug_empty_paths.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
debug_render_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
empty_script.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
exit_immediately_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
generate_docs_screenshots.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
generate_grid_screenshot.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
generate_sprite_screenshot.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
keypress_scene_validation_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
screenshot_transparency_fix_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
simple_screenshot_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
simple_timer_screenshot_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
test_animation_callback_simple.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_animation_chaining.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_animation_debug.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_animation_immediate.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_animation_raii.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_animation_removal.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_api_docs.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_astar.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_audio_cleanup.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_bounds_hit_testing.py feat: Add AABB/hit testing foundation (#138) 2025-11-27 22:36:08 -05:00
test_builtin_context.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_color_fix.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_color_helpers.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_color_operations.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_color_setter_bug.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_constructor_comprehensive.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_dijkstra_pathfinding.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_documentation.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_empty_animation_manager.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_entity_animation.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_entity_collection_remove.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_entity_constructor.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_entity_fix.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_entity_path_to.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_entity_path_to_edge_cases.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_exact_failure.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_frame_clipping.py feat: Migrate to Python 3.14 (closes #135) 2025-11-26 17:48:12 -05:00
test_frame_clipping_advanced.py feat: Migrate to Python 3.14 (closes #135) 2025-11-26 17:48:12 -05:00
test_frame_kwargs.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_geometry.py feat: Add geometry module for orbital mechanics and spatial calculations 2025-11-26 00:26:14 -05:00
test_grid_background.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_grid_cell_events.py feat: Implement comprehensive mouse event system 2025-11-27 23:08:31 -05:00
test_grid_children.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_grid_constructor_bug.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_grid_creation.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_grid_error.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_grid_iteration.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_grid_minimal.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_headless_click.py feat: Implement comprehensive mouse event system 2025-11-27 23:08:31 -05:00
test_headless_detection.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_headless_modes.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_metrics.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_mouse_enter_exit.py feat: Implement comprehensive mouse event system 2025-11-27 23:08:31 -05:00
test_name_parameter.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_name_simple.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_new_constructors.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_no_arg_constructors.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_on_move.py feat: Implement comprehensive mouse event system 2025-11-27 23:08:31 -05:00
test_oneline_for.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_parent_child_system.py refactor: Use property setter pattern for parent assignment 2025-11-27 21:01:11 -05:00
test_path_colors.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_pathfinding_integration.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_profiler_quick.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_properties_quick.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_pyarg_bug.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_python_builtins.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_python_object_cache.py fix: Correct test to use del for index-based removal 2025-11-26 09:48:05 -05:00
test_range_25_bug.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_range_threshold.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_scene_properties.py feat: Implement Phase A UI hierarchy foundations (closes #122, #102, #116, #118) 2025-11-27 16:33:17 -05:00
test_scene_transitions.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_scene_transitions_headless.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_simple_callback.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_simple_drawable.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_stdin_theory.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_stubs.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_tcod_complete.py feat: Implement FOV enum and layer draw_fov for #114 and #113 2025-12-01 15:18:10 -05:00
test_tcod_fov.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_tcod_fov_entities.py feat: Implement FOV enum and layer draw_fov for #114 and #113 2025-12-01 15:18:10 -05:00
test_tcod_minimal.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_tcod_pathfinding.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_text_input.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_texture_invalid_path.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_timer_callback.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_timer_legacy.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_timer_object.py fix: Update cpython submodule to v3.14.0 and fix flaky tests 2025-11-26 18:43:32 -05:00
test_timer_once.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_uiarc.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_uicaption_visual.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_uicircle.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_utf8_encoding.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_vector_arithmetic.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_vector_convenience.py feat: Add Vector convenience features - indexing, tuple comparison, floor 2025-11-26 09:37:14 -05:00
test_viewport_scaling.py fix: Update cpython submodule to v3.14.0 and fix flaky tests 2025-11-26 18:43:32 -05:00
test_visibility.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_visual_path.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
ui_Entity_issue73_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
ui_Frame_test_detailed.py refactor: Rename click property to on_click (closes #139) 2025-11-27 22:31:53 -05:00
ui_Grid_none_texture_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
ui_Grid_null_texture_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
ui_Grid_test_no_grid.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
ui_Sprite_issue19_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
ui_UICollection_issue69_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
validate_screenshot_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
working_timer_test.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00