Files
OSGKeyboard/OSGKeyboardTests/TranscriptLanguageDetectorTests.swift
T
Rocky 9f308fadd2 feat(keyboard): ship AI hint carousel, home library cards, and clipboard polish
Rotate AI idle suggestions with optional remote packs, move history/dictionary onto self-sizing Home preview cards, harden clipboard capture/prompting, and simplify keyboard chrome by dropping most liquid-glass shadows.
2026-08-13 01:00:51 +08:00

42 lines
1.8 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import XCTest
@testable import OSGKeyboardShared
final class TranscriptLanguageDetectorTests: XCTestCase {
func testChineseAndMixedInputPreferChineseGuidance() {
XCTAssertTrue(TranscriptLanguageDetector.prefersChineseGuidance("今天开会讨论 roadmap"))
XCTAssertTrue(TranscriptLanguageDetector.prefersChineseGuidance("把 PRD 发给 Ali review"))
}
func testEnglishJapaneseAndKoreanDoNotPreferChineseGuidance() {
XCTAssertFalse(TranscriptLanguageDetector.prefersChineseGuidance("ship it tomorrow"))
XCTAssertFalse(TranscriptLanguageDetector.prefersChineseGuidance("こんにちは"))
XCTAssertFalse(TranscriptLanguageDetector.prefersChineseGuidance("안녕하세요"))
}
func testNumbersHaveNoScriptSignal() {
XCTAssertEqual(TranscriptLanguageDetector.cjkRatio("12345"), 0)
XCTAssertEqual(TranscriptLanguageDetector.cjkRatio(""), 0)
}
func testHanRangeBoundariesRemainStable() {
let hanScalars = [0x3400, 0x4DBF, 0x4E00, 0x9FFF, 0xF900, 0xFAFF]
.compactMap(UnicodeScalar.init)
.map(String.init)
.joined()
XCTAssertEqual(TranscriptLanguageDetector.cjkRatio(hanScalars), 1)
XCTAssertTrue(RimePinyinAnnotator.containsCJK(hanScalars))
XCTAssertFalse(PersonalDictionary.isEnglishTypingHotword("产品GPT"))
}
func testKanaHangulAndFullwidthLatinAreNotHanIdeographs() {
let nonHan = "こんにちは안녕하세요A"
XCTAssertEqual(TranscriptLanguageDetector.cjkRatio(nonHan), 0)
XCTAssertFalse(RimePinyinAnnotator.containsCJK(nonHan))
XCTAssertTrue(PersonalDictionary.isEnglishTypingHotword("PT"))
}
func testJapaneseTextContainingHanKeepsCurrentHanSignal() {
XCTAssertTrue(TranscriptLanguageDetector.prefersChineseGuidance("日本語"))
}
}