Ускорить локальную диктовку стабильным префиксом

This commit is contained in:
2026-07-29 16:35:25 +06:00
parent 67895c6157
commit 4712c3f56e
6 changed files with 402 additions and 22 deletions
@@ -99,4 +99,75 @@ final class TextCleanerTests: XCTestCase {
"Это новое предложение."
)
}
func testStableTranscriptWaitsForSecondMatchingPass() {
var transcript = StableTranscript()
XCTAssertNil(transcript.ingest("Давай попробуем новый режим."))
XCTAssertEqual(
transcript.ingest("Давай попробуем новый режим быстрее."),
StableTranscriptUpdate(
text: "Давай попробуем новый режим",
continuesPrevious: false
)
)
}
func testStableTranscriptUsesCommittedAnchorWithoutDuplication() {
var transcript = StableTranscript()
_ = transcript.ingest("Давай попробуем новый режим.")
_ = transcript.ingest("Давай попробуем новый режим быстрее.")
XCTAssertEqual(
transcript.ingest("Новый режим быстрее без задержки."),
StableTranscriptUpdate(
text: "быстрее",
continuesPrevious: true
)
)
XCTAssertEqual(
transcript.ingest(
"Давай попробуем новый режим быстрее без задержки.",
final: true
),
StableTranscriptUpdate(
text: "без задержки.",
continuesPrevious: true
)
)
}
func testStableTranscriptDoesNotCommitChangedTail() {
var transcript = StableTranscript()
XCTAssertNil(transcript.ingest("Мы запускаем сбор лидов."))
XCTAssertEqual(
transcript.ingest("Мы запускаем редактор субтитров."),
StableTranscriptUpdate(
text: "Мы запускаем",
continuesPrevious: false
)
)
XCTAssertNil(transcript.ingest("Мы запускаем сбор лидов сейчас."))
XCTAssertEqual(
transcript.ingest("Мы запускаем сбор лидов сейчас.", final: true),
StableTranscriptUpdate(
text: "сбор лидов сейчас.",
continuesPrevious: true
)
)
}
func testStableTranscriptFallsBackToPendingTailWhenFinalPassIsEmpty() {
var transcript = StableTranscript()
XCTAssertNil(transcript.ingest("Проверяем последний фрагмент."))
XCTAssertEqual(
transcript.ingest("", final: true),
StableTranscriptUpdate(
text: "Проверяем последний фрагмент.",
continuesPrevious: false
)
)
}
}