9f308fadd2
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.
42 lines
1.8 KiB
Swift
42 lines
1.8 KiB
Swift
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("GPT"))
|
||
}
|
||
|
||
func testJapaneseTextContainingHanKeepsCurrentHanSignal() {
|
||
XCTAssertTrue(TranscriptLanguageDetector.prefersChineseGuidance("日本語"))
|
||
}
|
||
}
|