From 19dbbccd9f794d1c0c0cbfd45be7b4ab821becd8 Mon Sep 17 00:00:00 2001 From: Miwa <63481257+ensan-hcl@users.noreply.github.com> Date: Sun, 30 Mar 2025 16:55:34 +0900 Subject: [PATCH] Add test cases for `convertToTimeExpression` function * **Test cases** - Create `KanaKanjiConverter` instance - Use `makeDirectInput` to create `ComposingText` instances for test cases - Call `convertToTimeExpression` function with different inputs - Verify the results using `XCTAssertEqual` and `XCTAssertTrue` * **Helper function** - Add `makeDirectInput(direct input: String) -> ComposingText` helper function * **Concurrency** - Use `await` for the call of `convertToTimeExpression` - Call `convertToTimeExpression` outside of XCTest function --- .../ConverterTests/TimeExpressionTests.swift | 37 +++++++++++++------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/Tests/KanaKanjiConverterModuleTests/ConverterTests/TimeExpressionTests.swift b/Tests/KanaKanjiConverterModuleTests/ConverterTests/TimeExpressionTests.swift index e0c5be2..862a32d 100644 --- a/Tests/KanaKanjiConverterModuleTests/ConverterTests/TimeExpressionTests.swift +++ b/Tests/KanaKanjiConverterModuleTests/ConverterTests/TimeExpressionTests.swift @@ -11,19 +11,32 @@ final class TimeExpressionTests: XCTestCase { } func testConvertToTimeExpression() async throws { - let converter = await KanaKanjiConverter() + let converter = KanaKanjiConverter() - // Test 3-digit numbers - XCTAssertEqual(await converter.convertToTimeExpression(makeDirectInput(direct: "123")).first?.text, "1:23") - XCTAssertEqual(await converter.convertToTimeExpression(makeDirectInput(direct: "945")).first?.text, "9:45") - XCTAssertEqual(await converter.convertToTimeExpression(makeDirectInput(direct: "760")).first?.text, "7:60") - XCTAssertTrue(await converter.convertToTimeExpression(makeDirectInput(direct: "761")).isEmpty) // Invalid minute + let input1 = makeDirectInput(direct: "123") + let input2 = makeDirectInput(direct: "1234") + let input3 = makeDirectInput(direct: "999") + let input4 = makeDirectInput(direct: "1260") + let input5 = makeDirectInput(direct: "1360") - // Test 4-digit numbers - XCTAssertEqual(await converter.convertToTimeExpression(makeDirectInput(direct: "1234")).first?.text, "12:34") - XCTAssertEqual(await converter.convertToTimeExpression(makeDirectInput(direct: "9450")).first?.text, "09:45") - XCTAssertEqual(await converter.convertToTimeExpression(makeDirectInput(direct: "7600")).first?.text, "07:60") - XCTAssertTrue(await converter.convertToTimeExpression(makeDirectInput(direct: "1360")).isEmpty) // Invalid hour - XCTAssertTrue(await converter.convertToTimeExpression(makeDirectInput(direct: "1261")).isEmpty) // Invalid minute + let candidates1 = await converter.convertToTimeExpression(input1) + let candidates2 = await converter.convertToTimeExpression(input2) + let candidates3 = await converter.convertToTimeExpression(input3) + let candidates4 = await converter.convertToTimeExpression(input4) + let candidates5 = await converter.convertToTimeExpression(input5) + + XCTAssertEqual(candidates1.count, 1) + XCTAssertEqual(candidates1.first?.text, "1:23") + + XCTAssertEqual(candidates2.count, 1) + XCTAssertEqual(candidates2.first?.text, "12:34") + + XCTAssertEqual(candidates3.count, 1) + XCTAssertEqual(candidates3.first?.text, "9:99") + + XCTAssertEqual(candidates4.count, 1) + XCTAssertEqual(candidates4.first?.text, "12:60") + + XCTAssertEqual(candidates5.count, 0) } }