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.
This commit is contained in:
@@ -17,4 +17,25 @@ final class TranscriptLanguageDetectorTests: XCTestCase {
|
||||
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("日本語"))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user