44 lines
1.7 KiB
Python
44 lines
1.7 KiB
Python
import json
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).parents[1]
|
|
RESULT = ROOT / "tests" / "fixtures" / "rayforge-lightburn-device-import.json"
|
|
SOURCE = ROOT / "tests" / "fixtures" / "synthetic-jcz-device.lbdev"
|
|
|
|
|
|
class RayforgeLightBurnDeviceImportSpikeTests(unittest.TestCase):
|
|
def test_public_fixture_is_synthetic_and_contains_no_private_identity(self):
|
|
source = json.loads(SOURCE.read_text(encoding="utf-8"))
|
|
self.assertEqual(
|
|
"synthetic public data; not a machine export",
|
|
source["FixtureProvenance"],
|
|
)
|
|
rendered = SOURCE.read_text(encoding="utf-8").lower()
|
|
self.assertNotIn("serial", rendered)
|
|
self.assertNotIn("guid", rendered)
|
|
|
|
def test_common_profile_fields_survive(self):
|
|
result = json.loads(RESULT.read_text(encoding="utf-8"))
|
|
self.assertIsNone(result["transport"])
|
|
self.assertEqual("JCZFiber", result["raw_profile"]["type"])
|
|
self.assertEqual([110, 110], result["mapped_profile"]["work_area_mm"])
|
|
self.assertEqual(
|
|
"Synthetic JCZ MOPA", result["mapped_profile"]["name"]
|
|
)
|
|
|
|
def test_jcz_specific_fields_fail_closed(self):
|
|
result = json.loads(RESULT.read_text(encoding="utf-8"))
|
|
gaps = result["gap_matrix"]
|
|
self.assertIsNone(result["mapped_profile"]["driver"])
|
|
self.assertFalse(gaps["jczfiber_driver_mapped"])
|
|
self.assertFalse(gaps["require_frame_before_start_mapped"])
|
|
self.assertFalse(gaps["cut_list_mapped"])
|
|
self.assertFalse(gaps["frequency_mapped"])
|
|
self.assertFalse(gaps["q_pulse_width_mapped"])
|
|
self.assertFalse(gaps["safe_for_jcz_use"])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|