mirror of
https://github.com/mii443/AzooKeyKanaKanjiConverter.git
synced 2025-08-22 15:05:26 +00:00
181 lines
8.1 KiB
Swift
181 lines
8.1 KiB
Swift
//
|
|
// CharacterUtilsTests.swift
|
|
// KanaKanjiConverterModuleTests
|
|
//
|
|
// Created by ensan on 2022/12/18.
|
|
// Copyright © 2022 ensan. All rights reserved.
|
|
//
|
|
|
|
@testable import SwiftUtils
|
|
import XCTest
|
|
|
|
final class CharacterUtilsTests: XCTestCase {
|
|
|
|
func testIsKogana() throws {
|
|
XCTAssertTrue(CharacterUtils.isKogana("ぁ"))
|
|
XCTAssertTrue(CharacterUtils.isKogana("ヵ"))
|
|
XCTAssertTrue(CharacterUtils.isKogana("ッ"))
|
|
XCTAssertTrue(CharacterUtils.isKogana("ヮ"))
|
|
XCTAssertTrue(CharacterUtils.isKogana("ゎ"))
|
|
|
|
XCTAssertFalse(CharacterUtils.isKogana("あ"))
|
|
XCTAssertFalse(CharacterUtils.isKogana("カ"))
|
|
XCTAssertFalse(CharacterUtils.isKogana("a"))
|
|
XCTAssertFalse(CharacterUtils.isKogana("!"))
|
|
}
|
|
|
|
func testIsDakuten() throws {
|
|
XCTAssertTrue(CharacterUtils.isDakuten("が"))
|
|
XCTAssertTrue(CharacterUtils.isDakuten("ば"))
|
|
XCTAssertTrue(CharacterUtils.isDakuten("ダ"))
|
|
XCTAssertTrue(CharacterUtils.isDakuten("ヴ"))
|
|
XCTAssertTrue(CharacterUtils.isDakuten("ゔ"))
|
|
|
|
XCTAssertFalse(CharacterUtils.isDakuten("ぱ"))
|
|
XCTAssertFalse(CharacterUtils.isDakuten("あ"))
|
|
XCTAssertFalse(CharacterUtils.isDakuten("a"))
|
|
XCTAssertFalse(CharacterUtils.isDakuten("!"))
|
|
XCTAssertFalse(CharacterUtils.isDakuten("ん"))
|
|
}
|
|
|
|
func testIsHandakuten() throws {
|
|
XCTAssertTrue(CharacterUtils.isHandakuten("ぱ"))
|
|
XCTAssertTrue(CharacterUtils.isHandakuten("パ"))
|
|
XCTAssertTrue(CharacterUtils.isHandakuten("プ"))
|
|
XCTAssertTrue(CharacterUtils.isHandakuten("ぽ"))
|
|
XCTAssertTrue(CharacterUtils.isHandakuten("ペ"))
|
|
|
|
XCTAssertFalse(CharacterUtils.isHandakuten("ば"))
|
|
XCTAssertFalse(CharacterUtils.isHandakuten("が"))
|
|
XCTAssertFalse(CharacterUtils.isHandakuten("a"))
|
|
XCTAssertFalse(CharacterUtils.isHandakuten("!"))
|
|
XCTAssertFalse(CharacterUtils.isHandakuten("ん"))
|
|
}
|
|
|
|
func testKogaki() throws {
|
|
XCTAssertEqual(CharacterUtils.kogaki("あ"), "ぁ")
|
|
XCTAssertEqual(CharacterUtils.kogaki("カ"), "ヵ")
|
|
XCTAssertEqual(CharacterUtils.kogaki("ワ"), "ヮ")
|
|
|
|
// そのままの場合もある
|
|
XCTAssertEqual(CharacterUtils.kogaki("ん"), "ん")
|
|
XCTAssertEqual(CharacterUtils.kogaki("漢"), "漢")
|
|
XCTAssertEqual(CharacterUtils.kogaki("A"), "A")
|
|
}
|
|
|
|
func testOgaki() throws {
|
|
XCTAssertEqual(CharacterUtils.ogaki("ぁ"), "あ")
|
|
XCTAssertEqual(CharacterUtils.ogaki("ヵ"), "カ")
|
|
XCTAssertEqual(CharacterUtils.ogaki("ヮ"), "ワ")
|
|
|
|
// そのままの場合もある
|
|
XCTAssertEqual(CharacterUtils.ogaki("ん"), "ん")
|
|
XCTAssertEqual(CharacterUtils.ogaki("漢"), "漢")
|
|
XCTAssertEqual(CharacterUtils.ogaki("A"), "A")
|
|
}
|
|
|
|
func testDakuten() throws {
|
|
XCTAssertEqual(CharacterUtils.dakuten("か"), "が")
|
|
XCTAssertEqual(CharacterUtils.dakuten("う"), "ゔ")
|
|
XCTAssertEqual(CharacterUtils.dakuten("ホ"), "ボ")
|
|
// 「へ」はひらがな、カタカナの判別が難しいので、厳密にやる
|
|
XCTAssertEqual(CharacterUtils.dakuten(("へ" as Character).toHiragana()), ("べ" as Character).toHiragana())
|
|
XCTAssertEqual(CharacterUtils.dakuten(("へ" as Character).toKatakana()), ("べ" as Character).toKatakana())
|
|
|
|
// そのままの場合もある
|
|
XCTAssertEqual(CharacterUtils.dakuten("パ"), "パ")
|
|
XCTAssertEqual(CharacterUtils.dakuten("漢"), "漢")
|
|
XCTAssertEqual(CharacterUtils.dakuten("A"), "A")
|
|
}
|
|
|
|
func testMudakuten() throws {
|
|
XCTAssertEqual(CharacterUtils.mudakuten("が"), "か")
|
|
XCTAssertEqual(CharacterUtils.mudakuten("ゔ"), "う")
|
|
XCTAssertEqual(CharacterUtils.mudakuten("ボ"), "ホ")
|
|
// 「へ」はひらがな、カタカナの判別が難しいので、厳密にやる
|
|
XCTAssertEqual(CharacterUtils.mudakuten(("べ" as Character).toHiragana()), ("へ" as Character).toHiragana())
|
|
XCTAssertEqual(CharacterUtils.mudakuten(("べ" as Character).toKatakana()), ("へ" as Character).toKatakana())
|
|
|
|
// そのままの場合もある
|
|
XCTAssertEqual(CharacterUtils.mudakuten("パ"), "パ")
|
|
XCTAssertEqual(CharacterUtils.mudakuten("漢"), "漢")
|
|
XCTAssertEqual(CharacterUtils.mudakuten("A"), "A")
|
|
}
|
|
|
|
func testHandakuten() throws {
|
|
XCTAssertEqual(CharacterUtils.handakuten("は"), "ぱ")
|
|
XCTAssertEqual(CharacterUtils.handakuten("ホ"), "ポ")
|
|
// 「へ」はひらがな、カタカナの判別が難しいので、厳密にやる
|
|
XCTAssertEqual(CharacterUtils.handakuten(("へ" as Character).toHiragana()), ("ぺ" as Character).toHiragana())
|
|
XCTAssertEqual(CharacterUtils.handakuten(("へ" as Character).toKatakana()), ("ぺ" as Character).toKatakana())
|
|
|
|
// そのままの場合もある
|
|
XCTAssertEqual(CharacterUtils.handakuten("バ"), "バ")
|
|
XCTAssertEqual(CharacterUtils.handakuten("漢"), "漢")
|
|
XCTAssertEqual(CharacterUtils.handakuten("A"), "A")
|
|
}
|
|
|
|
func testMuhandakuten() throws {
|
|
XCTAssertEqual(CharacterUtils.muhandakuten("ぱ"), "は")
|
|
XCTAssertEqual(CharacterUtils.muhandakuten("ポ"), "ホ")
|
|
// 「へ」はひらがな、カタカナの判別が難しいので、厳密にやる
|
|
XCTAssertEqual(CharacterUtils.muhandakuten(("ぺ" as Character).toHiragana()), ("へ" as Character).toHiragana())
|
|
XCTAssertEqual(CharacterUtils.muhandakuten(("ぺ" as Character).toKatakana()), ("へ" as Character).toKatakana())
|
|
|
|
// そのままの場合もある
|
|
XCTAssertEqual(CharacterUtils.muhandakuten("バ"), "バ")
|
|
XCTAssertEqual(CharacterUtils.muhandakuten("漢"), "漢")
|
|
XCTAssertEqual(CharacterUtils.muhandakuten("A"), "A")
|
|
}
|
|
|
|
func testToHiragana() throws {
|
|
XCTAssertEqual(("ハ" as Character).toHiragana(), "は")
|
|
XCTAssertEqual(("ヴ" as Character).toHiragana(), "ゔ")
|
|
XCTAssertEqual(("ン" as Character).toHiragana(), "ん")
|
|
XCTAssertEqual(("ァ" as Character).toHiragana(), "ぁ")
|
|
|
|
// そのままの場合もある
|
|
XCTAssertEqual(("漢" as Character).toHiragana(), "漢")
|
|
XCTAssertEqual(("あ" as Character).toHiragana(), "あ")
|
|
XCTAssertEqual(("A" as Character).toHiragana(), "A")
|
|
}
|
|
|
|
func testToKatakana() throws {
|
|
XCTAssertEqual(("は" as Character).toKatakana(), "ハ")
|
|
XCTAssertEqual(("ゔ" as Character).toKatakana(), "ヴ")
|
|
XCTAssertEqual(("ん" as Character).toKatakana(), "ン")
|
|
XCTAssertEqual(("ぁ" as Character).toKatakana(), "ァ")
|
|
|
|
// そのままの場合もある
|
|
XCTAssertEqual(("漢" as Character).toKatakana(), "漢")
|
|
XCTAssertEqual(("ア" as Character).toKatakana(), "ア")
|
|
XCTAssertEqual(("A" as Character).toKatakana(), "A")
|
|
XCTAssertEqual(("😇" as Character).toKatakana(), "😇")
|
|
}
|
|
|
|
func testRequestChange() throws {
|
|
XCTAssertEqual(CharacterUtils.requestChange("あ"), "ぁ")
|
|
XCTAssertEqual(CharacterUtils.requestChange("ぁ"), "あ")
|
|
XCTAssertEqual(CharacterUtils.requestChange("か"), "が")
|
|
XCTAssertEqual(CharacterUtils.requestChange("が"), "か")
|
|
XCTAssertEqual(CharacterUtils.requestChange("つ"), "っ")
|
|
XCTAssertEqual(CharacterUtils.requestChange("っ"), "づ")
|
|
XCTAssertEqual(CharacterUtils.requestChange("づ"), "つ")
|
|
XCTAssertEqual(CharacterUtils.requestChange("は"), "ば")
|
|
XCTAssertEqual(CharacterUtils.requestChange("ば"), "ぱ")
|
|
XCTAssertEqual(CharacterUtils.requestChange("ぱ"), "は")
|
|
|
|
XCTAssertEqual(CharacterUtils.requestChange("a"), "A")
|
|
XCTAssertEqual(CharacterUtils.requestChange("A"), "a")
|
|
|
|
XCTAssertEqual(CharacterUtils.requestChange("Π"), "π")
|
|
XCTAssertEqual(CharacterUtils.requestChange("π"), "Π")
|
|
|
|
// そのままの場合もある
|
|
XCTAssertEqual(CharacterUtils.requestChange("バ"), "バ")
|
|
XCTAssertEqual(CharacterUtils.requestChange("漢"), "漢")
|
|
XCTAssertEqual(CharacterUtils.requestChange("。"), "。")
|
|
}
|
|
|
|
}
|