def test_align_assigns_speaker_by_overlap(): from alignment import align_segments whisper = [ {"start": 0.0, "end": 2.0, "text": "Hallo"}, {"start": 2.1, "end": 4.0, "text": "Wie geht es"}, ] speakers = [ (0.0, 2.5, "SPEAKER_00"), (2.5, 5.0, "SPEAKER_01"), ] result = align_segments(whisper, speakers) assert result[0] == ("SPEAKER_00", "Hallo") assert result[1] == ("SPEAKER_01", "Wie geht es") def test_align_merges_consecutive_same_speaker(): from alignment import align_segments whisper = [ {"start": 0.0, "end": 1.0, "text": "Hallo"}, {"start": 1.1, "end": 2.0, "text": "Welt"}, ] speakers = [(0.0, 3.0, "SPEAKER_00")] result = align_segments(whisper, speakers) assert len(result) == 1 assert result[0] == ("SPEAKER_00", "Hallo Welt") def test_align_fallback_when_no_speaker_overlap(): from alignment import align_segments whisper = [{"start": 0.0, "end": 1.0, "text": "Hallo"}] speakers = [] result = align_segments(whisper, speakers) assert result[0][0] == "SPEAKER_00"