import unittest from dtw_alignment import aligned_segments class DtwTests(unittest.TestCase): def raw(self): return {"transcription": [{"text": " Hello. Again!", "offsets": {"from": 0, "to": 1000}, "tokens": [{"id": 100, "text": " Hello.", "t_dtw": 20, "offsets": {"from": 900, "to": 100}}, {"id": 101, "text": " Again!", "t_dtw": 70}]}]} def test_points_are_centiseconds_and_ordinary_reversal_not_repaired(self): result = aligned_segments(self.raw(), 30000, 1000) self.assertEqual([(r["start_ms"], r["end_ms"]) for r in result], [(30200, 30200), (30700, 30700)]) self.assertEqual("".join(r["text"] for r in result), " Hello. Again!") def test_invalid_missing_fractional_and_nonmonotonic_points_rejected(self): for point in [-1, 101, 1.5, None, 10]: raw = self.raw() raw["transcription"][0]["tokens"][1]["t_dtw"] = point with self.assertRaises(ValueError): aligned_segments(raw, 0, 1000)