Skip to content

Commit

Permalink
Fix how Hsu arrange handles "v" key by default, etc. (#27)
Browse files Browse the repository at this point in the history
* Updated test cases for Dachen (Traditional and 26).

* Hsu // Let "v" type "ㄔ" by default.
  • Loading branch information
ShikiSuen authored Jun 2, 2022
1 parent 8955062 commit 981a4ae
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 21 deletions.
5 changes: 2 additions & 3 deletions Sources/Tekkon/TekkonSyllableComposer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -670,7 +670,7 @@ public struct Tekkon {
default: break
}
}
case "":
case "":
if intonation.isEmpty {
switch incomingPhonabet {
case "": consonant = "" // ㄐㄧ
Expand Down Expand Up @@ -718,7 +718,6 @@ public struct Tekkon {
consonant.selfReplace("", "")
consonant.selfReplace("", "")
}
if vowel == "", semivowel.isEmpty { consonant.selfReplace("", "") }
if consonant == "", semivowel.isEmpty, vowel.isEmpty {
consonant = ""
vowel = ""
Expand Down Expand Up @@ -1289,7 +1288,7 @@ public struct Tekkon {
/// 這裡提前對複音按鍵做處理,然後再用程式判斷介母類型、據此判斷是否需要做複音切換。
static let mapHsuStaticKeys: [String: String] = [
"a": "", "b": "", "c": "", "d": "", "e": "", "f": "", "g": "", "h": "", "i": "", "j": "", "k": "",
"l": "", "m": "", "n": "", "o": "", "p": "", "r": "", "s": "", "t": "", "u": "", "v": "", "w": "",
"l": "", "m": "", "n": "", "o": "", "p": "", "r": "", "s": "", "t": "", "u": "", "v": "", "w": "",
"x": "", "y": "", "z": "", " ": " ",
]

Expand Down
44 changes: 26 additions & 18 deletions Tests/TekkonTests/TekkonTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -354,31 +354,39 @@ final class TekkonTests: XCTestCase {
func testQwertyDachenKeys() throws {
// Testing Dachen Traditional Mapping (QWERTY)
var composer = Tekkon.Composer(arrange: .ofDachen)
XCTAssertEqual(composer.convertSequenceToRawComposition("1l3"), "ㄅㄠˇ")
XCTAssertEqual(composer.convertSequenceToRawComposition("ek "), "ㄍㄜ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("18 "), "ㄅㄚ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("m,4"), "ㄩㄝˋ")
XCTAssertEqual(composer.convertSequenceToRawComposition("5j/ "), "ㄓㄨㄥ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("fu."), "ㄑㄧㄡ")
XCTAssertEqual(composer.convertSequenceToRawComposition("g0 "), "ㄕㄢ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("xup6"), "ㄌㄧㄣˊ")
XCTAssertEqual(composer.convertSequenceToRawComposition("xu;6"), "ㄌㄧㄤˊ")
XCTAssertEqual(composer.convertSequenceToRawComposition("z/"), "ㄈㄥ")
XCTAssertEqual(composer.convertSequenceToRawComposition("tjo "), "ㄔㄨㄟ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("284"), "ㄉㄚˋ")
XCTAssertEqual(composer.convertSequenceToRawComposition("g83"), "ㄕㄚˇ")
XCTAssertEqual(composer.convertSequenceToRawComposition("1u "), "ㄅㄧ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("ao6"), "ㄇㄟˊ")
XCTAssertEqual(composer.convertSequenceToRawComposition("u.3"), "ㄧㄡˇ")
XCTAssertEqual(composer.convertSequenceToRawComposition("vul3"), "ㄒㄧㄠˇ")
XCTAssertEqual(composer.convertSequenceToRawComposition("ru "), "ㄐㄧ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("ru"), "ㄐㄧ")
XCTAssertEqual(composer.convertSequenceToRawComposition("2u4"), "ㄉㄧˋ")
XCTAssertEqual(composer.convertSequenceToRawComposition("hl3"), "ㄘㄠˇ")
XCTAssertEqual(composer.convertSequenceToRawComposition("5 "), "")
XCTAssertEqual(composer.convertSequenceToRawComposition("193"), "ㄅㄞˇ")
}

func testDachen26Keys() throws {
// Testing handleDachen26()
var composer = Tekkon.Composer(arrange: .ofDachen26)
XCTAssertEqual(composer.convertSequenceToRawComposition("qqlr"), "ㄅㄠˇ")
XCTAssertEqual(composer.convertSequenceToRawComposition("ek "), "ㄍㄜ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("qquu "), "ㄅㄚ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("mbbd"), "ㄩㄝˋ")
XCTAssertEqual(composer.convertSequenceToRawComposition("ttjnn "), "ㄓㄨㄥ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("fum"), "ㄑㄧㄡ")
XCTAssertEqual(composer.convertSequenceToRawComposition("goo "), "ㄕㄢ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("xupe"), "ㄌㄧㄣˊ")
XCTAssertEqual(composer.convertSequenceToRawComposition("xulle"), "ㄌㄧㄤˊ")
XCTAssertEqual(composer.convertSequenceToRawComposition("zn"), "ㄈㄥ")
XCTAssertEqual(composer.convertSequenceToRawComposition("tjo "), "ㄔㄨㄟ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("wwuud"), "ㄉㄚˋ")
XCTAssertEqual(composer.convertSequenceToRawComposition("guur"), "ㄕㄚˇ")
XCTAssertEqual(composer.convertSequenceToRawComposition("qqu "), "ㄅㄧ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("aoe"), "ㄇㄟˊ")
XCTAssertEqual(composer.convertSequenceToRawComposition("umr"), "ㄧㄡˇ")
XCTAssertEqual(composer.convertSequenceToRawComposition("vulr"), "ㄒㄧㄠˇ")
XCTAssertEqual(composer.convertSequenceToRawComposition("ru "), "ㄐㄧ ")
XCTAssertEqual(composer.convertSequenceToRawComposition("ru"), "ㄐㄧ")
XCTAssertEqual(composer.convertSequenceToRawComposition("wwud"), "ㄉㄧˋ")
XCTAssertEqual(composer.convertSequenceToRawComposition("hlr"), "ㄘㄠˇ")
XCTAssertEqual(composer.convertSequenceToRawComposition("tt "), "")
XCTAssertEqual(composer.convertSequenceToRawComposition("qqiir"), "ㄅㄞˇ")
}

func testEten26Keys() throws {
Expand Down

0 comments on commit 981a4ae

Please sign in to comment.