ThePirateRay/tests/test_rayforge_lightburn_import_spike.py

38 lines
1.7 KiB
Python

import json
import unittest
from pathlib import Path
from xml.etree import ElementTree as ET
ROOT = Path(__file__).parents[1]
RESULT = ROOT / "tests" / "fixtures" / "rayforge-lightburn-mopa-import.json"
SOURCE = ROOT / "tests" / "fixtures" / "synthetic-mopa-import.lbrn2"
class RayforgeLightBurnImportSpikeTests(unittest.TestCase):
def test_public_fixture_is_small_and_synthetic(self):
root = ET.fromstring(SOURCE.read_bytes())
self.assertEqual("synthetic-public-fixture", root.get("AppVersion"))
self.assertEqual(1, len(root.findall("Shape")))
self.assertNotIn("serial", SOURCE.read_text(encoding="utf-8").lower())
def test_observed_values_survive_raw_import(self):
result = json.loads(RESULT.read_text(encoding="utf-8"))
self.assertIsNone(result["transport"])
self.assertEqual(40000, result["raw_cut_setting"]["frequency"])
self.assertEqual(0.5, result["mapped_layer_settings"]["power"])
self.assertEqual(15000, result["mapped_layer_settings"]["cut_speed"])
self.assertEqual([54.0, 54.0, 56.0, 56.0], result["geometry_bounds_mm"])
def test_incomplete_mopa_import_fails_the_encoding_gate(self):
result = json.loads(RESULT.read_text(encoding="utf-8"))
survival = result["mopa_survival"]
self.assertTrue(survival["frequency_preserved_in_source_metadata"])
self.assertFalse(survival["frequency_mapped_to_workflow"])
self.assertFalse(survival["pulse_width_source_field_observed"])
self.assertFalse(survival["pulse_width_mapped_to_workflow"])
self.assertFalse(survival["safe_for_jcz_encoding"])
if __name__ == "__main__":
unittest.main()