# Testing & Debugging Protocols ## 1. Automated Testing Strategy You are required to maintain a `tests/` directory. Use **pytest** for unit logic and **pytest-qt** for UI interactions. ### A. Core Logic Validation - **Requirement:** Every math formula in `GAME_MECHANICS.md` must have a corresponding unit test in `tests/test_math.py`. - **Edge Cases:** Test for 0.00 PED loot, maximum stack sizes, and 100% item decay. ### B. Log Parsing Verification - **Mocking:** Do not rely on real game logs for testing. Create a `tests/mock_logs/` folder containing sample `chat.log` snippets. - **Goal:** The `LogWatcher` must correctly identify loots, globals, and damage values from these mocks with 100% accuracy. ## 2. Debugging Routine When a bug is reported or a test fails, follow the **"Plan-Act-Reflect"** pattern: 1. **Hypothesize:** Use **Sequential Thinking** to identify the most likely failure point. 2. **Trace:** Use the **Filesystem** tool to read the latest `logs/debug.log` file. 3. **Isolate:** Create a minimal reproduction script to confirm the bug. 4. **Fix:** Apply the fix and run all existing tests to ensure no regressions. ## 3. Playwright UI Testing Use the **Playwright MCP** to: - Verify that the HUD overlay remains "Always on Top." - Test button clicks and navigation between the Hunter and Miner modules. - Ensure that "Project Selection" correctly loads historical data into the dashboard.