Files
vorleser/VorleserKit/Tests/VorleserKitTests/SentenceSegmenterTests.swift

40 lines
1.2 KiB
Swift

import Testing
@testable import VorleserKit
@Suite("SentenceSegmenter")
struct SentenceSegmenterTests {
@Test func segmentsSimpleSentences() {
let text = "Hello world. How are you? I am fine."
let sentences = SentenceSegmenter.segment(text)
#expect(sentences.count == 3)
#expect(sentences[0].text == "Hello world.")
#expect(sentences[1].text == "How are you?")
#expect(sentences[2].text == "I am fine.")
}
@Test func handlesAbbreviations() {
let text = "Dr. Smith went to Washington. He arrived at 3 p.m."
let sentences = SentenceSegmenter.segment(text)
// NLTokenizer should handle "Dr." without splitting
#expect(sentences.count == 2)
}
@Test func appliesGlobalOffset() {
let text = "First sentence. Second sentence."
let sentences = SentenceSegmenter.segment(text, globalOffset: 100)
#expect(sentences[0].range.lowerBound >= 100)
}
@Test func handlesEmptyText() {
let sentences = SentenceSegmenter.segment("")
#expect(sentences.isEmpty)
}
@Test func handlesSingleSentence() {
let text = "Just one sentence."
let sentences = SentenceSegmenter.segment(text)
#expect(sentences.count == 1)
#expect(sentences[0].text == "Just one sentence.")
}
}