958fde9050
- Removed outdated comments and documentation from CsvSessionSource and DemoSource classes. - Introduced new unit tests for CsvSource and DataSource functionalities, ensuring robust validation of CSV loading and session handling. - Added UI smoke tests to verify window instantiation and menu actions without hardware dependencies. - Implemented VisionEngine tests to validate demo snapshots and alignment state logic.
35 lines
1.6 KiB
Python
35 lines
1.6 KiB
Python
"""DataSource TODO anchors for future headless tests."""
|
|
|
|
from __future__ import annotations
|
|
import unittest
|
|
|
|
from wafer_edge.DataSources import DemoSource, CsvSessionSource
|
|
from wafer_edge.VisionEngine import VisionEngine
|
|
from wafer_edge.Calibration import BaselineCalibration
|
|
from pathlib import Path
|
|
import tempfile
|
|
import MASTER_SD
|
|
MASTER_SD = Path(__file__).resolve().parents[1] / "MASTER_SD"
|
|
|
|
class DataSourcesTest(unittest.TestCase):
|
|
def test_demo_source_snapshot(self) -> None:
|
|
sources = DemoSource(VisionEngine())
|
|
snapshot = sources.latest_snapshot(BaselineCalibration())
|
|
self.assertEqual(len(snapshot.camera_readings), 4)
|
|
self.assertEqual(snapshot.source_label, "User App - Simulated Data")
|
|
self.assertLess(snapshot.sigma_mm, 0.01)
|
|
|
|
def test_csv_session_source_snapshot(self) -> None:
|
|
source = CsvSessionSource(MASTER_SD, VisionEngine())
|
|
snapshot = source.latest_snapshot(BaselineCalibration())
|
|
|
|
self.assertEqual(len(snapshot.camera_readings), 4)
|
|
self.assertEqual(snapshot.system_status, "Ready")
|
|
self.assertEqual(snapshot.source_label, "Session: MASTER_SD (4 cams)")
|
|
|
|
def test_csv_session_source_missing_or_invalid_seed(self)-> None:
|
|
with tempfile.TemporaryDirectory() as tmp:
|
|
with self.assertRaises(FileNotFoundError):
|
|
CsvSessionSource(Path(tmp), VisionEngine())
|
|
|