# Testing Strategy This document describes the test suite for the Celestron AUX driver and procedures for moving from simulation to real hardware. ## Test Categories ### Tier 1: Virtual (Simulator Only) These tests verify mathematical logic and protocol compliance. * `tests/test_alignment_*.py`: SVD transformation and geometric model validation. * `tests/integration/test_full_stack.py`: TCP layer and INDI session verification. ### Tier 2: Hardware-Ready These tests can be safely run on a physical mount. * `tests/test_functional.py`: Basic GoTo commands, Parking, and Homing. * `tests/test_tracking_accuracy.py`: Long-term tracking drift analysis. * `tests/test_moving_objects.py`: Moon, planet, and satellite tracking. ### Tier 3: Critical (Manual Supervision Required) Tests checking physical limits and emergency scenarios. * `tests/test_safety.py`: Alt/Az limits and Cord Wrap. * `scripts/hit_validation.py`: Interactive axis and abort test. ## Safety Protocol When working with real hardware: 1. **No Blind Restarts**: The physical mount preserves its state. Tests must not assume a "zero" starting point. 2. **Two-Stage GoTo**: The driver uses a FAST + SLOW (anti-backlash) sequence. Do not bypass this for precision. 3. **Emergency Stop**: Always have the **Space** key or INDI Abort button ready. 4. **Power Stability**: High-rate slews (Rate 9) require stable power supply. ## Continuous Integration The project uses GitHub Actions to run the full test suite and type checking (`mypy`) on Python 3.11, 3.12, and 3.13.