#!/usr/bin/env python3 """ Simple test of GUI without full validation. """ import sys import time from pathlib import Path import numpy as np project_root = Path(__file__).parent.parent sys.path.insert(0, str(project_root)) from ylff.utils.visualization_gui import create_gui # noqa: E402 def test_gui(): """Test GUI with dummy data.""" gui = create_gui() # Simulate progressive updates def update_thread(): time.sleep(1) gui.add_status_message("Starting test...") # Simulate ARKit poses for i in range(5): time.sleep(0.5) # Create dummy pose (4x4 c2w) pose = np.eye(4) pose[:3, 3] = [i * 0.1, 0, 0] # Move along X axis gui.add_frame_data(frame_idx=i, arkit_pose=pose) gui.add_progress_update(i + 1, 5) gui.add_status_message(f"Processing frame {i + 1}/5...") # Simulate DA3 poses (slightly different) for i in range(5): time.sleep(0.3) pose = np.eye(4) pose[:3, 3] = [i * 0.1 + 0.05, 0.02, 0.01] # Slightly offset gui.add_frame_data(frame_idx=i, da3_pose=pose) gui.add_status_message(f"DA3 inference: frame {i + 1}/5...") # Simulate errors for i in range(5): time.sleep(0.2) errors = { "da3_vs_arkit_rot": 2.5 + i * 0.1, "da3_vs_arkit_trans": 0.01 + i * 0.001, } gui.add_frame_data(frame_idx=i, errors=errors) gui.add_status_message("Test complete!") gui.update_status("Complete", is_processing=False) import threading thread = threading.Thread(target=update_thread, daemon=True) thread.start() # Run GUI gui.run() if __name__ == "__main__": test_gui()