McRogueFace/tests/unit
John McCardle bc95cb1f0b feat: Add geometry module for orbital mechanics and spatial calculations
Implements issue #130 with:
- Basic utilities: distance, angle_between, normalize_angle, lerp, clamp
- Grid algorithms: bresenham_circle, bresenham_line, filled_circle
- OrbitalBody class with recursive positioning (star -> planet -> moon)
- OrbitingShip class for relative ship positioning on orbit rings
- Pathfinding helpers: nearest_orbit_entry, optimal_exit_heading,
  is_viable_waypoint, line_of_sight_blocked
- Comprehensive test suite (25+ tests)

Designed for Pinships turn-based space roguelike with:
- Discrete time steps (planets move in whole grid squares)
- Deterministic position projection
- Free orbital movement while in orbit
- Support for nested orbits (moons of moons)

closes #130

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 00:26:14 -05:00
..
WORKING_automation_test_example.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04: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
check_entity_attrs.py Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04: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_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 refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_frame_clipping_advanced.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -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_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_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_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_oneline_for.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -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 refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37: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_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 refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -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 refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -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 refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -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_viewport_scaling.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
test_viewport_visual.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -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 Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04: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