# Testing ## Native Tests (host machine) Run algorithm tests that don't require hardware: ```bash pio test -e native ``` Tests: - `test_photo_queue.cpp` — queue cycling, favorites weighting - `test_image_pipeline.cpp` — nearest color, dithering correctness ## On-Device Testing Flash and monitor: ```bash pio run -e m5stack-papercolor -t upload && pio device monitor ``` ### Verification Checklist - [ ] Device boots and prints version to serial - [ ] AP mode activates on first boot - [ ] Captive portal serves setup page at 192.168.4.1 - [ ] WiFi credentials save and device reboots to station mode - [ ] mDNS resolves at papercolor.local - [ ] Web UI dashboard shows battery/WiFi/uptime - [ ] Albums page lists Immich albums - [ ] Album selection persists across reboots - [ ] Photos download and display correctly - [ ] Portrait photos pair side-by-side - [ ] Slideshow advances at configured interval - [ ] BTN_UP: next photo (LED flashes white) - [ ] BTN_TOP: random photo (LED flashes white) - [ ] BTN_DOWN: pause/play toggle - [ ] BTN_TOP+BTN_DOWN 3s: deep sleep - [ ] BTN_UP 5s: factory reset - [ ] Battery LED: orange at 25%, red at 10% - [ ] OTA upload succeeds via web UI - [ ] Device recovers from WiFi disconnect (reconnect on next cycle)