Files
wisper-key/Tests/WhisperKeyTests/TextCleanerTests.swift
T

103 lines
3.3 KiB
Swift

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: ""
),
"Это новое предложение."
)
}
}