Tekkon // 1.3.1 update.

This commit is contained in:
ShikiSuen 2022-12-15 11:02:48 +08:00
parent f9c79d06b4
commit d9e7033f90
3 changed files with 21 additions and 31 deletions

View File

@ -55,7 +55,7 @@ extension Tekkon {
switch isHanyuPinyin {
case false: //
let valReturnZhuyin = value.replacingOccurrences(of: " ", with: "")
return isTextBookStyle ? cnvZhuyinChainToTextbookReading(targetJoined: valReturnZhuyin) : valReturnZhuyin
return isTextBookStyle ? cnvPhonaToTextbookReading(target: valReturnZhuyin) : valReturnZhuyin
case true: //
let valReturnPinyin = Tekkon.cnvPhonaToHanyuPinyin(targetJoined: value)
return isTextBookStyle ? Tekkon.cnvHanyuPinyinToTextbookStyle(targetJoined: valReturnPinyin) : valReturnPinyin

View File

@ -13,7 +13,7 @@ extension Tekkon {
///
/// - Parameters:
/// - target: String
/// - targetJoined: String
public static func cnvPhonaToHanyuPinyin(targetJoined: String) -> String {
var targetConverted = targetJoined
for pair in arrPhonaToHanyuPinyin {
@ -35,42 +35,32 @@ extension Tekkon {
///
/// - Parameters:
/// - target:
/// - newSeparator:
/// - Returns:
public static func cnvZhuyinChainToTextbookReading(targetJoined: String, newSeparator: String = "-") -> String {
var arrReturn: [String] = []
for neta in targetJoined.split(separator: "-") {
var newString = String(neta)
if String(neta.reversed()[0]) == "˙" {
newString = String(neta.dropLast())
newString.insert("˙", at: newString.startIndex)
}
arrReturn.append(newString)
/// - target:
/// - Returns:
public static func cnvPhonaToTextbookReading(target: String) -> String {
var newString = target
if String(target.reversed()[0]) == "˙" {
newString = String(target.dropLast())
newString.insert("˙", at: newString.startIndex)
}
return arrReturn.joined(separator: newSeparator)
return newString
}
/// 調1
/// - Parameters:
/// - target:
/// - newSeparator:
/// - Returns:
public static func restoreToneOneInZhuyinKey(targetJoined: String, newSeparator: String = "-") -> String {
var arrReturn: [String] = []
for neta in targetJoined.split(separator: "-") {
var newNeta = String(neta)
if !"ˊˇˋ˙".contains(String(neta.reversed()[0])), !neta.contains("_") {
newNeta += "1"
}
arrReturn.append(newNeta)
}
return arrReturn.joined(separator: newSeparator)
/// - target:
/// - Returns:
public static func restoreToneOneInPhona(
target: String
) -> String {
var newNeta = target
if !"ˊˇˋ˙".contains(String(target.reversed()[0])), !target.contains("_") { newNeta += "1" }
return newNeta
}
///
/// - Parameters:
/// - target: 12345 調
/// - targetJoined: 12345 調
/// - newToneOne:
/// - Returns:
public static func cnvHanyuPinyinToPhona(targetJoined: String, newToneOne: String = "") -> String {

View File

@ -167,8 +167,8 @@ final class TekkonTestsBasic: XCTestCase {
XCTAssertEqual(composer.getComposition(), "ㄩㄝ")
// Testing tool functions
XCTAssertEqual(Tekkon.restoreToneOneInZhuyinKey(targetJoined: "ㄉㄧㄠ"), "ㄉㄧㄠ1")
XCTAssertEqual(Tekkon.cnvZhuyinChainToTextbookReading(targetJoined: "ㄊㄧㄥ-ㄓㄜ˙"), "ㄊㄧㄥ-˙ㄓㄜ")
XCTAssertEqual(Tekkon.restoreToneOneInPhona(target: "ㄉㄧㄠ"), "ㄉㄧㄠ1")
XCTAssertEqual(Tekkon.cnvPhonaToTextbookReading(target: "ㄓㄜ˙"), "˙ㄓㄜ")
XCTAssertEqual(Tekkon.cnvHanyuPinyinToPhona(targetJoined: "bian4-le5-tian1"), "ㄅㄧㄢˋ-ㄌㄜ˙-ㄊㄧㄢ")
//
XCTAssertEqual(Tekkon.cnvHanyuPinyinToPhona(targetJoined: "ㄅㄧㄢˋ-˙ㄌㄜ-ㄊㄧㄢ"), "ㄅㄧㄢˋ-˙ㄌㄜ-ㄊㄧㄢ")