import { describe, expect, it } from 'vitest'; import { assignSpeakerToWord, assignSpeakersToWords } from './speakerAssignment'; describe('speakerAssignment', () => { it('assigns each word to the speaker segment with the maximum overlap', () => { const speakerId = assignSpeakerToWord( { text: 'hello', startTime: 1.0, endTime: 1.4, speakerId: 'unknown', confidence: 0.95 }, [ { speakerId: 'spk_0', startTime: 0.8, endTime: 1.1 }, { speakerId: 'spk_1', startTime: 1.1, endTime: 1.6 }, ], ); expect(speakerId).toBe('spk_1'); }); it('falls back to unknown when a word has no overlapping speaker segments', () => { const words = assignSpeakersToWords( [{ text: 'hello', startTime: 1.0, endTime: 1.4, speakerId: 'unknown', confidence: 0.95 }], [{ speakerId: 'spk_0', startTime: 2.0, endTime: 2.5 }], ); expect(words[0].speakerId).toBe('unknown'); }); });