Первый релиз WhisperKey

This commit is contained in:
2026-07-29 14:46:12 +06:00
commit 5751743277
19 changed files with 1436 additions and 0 deletions
@@ -0,0 +1,102 @@
import XCTest
@testable import WhisperKey
final class TextCleanerTests: XCTestCase {
func testGlossaryAndFillers() {
let result = TextCleaner.clean(
"Эм, проверка CompuSegro, pocketbase и caddy, короче, работает.",
removeFillers: true,
glossary: "CampusAgro, PocketBase, Caddy"
)
XCTAssertEqual(result, "Проверка CampusAgro, PocketBase и Caddy, работает.")
}
func testPreservesTextWhenFillerRemovalDisabled() {
let result = TextCleaner.clean(
"Ну вот, PocketBase работает.",
removeFillers: false,
glossary: "PocketBase"
)
XCTAssertEqual(result, "Ну вот, PocketBase работает.")
}
func testDropsCommonSilenceHallucinations() {
XCTAssertEqual(
TextCleaner.clean(
"Продолжение следует... Продолжение следует...",
removeFillers: true,
glossary: ""
),
""
)
}
func testStripsHallucinatedEndingAndAppliesPhoneticAliases() {
XCTAssertEqual(
TextCleaner.clean(
"комп Агро, Покетбейс, Постричь. SQL и Кэдди. Спасибо за просмотр.",
removeFillers: true,
glossary: "CampusAgro, PocketBase, PostgreSQL, Caddy"
),
"CampusAgro, PocketBase, PostgreSQL и Caddy"
)
}
func testDropsSubtitleCreditHallucination() {
XCTAssertEqual(
TextCleaner.clean(
"Субтитры создавал DimaTorzok",
removeFillers: true,
glossary: ""
),
""
)
}
func testRemovesEmbeddedSubtitleCreditsWithoutDroppingSpeech() {
XCTAssertEqual(
TextCleaner.clean(
"Ну запускай похуй. Редактор субтитров А.Семкин Корректор А.Егорова Сбор лидов.",
removeFillers: true,
glossary: ""
),
"Ну запускай похуй. Сбор лидов."
)
}
func testJoinsTechnicalChunksWithoutArtificialSentenceBoundary() {
XCTAssertEqual(
TranscriptJoiner.prepare(
"Модель понимает.",
continuesPrevious: true,
continuesNext: true,
glossary: ""
),
"модель понимает"
)
}
func testPreservesGlossaryCapitalizationWhenJoiningChunks() {
XCTAssertEqual(
TranscriptJoiner.prepare(
"PocketBase работает.",
continuesPrevious: true,
continuesNext: false,
glossary: "CampusAgro, PocketBase, Caddy"
),
"PocketBase работает."
)
}
func testKeepsSentenceStartAfterRealPause() {
XCTAssertEqual(
TranscriptJoiner.prepare(
"Это новое предложение.",
continuesPrevious: false,
continuesNext: false,
glossary: ""
),
"Это новое предложение."
)
}
}