from pathlib import Path import unittest from Infinity_Vis_1.infinity_vis_1.mapping_xml import load_mapping, load_mapping_from_string, mapping_to_xml_string class MappingXmlTests(unittest.TestCase): def test_load_sample_mapping(self) -> None: path = Path(__file__).resolve().parents[2] / "sample_data" / "infinity_mirror_mapping_clean.xml" mapping = load_mapping(path) self.assertEqual(mapping.rows, 3) self.assertEqual(mapping.cols, 6) self.assertEqual(len(mapping.tiles), 18) self.assertEqual(mapping.tiles[0].led_total, 106) def test_round_trip_preserves_tile_count(self) -> None: path = Path(__file__).resolve().parents[2] / "sample_data" / "infinity_mirror_mapping_clean.xml" mapping = load_mapping(path) xml_text = mapping_to_xml_string(mapping) restored = load_mapping_from_string(xml_text) self.assertEqual(len(restored.tiles), len(mapping.tiles)) self.assertEqual(restored.rows, mapping.rows) self.assertEqual(restored.cols, mapping.cols) if __name__ == "__main__": unittest.main()