From a91fdeb3ab9ef42ca21a22100c997189f08a0e74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jobert=20S=C3=A1?= Date: Wed, 3 Jul 2024 00:11:46 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=AA=20AddTwoNumbers=20test=20cases=20w?= =?UTF-8?q?ith=20failing=20solution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AddTwoNumbersSolution.swift | 14 +++++ .../AddTwoNumbersTests.swift | 57 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 Sources/LeetSwiftCore/Solutions/002 - Add Two Numbers/AddTwoNumbersSolution.swift create mode 100644 Tests/LeetSwiftCoreTests/Problems/002 - Add Two Numbers/AddTwoNumbersTests.swift diff --git a/Sources/LeetSwiftCore/Solutions/002 - Add Two Numbers/AddTwoNumbersSolution.swift b/Sources/LeetSwiftCore/Solutions/002 - Add Two Numbers/AddTwoNumbersSolution.swift new file mode 100644 index 0000000..3728ad0 --- /dev/null +++ b/Sources/LeetSwiftCore/Solutions/002 - Add Two Numbers/AddTwoNumbersSolution.swift @@ -0,0 +1,14 @@ +// +// AddTwoNumbersSolution.swift +// +// +// Created by Jobert Sá on 02/07/2024. +// + +import Foundation + +class AddTwoNumbersSolution: AddTwoNumbersDefinition { + func addTwoNumbers(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? { + nil + } +} diff --git a/Tests/LeetSwiftCoreTests/Problems/002 - Add Two Numbers/AddTwoNumbersTests.swift b/Tests/LeetSwiftCoreTests/Problems/002 - Add Two Numbers/AddTwoNumbersTests.swift new file mode 100644 index 0000000..18bf5be --- /dev/null +++ b/Tests/LeetSwiftCoreTests/Problems/002 - Add Two Numbers/AddTwoNumbersTests.swift @@ -0,0 +1,57 @@ +// +// AddTwoNumbersTests.swift +// +// +// Created by Jobert Sá on 02/07/2024. +// + +import XCTest +@testable import LeetSwiftCore + +final class AddTwoNumbersTests: XCTestCase { + + let solution: AddTwoNumbersDefinition = AddTwoNumbersSolution() + + func testSolution() { + for testData in data { + let input = testData.input + + let output = solution.addTwoNumbers(input.l1, input.l2) + + XCTAssertEqual(output, testData.expectedOutput) + } + } +} + +extension AddTwoNumbersTests: TestCaseProviding { + func validateInput(_ input: (l1: ListNode?, l2: ListNode?)) -> Bool { + // TODO: Implement validation + true + } + + var data: [TestData<(l1: ListNode?, l2: ListNode?), ListNode?>] { [ + TestData( + input: ([2, 4, 3].listNode, [5, 6, 4].listNode), + expectedOutput: [7, 0, 8].listNode + ), + TestData( + input: ([0].listNode, [0].listNode), + expectedOutput: [0].listNode + ), + TestData( + input: ([9, 9, 9, 9, 9, 9, 9].listNode, [9, 9, 9, 9].listNode), + expectedOutput: [8, 9, 9, 9, 0, 0, 0, 1].listNode + ) + ] } +} + +private extension Array where Element == Int { + var listNode: ListNode? { + guard let first else { return nil } + let l = ListNode(first) + for i in 1..