Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import XCTest
- @testable import FunctionalKata
- class FunctionalKataTests: XCTestCase {
- // Create a function to count the elements contained in a list
- func count(list: [Any?]) -> Int {
- if let _ = list.first {
- let tail = Array(list.dropFirst())
- return 1 + count(list: tail)
- }
- return 0
- }
- func sum(_ list: [Int]) -> Int {
- return list.reduce(0, +)
- }
- // Sample implementation of +
- func plus(_ left: Int, _ right: Int) -> Int { return left + right }
- func testListOfNilValues_Count_ReturnsNumberOfNilValues() {
- let list: [String?] = [nil, nil]
- XCTAssertEqual(count(list: list), 2)
- }
- func testEmptyList_Count_ReturnsZero() {
- XCTAssertEqual(count(list: [String]()), 0)
- }
- func testListOneElement_Count_ReturnsOne() {
- XCTAssertEqual(count(list: ["element"]), 1)
- }
- func testListTwoElements_Count_ReturnsTwo() {
- XCTAssertEqual(count(list: ["element", "anotherElement"]), 2)
- }
- func testSumZeroToZero_ReturnsZero() {
- XCTAssertEqual(sum([]), 0)
- }
- func testSum123Returns6() {
- XCTAssertEqual(sum([1,2,3]), 6)
- }
- func testSumMinusOneToOne_Returns0() {
- XCTAssertEqual(sum([-1,1]), 0)
- }
- func test1Plus2_Returns3() {
- XCTAssertEqual(plus(1,2), 3)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement