Files
ggbond268--mactools/Plugins/Translator/Tests/AutomaticLanguageSelectorTests.swift
wehub-resource-sync 1d1286fadb
Build / Build and test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:18:38 +08:00

55 lines
1.9 KiB
Swift

import Foundation
import XCTest
@testable import TranslatorPlugin
final class AutomaticLanguageSelectorTests: XCTestCase {
func testEnglishSourceTargetsFirstPreferredChinese() {
let selector = AutomaticLanguageSelector(
detector: StubLanguageDetector(language: .english),
preferredPair: TranslatorLanguagePair(first: .simplifiedChinese, second: .english)
)
let selection = selector.select(text: "Hello")
XCTAssertEqual(selection.source, .english)
XCTAssertEqual(selection.target, .simplifiedChinese)
XCTAssertFalse(selection.sourceIsAutomatic)
XCTAssertEqual(selection.sourceDisplayName, "英语")
}
func testFirstPreferredSourceTargetsSecondPreferredEnglish() {
let selector = AutomaticLanguageSelector(
detector: StubLanguageDetector(language: .simplifiedChinese),
preferredPair: TranslatorLanguagePair(first: .simplifiedChinese, second: .english)
)
let selection = selector.select(text: "你好")
XCTAssertEqual(selection.source, .simplifiedChinese)
XCTAssertEqual(selection.target, .english)
XCTAssertFalse(selection.sourceIsAutomatic)
}
func testUnknownSourceUsesAutomaticSourceAndFirstPreferredTarget() {
let selector = AutomaticLanguageSelector(
detector: StubLanguageDetector(language: nil),
preferredPair: TranslatorLanguagePair(first: .simplifiedChinese, second: .english)
)
let selection = selector.select(text: "123")
XCTAssertNil(selection.source)
XCTAssertEqual(selection.target, .simplifiedChinese)
XCTAssertTrue(selection.sourceIsAutomatic)
XCTAssertEqual(selection.sourceDisplayName, "自动检测")
}
}
private struct StubLanguageDetector: LanguageDetecting {
let language: TranslatorLanguage?
func detect(_ text: String) -> TranslatorLanguage? {
language
}
}