Move to root

This commit is contained in:
ensan
2023-07-23 00:34:27 +09:00
parent 6c0efe4d92
commit 98bc180c17
85 changed files with 22 additions and 74 deletions

View File

@ -0,0 +1,57 @@
//
// AppVersionTests.swift
// azooKeyTests
//
// Created by ensan on 2022/12/19.
// Copyright © 2022 ensan. All rights reserved.
//
@testable import SwiftUtils
import XCTest
final class AppVersionTests: XCTestCase {
func testInitFromString() throws {
do {
let version = AppVersion("1.9.3")
XCTAssertNotNil(version)
XCTAssertEqual(version!.majorVersion, 1)
XCTAssertEqual(version!.minorVersion, 9)
XCTAssertEqual(version!.patchVersion, 3)
}
do {
let version = AppVersion("1.10")
XCTAssertNotNil(version)
XCTAssertEqual(version!.majorVersion, 1)
XCTAssertEqual(version!.minorVersion, 10)
XCTAssertEqual(version!.patchVersion, 0)
}
do {
let version = AppVersion("1")
XCTAssertNotNil(version)
XCTAssertEqual(version!.majorVersion, 1)
XCTAssertEqual(version!.minorVersion, 0)
XCTAssertEqual(version!.patchVersion, 0)
}
do {
let version = AppVersion("X")
XCTAssertNil(version)
}
}
func testComparable() throws {
XCTAssertTrue(AppVersion("1.9.1")! < AppVersion("1.10")!)
XCTAssertTrue(AppVersion("1.7")! < AppVersion("1.7.1")!)
XCTAssertTrue(AppVersion("1.10")! < AppVersion("2.1")!)
XCTAssertFalse(AppVersion("1.9.1")! < AppVersion("1.9.1")!)
XCTAssertFalse(AppVersion("2.5")! < AppVersion("2.4.9")!)
XCTAssertTrue(AppVersion("2.5")! > AppVersion("2.4.9")!)
XCTAssertTrue(AppVersion("3.1")! > AppVersion("1.4.9")!)
XCTAssertFalse(AppVersion("1.9.1")! > AppVersion("1.9.1")!)
XCTAssertFalse(AppVersion("1.9.1")! > AppVersion("1.10")!)
XCTAssertFalse(AppVersion("1.7")! > AppVersion("1.7.1")!)
XCTAssertFalse(AppVersion("1.10")! > AppVersion("2.1")!)
}
}

View File

@ -0,0 +1,192 @@
//
// 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 testIsRomanLetter() throws {
XCTAssertTrue(CharacterUtils.isRomanLetter("a"))
XCTAssertTrue(CharacterUtils.isRomanLetter("A"))
XCTAssertTrue(CharacterUtils.isRomanLetter("b"))
XCTAssertFalse(CharacterUtils.isRomanLetter(""))
XCTAssertFalse(CharacterUtils.isRomanLetter("'"))
XCTAssertFalse(CharacterUtils.isRomanLetter(""))
XCTAssertFalse(CharacterUtils.isRomanLetter(""))
XCTAssertFalse(CharacterUtils.isRomanLetter("!"))
}
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(""), "")
}
}

View File

@ -0,0 +1,34 @@
//
// StringExtensionTests.swift
// azooKeyTests
//
// Created by ensan on 2022/12/23.
// Copyright © 2022 ensan. All rights reserved.
//
@testable import SwiftUtils
import XCTest
final class StringExtensionTests: XCTestCase {
func testToKatakana() throws {
XCTAssertEqual("かゔぁあーんじょ123+++リスク".toKatakana(), "カヴァアーンジョ123+++リスク")
XCTAssertEqual("".toKatakana(), "")
XCTAssertEqual("コレハロン".toKatakana(), "コレハロン")
}
func testToHiragana() throws {
XCTAssertEqual("カヴァアーンじょ123+++リスク".toHiragana(), "かゔぁあーんじょ123+++りすく")
XCTAssertEqual("".toHiragana(), "")
XCTAssertEqual("これはろん".toHiragana(), "これはろん")
}
func testIndexFromStart() throws {
do {
let string = "ア❤️‍🔥ウ😇オ"
XCTAssertEqual(string[string.indexFromStart(3)], "😇")
XCTAssertEqual(string[string.indexFromStart(4)], "")
}
}
}

View File

@ -0,0 +1,91 @@
//
// StringUtilsTests.swift
// KanaKanjiConverterModuleTests
//
// Created by ensan on 2022/12/18.
// Copyright © 2022 ensan. All rights reserved.
//
@testable import SwiftUtils
import XCTest
final class StringTests: XCTestCase {
func testIsKana() throws {
XCTAssertTrue("".isKana)
XCTAssertTrue("".isKana)
XCTAssertTrue("".isKana)
XCTAssertTrue("".isKana)
XCTAssertTrue("".isKana)
XCTAssertTrue("".isKana)
XCTAssertFalse("k".isKana)
XCTAssertFalse("@".isKana)
XCTAssertFalse("".isKana) //
}
func testOnlyRomanAlphabetOrNumber() throws {
XCTAssertTrue("and13".onlyRomanAlphabetOrNumber)
XCTAssertTrue("vmaoNFIU".onlyRomanAlphabetOrNumber)
XCTAssertTrue("1332".onlyRomanAlphabetOrNumber)
// false
XCTAssertFalse("".onlyRomanAlphabetOrNumber)
XCTAssertFalse("and 13".onlyRomanAlphabetOrNumber)
XCTAssertFalse("can't".onlyRomanAlphabetOrNumber)
XCTAssertFalse("Mt.".onlyRomanAlphabetOrNumber)
}
func testOnlyRomanAlphabet() throws {
XCTAssertTrue("vmaoNFIU".onlyRomanAlphabet)
XCTAssertTrue("NAO".onlyRomanAlphabet)
// false
XCTAssertFalse("".onlyRomanAlphabet)
XCTAssertFalse("and 13".onlyRomanAlphabet)
XCTAssertFalse("can't".onlyRomanAlphabet)
XCTAssertFalse("Mt.".onlyRomanAlphabet)
XCTAssertFalse("and13".onlyRomanAlphabet)
XCTAssertFalse("vmaoNFIU83942".onlyRomanAlphabet)
}
func testContainsRomanAlphabet() throws {
XCTAssertTrue("vmaoNFIU".containsRomanAlphabet)
XCTAssertTrue("変数x".containsRomanAlphabet)
XCTAssertTrue("and 13".containsRomanAlphabet)
XCTAssertTrue("can't".containsRomanAlphabet)
XCTAssertTrue("Mt.".containsRomanAlphabet)
XCTAssertTrue("(^v^)".containsRomanAlphabet)
// false
XCTAssertFalse("".containsRomanAlphabet)
XCTAssertFalse("!?!?".containsRomanAlphabet)
XCTAssertFalse("(^_^)".containsRomanAlphabet)
XCTAssertFalse("問題ア".containsRomanAlphabet)
}
func testIsEnglishSentence() throws {
XCTAssertTrue("Is this an English sentence?".isEnglishSentence)
XCTAssertTrue("English sentences can include symbols like '!?/\\=-+^`{}()[].".isEnglishSentence)
// false
XCTAssertFalse("".isEnglishSentence)
XCTAssertFalse("The word '変数' is not an English word.".isEnglishSentence)
XCTAssertFalse("これは完全に日本語の文章です".isEnglishSentence)
}
func testToKatakana() throws {
XCTAssertEqual("あいうえお".toKatakana(), "アイウエオ")
XCTAssertEqual("これは日本語の文章です".toKatakana(), "コレハ日本語ノ文章デス")
XCTAssertEqual("えモじ😇".toKatakana(), "エモジ😇")
}
func testToHiragana() throws {
XCTAssertEqual("アイウエオ".toHiragana(), "あいうえお")
XCTAssertEqual("僕はロボットです".toHiragana(), "僕はろぼっとです")
XCTAssertEqual("えモじ😇".toHiragana(), "えもじ😇")
}
func testPerformanceExample() throws {
}
}

View File

@ -0,0 +1,21 @@
//
// WithMutableValueTests.swift
// azooKeyTests
//
// Created by ensan on 2022/12/22.
// Copyright © 2022 ensan. All rights reserved.
//
@testable import SwiftUtils
import XCTest
final class WithMutableValueTests: XCTestCase {
func testWithMutableValue() throws {
var array = [0, 1, 2, 3]
withMutableValue(&array[1]) { value in
value = value * value + value / value
}
XCTAssertEqual(array, [0, 2, 2, 3])
}
}