diff --git a/src/pygui/backend/wafer/__init__.py b/src/pygui/backend/wafer/__init__.py index d662db0..0c098d5 100644 --- a/src/pygui/backend/wafer/__init__.py +++ b/src/pygui/backend/wafer/__init__.py @@ -1,4 +1,5 @@ # ===== Wafer Sub-package ===== +from pygui.backend.wafer.family_spec import sensor_count_for from pygui.backend.wafer.wafer_layouts import available_families, load_layout from pygui.backend.wafer.zwafer_models import DataRecord, Sensor, ZWaferData from pygui.backend.wafer.zwafer_parser import ZWaferParser @@ -7,4 +8,5 @@ __all__ = [ "ZWaferData", "Sensor", "DataRecord", "ZWaferParser", "load_layout", "available_families", + "sensor_count_for", ] diff --git a/src/pygui/backend/wafer/family_spec.py b/src/pygui/backend/wafer/family_spec.py new file mode 100644 index 0000000..18b9a17 --- /dev/null +++ b/src/pygui/backend/wafer/family_spec.py @@ -0,0 +1,9 @@ +"""Single source of truth for the wafer sensor-count partition.""" + + +def sensor_count_for(family_code: str) -> int: + """Return the number of valid sensor readings for a wafer family code. + + Returns 80 for the "X" family. Returns 244 for every other family + code.""" + return 80 if family_code == "X" else 244 diff --git a/tests/test_family_spec.py b/tests/test_family_spec.py new file mode 100644 index 0000000..083bb82 --- /dev/null +++ b/tests/test_family_spec.py @@ -0,0 +1,23 @@ +"""Tests for the shared wafer family sensor-count lookup.""" +from pygui.backend.wafer.family_spec import sensor_count_for + + +def test_x_family_returns_80(): + assert sensor_count_for("X") == 80 + + +def test_p_family_returns_244(): + assert sensor_count_for("P") == 244 + + +def test_other_known_families_return_244(): + for code in ("A", "B", "C", "D", "E", "F"): + assert sensor_count_for(code) == 244 + + +def test_unknown_family_returns_244(): + assert sensor_count_for("Z") == 244 + + +def test_empty_string_returns_244(): + assert sensor_count_for("") == 244