LMCassette // Fix an issue of adding invalid contents to dictionary.
This commit is contained in:
parent
dfcb99eebe
commit
da891266f5
|
@ -71,10 +71,10 @@ extension vChewingLM {
|
||||||
if loadingCharDefinitions, strLine.contains("%chardef end") { loadingCharDefinitions = false }
|
if loadingCharDefinitions, strLine.contains("%chardef end") { loadingCharDefinitions = false }
|
||||||
let cells = strLine.split(separator: " ")
|
let cells = strLine.split(separator: " ")
|
||||||
guard cells.count == 2 else { continue }
|
guard cells.count == 2 else { continue }
|
||||||
if loadingKeys {
|
if loadingKeys, !cells[0].contains("%keyname") {
|
||||||
keyNameMap[String(cells[0])] = String(cells[1])
|
keyNameMap[String(cells[0])] = String(cells[1])
|
||||||
} else if loadingCharDefinitions {
|
} else if loadingCharDefinitions, !strLine.contains("%chardef") {
|
||||||
if !strLine.contains("%chardef") { theMaxKeyLength = max(theMaxKeyLength, cells[0].count) }
|
theMaxKeyLength = max(theMaxKeyLength, cells[0].count)
|
||||||
charDefMap[String(cells[0]), default: []].append(String(cells[1]))
|
charDefMap[String(cells[0]), default: []].append(String(cells[1]))
|
||||||
}
|
}
|
||||||
guard !loadingKeys, !loadingCharDefinitions else { continue }
|
guard !loadingKeys, !loadingCharDefinitions else { continue }
|
||||||
|
|
|
@ -23,29 +23,29 @@ final class LMCassetteTests: XCTestCase {
|
||||||
let pathCINFile = testDataPath + "wubi98.cin"
|
let pathCINFile = testDataPath + "wubi98.cin"
|
||||||
var lmCassette = vChewingLM.LMCassette()
|
var lmCassette = vChewingLM.LMCassette()
|
||||||
NSLog("LMCassette: Start loading CIN.")
|
NSLog("LMCassette: Start loading CIN.")
|
||||||
lmCassette.open(pathCINFile)
|
lmCassette98.open(pathCINFile)
|
||||||
NSLog("LMCassette: Finished loading CIN. Entries: \(lmCassette.count)")
|
NSLog("LMCassette: Finished loading CIN. Entries: \(lmCassette98.count)")
|
||||||
XCTAssertEqual(lmCassette.charDefMap.count, 21492)
|
XCTAssertEqual(lmCassette98.charDefMap.count, 21491)
|
||||||
XCTAssertEqual(lmCassette.keyNameMap.count, 26)
|
XCTAssertEqual(lmCassette98.keyNameMap.count, 26)
|
||||||
XCTAssertEqual(lmCassette.nameENG, "Wubi98")
|
XCTAssertEqual(lmCassette98.nameENG, "Wubi98")
|
||||||
XCTAssertEqual(lmCassette.nameCJK, "五笔98")
|
XCTAssertEqual(lmCassette98.nameCJK, "五笔98")
|
||||||
XCTAssertEqual(lmCassette.maxKeyLength, 4)
|
XCTAssertEqual(lmCassette98.maxKeyLength, 4)
|
||||||
XCTAssertEqual(lmCassette.endKeys.count, 0)
|
XCTAssertEqual(lmCassette98.endKeys.count, 0)
|
||||||
XCTAssertEqual(lmCassette.selectionKeys.count, 10)
|
XCTAssertEqual(lmCassette98.selectionKeys.count, 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testCassetteLoadWubi86() throws {
|
func testCassetteLoadWubi86() throws {
|
||||||
let pathCINFile = testDataPath + "wubi86.cin"
|
let pathCINFile = testDataPath + "wubi86.cin"
|
||||||
var lmCassette = vChewingLM.LMCassette()
|
var lmCassette = vChewingLM.LMCassette()
|
||||||
NSLog("LMCassette: Start loading CIN.")
|
NSLog("LMCassette: Start loading CIN.")
|
||||||
lmCassette.open(pathCINFile)
|
lmCassette86.open(pathCINFile)
|
||||||
NSLog("LMCassette: Finished loading CIN. Entries: \(lmCassette.count)")
|
NSLog("LMCassette: Finished loading CIN. Entries: \(lmCassette86.count)")
|
||||||
XCTAssertEqual(lmCassette.charDefMap.count, 10691)
|
XCTAssertEqual(lmCassette86.charDefMap.count, 10690)
|
||||||
XCTAssertEqual(lmCassette.keyNameMap.count, 26)
|
XCTAssertEqual(lmCassette86.keyNameMap.count, 26)
|
||||||
XCTAssertEqual(lmCassette.nameENG, "Wubi86")
|
XCTAssertEqual(lmCassette86.nameENG, "Wubi86")
|
||||||
XCTAssertEqual(lmCassette.nameCJK, "五笔86")
|
XCTAssertEqual(lmCassette86.nameCJK, "五笔86")
|
||||||
XCTAssertEqual(lmCassette.maxKeyLength, 4)
|
XCTAssertEqual(lmCassette86.maxKeyLength, 4)
|
||||||
XCTAssertEqual(lmCassette.endKeys.count, 0)
|
XCTAssertEqual(lmCassette86.endKeys.count, 0)
|
||||||
XCTAssertEqual(lmCassette.selectionKeys.count, 10)
|
XCTAssertEqual(lmCassette86.selectionKeys.count, 10)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue