import unittest from run import source_intersection class Mapping(unittest.TestCase): def test_units_and_nonzero_origin_once(self): interval = source_intersection([10, 25], 16000, 5125) self.assertEqual(interval["source_samples"], [1600, 4000]) self.assertEqual(interval["source_absolute_ms"], [5225, 5375]) def test_padded_tail_keeps_raw_evidence(self): interval = source_intersection([90, 102], 16001, 0) self.assertEqual(interval["raw_cs"], [90, 102]) self.assertEqual(interval["source_samples"], [14400, 16001]) self.assertEqual(interval["tail_padding_samples"], 319) def test_synthetic_only_interval_has_empty_source_intersection(self): self.assertEqual(source_intersection([101, 102], 16001, 0)["source_samples"], [16001, 16001]) def test_bad_units_and_order_fail(self): for interval in ([0.1, 2], [-1, 2], [2, 2], [3, 2]): with self.subTest(interval=interval), self.assertRaises(ValueError): source_intersection(interval, 16000, 0) if __name__ == "__main__": unittest.main()