3d_model / scripts /tests /test_gui_simple.py
Azan
Clean deployment build (Squashed)
7a87926
#!/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()