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
This commit is contained in:
Miwa
2025-03-30 16:55:34 +09:00
parent 65ac2fa3aa
commit 19dbbccd9f

View File

@ -11,19 +11,32 @@ final class TimeExpressionTests: XCTestCase {
} }
func testConvertToTimeExpression() async throws { func testConvertToTimeExpression() async throws {
let converter = await KanaKanjiConverter() let converter = KanaKanjiConverter()
// Test 3-digit numbers let input1 = makeDirectInput(direct: "123")
XCTAssertEqual(await converter.convertToTimeExpression(makeDirectInput(direct: "123")).first?.text, "1:23") let input2 = makeDirectInput(direct: "1234")
XCTAssertEqual(await converter.convertToTimeExpression(makeDirectInput(direct: "945")).first?.text, "9:45") let input3 = makeDirectInput(direct: "999")
XCTAssertEqual(await converter.convertToTimeExpression(makeDirectInput(direct: "760")).first?.text, "7:60") let input4 = makeDirectInput(direct: "1260")
XCTAssertTrue(await converter.convertToTimeExpression(makeDirectInput(direct: "761")).isEmpty) // Invalid minute let input5 = makeDirectInput(direct: "1360")
// Test 4-digit numbers let candidates1 = await converter.convertToTimeExpression(input1)
XCTAssertEqual(await converter.convertToTimeExpression(makeDirectInput(direct: "1234")).first?.text, "12:34") let candidates2 = await converter.convertToTimeExpression(input2)
XCTAssertEqual(await converter.convertToTimeExpression(makeDirectInput(direct: "9450")).first?.text, "09:45") let candidates3 = await converter.convertToTimeExpression(input3)
XCTAssertEqual(await converter.convertToTimeExpression(makeDirectInput(direct: "7600")).first?.text, "07:60") let candidates4 = await converter.convertToTimeExpression(input4)
XCTAssertTrue(await converter.convertToTimeExpression(makeDirectInput(direct: "1360")).isEmpty) // Invalid hour let candidates5 = await converter.convertToTimeExpression(input5)
XCTAssertTrue(await converter.convertToTimeExpression(makeDirectInput(direct: "1261")).isEmpty) // Invalid minute
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)
} }
} }