diff --git a/Packages/vChewing_LangModelAssembly/Sources/LangModelAssembly/SubLMs/lmCassette.swift b/Packages/vChewing_LangModelAssembly/Sources/LangModelAssembly/SubLMs/lmCassette.swift index ee9a5c27..fad9be35 100644 --- a/Packages/vChewing_LangModelAssembly/Sources/LangModelAssembly/SubLMs/lmCassette.swift +++ b/Packages/vChewing_LangModelAssembly/Sources/LangModelAssembly/SubLMs/lmCassette.swift @@ -71,10 +71,10 @@ extension vChewingLM { if loadingCharDefinitions, strLine.contains("%chardef end") { loadingCharDefinitions = false } let cells = strLine.split(separator: " ") guard cells.count == 2 else { continue } - if loadingKeys { + if loadingKeys, !cells[0].contains("%keyname") { keyNameMap[String(cells[0])] = String(cells[1]) - } else if loadingCharDefinitions { - if !strLine.contains("%chardef") { theMaxKeyLength = max(theMaxKeyLength, cells[0].count) } + } else if loadingCharDefinitions, !strLine.contains("%chardef") { + theMaxKeyLength = max(theMaxKeyLength, cells[0].count) charDefMap[String(cells[0]), default: []].append(String(cells[1])) } guard !loadingKeys, !loadingCharDefinitions else { continue } diff --git a/Packages/vChewing_LangModelAssembly/Tests/LangModelAssemblyTests/LMCassetteTests.swift b/Packages/vChewing_LangModelAssembly/Tests/LangModelAssemblyTests/LMCassetteTests.swift index ad00a399..822d4e3d 100644 --- a/Packages/vChewing_LangModelAssembly/Tests/LangModelAssemblyTests/LMCassetteTests.swift +++ b/Packages/vChewing_LangModelAssembly/Tests/LangModelAssemblyTests/LMCassetteTests.swift @@ -23,29 +23,29 @@ final class LMCassetteTests: XCTestCase { let pathCINFile = testDataPath + "wubi98.cin" var lmCassette = vChewingLM.LMCassette() NSLog("LMCassette: Start loading CIN.") - lmCassette.open(pathCINFile) - NSLog("LMCassette: Finished loading CIN. Entries: \(lmCassette.count)") - XCTAssertEqual(lmCassette.charDefMap.count, 21492) - XCTAssertEqual(lmCassette.keyNameMap.count, 26) - XCTAssertEqual(lmCassette.nameENG, "Wubi98") - XCTAssertEqual(lmCassette.nameCJK, "五笔98") - XCTAssertEqual(lmCassette.maxKeyLength, 4) - XCTAssertEqual(lmCassette.endKeys.count, 0) - XCTAssertEqual(lmCassette.selectionKeys.count, 10) + lmCassette98.open(pathCINFile) + NSLog("LMCassette: Finished loading CIN. Entries: \(lmCassette98.count)") + XCTAssertEqual(lmCassette98.charDefMap.count, 21491) + XCTAssertEqual(lmCassette98.keyNameMap.count, 26) + XCTAssertEqual(lmCassette98.nameENG, "Wubi98") + XCTAssertEqual(lmCassette98.nameCJK, "五笔98") + XCTAssertEqual(lmCassette98.maxKeyLength, 4) + XCTAssertEqual(lmCassette98.endKeys.count, 0) + XCTAssertEqual(lmCassette98.selectionKeys.count, 10) } func testCassetteLoadWubi86() throws { let pathCINFile = testDataPath + "wubi86.cin" var lmCassette = vChewingLM.LMCassette() NSLog("LMCassette: Start loading CIN.") - lmCassette.open(pathCINFile) - NSLog("LMCassette: Finished loading CIN. Entries: \(lmCassette.count)") - XCTAssertEqual(lmCassette.charDefMap.count, 10691) - XCTAssertEqual(lmCassette.keyNameMap.count, 26) - XCTAssertEqual(lmCassette.nameENG, "Wubi86") - XCTAssertEqual(lmCassette.nameCJK, "五笔86") - XCTAssertEqual(lmCassette.maxKeyLength, 4) - XCTAssertEqual(lmCassette.endKeys.count, 0) - XCTAssertEqual(lmCassette.selectionKeys.count, 10) + lmCassette86.open(pathCINFile) + NSLog("LMCassette: Finished loading CIN. Entries: \(lmCassette86.count)") + XCTAssertEqual(lmCassette86.charDefMap.count, 10690) + XCTAssertEqual(lmCassette86.keyNameMap.count, 26) + XCTAssertEqual(lmCassette86.nameENG, "Wubi86") + XCTAssertEqual(lmCassette86.nameCJK, "五笔86") + XCTAssertEqual(lmCassette86.maxKeyLength, 4) + XCTAssertEqual(lmCassette86.endKeys.count, 0) + XCTAssertEqual(lmCassette86.selectionKeys.count, 10) } }