//
//  PrimitiveSequenceTest+zip+arity.swift
//  Tests
//
//  Created by Krunoslav Zaher on 3/12/17.
//  Copyright © 2017 Krunoslav Zaher. All rights reserved.
//

import XCTest
import RxSwift
import RxTest

<% for i in 2 ... 8 { %>

// <%= i %>

extension SingleTest {
    func testZip<%= i %>_selector() {
        let singleResult: Single<Int> = Single.zip(<%= (Array(1...i).map { _ in "Single.just(1)" }).joined(separator: ", ") %>) { <%= (Array(0..<i).map { "$\($0)" }).joined(separator: " + ") %> }

        let result = try! singleResult
            .toBlocking().first()!
        XCTAssertEqual(result, <%= i %>)
    }

    func testZip<%= i %>_tuple() {
        let singleResult: Single<Int> = Single.zip(<%= (Array(1...i).map { _ in "Single.just(1)" }).joined(separator: ", ") %>).map { <%= (Array(0..<i).map { "$\($0)" }).joined(separator: " + ") %> }

        let result = try! singleResult
            .toBlocking().first()!
        XCTAssertEqual(result, <%= i %>)
    }
}

extension MaybeTest {
    func testZip<%= i %>_selector() {
        let singleResult: Maybe<Int> = Maybe.zip(<%= (Array(1...i).map { _ in "Maybe.just(1)" }).joined(separator: ", ") %>) { <%= (Array(0..<i).map { "$\($0)" }).joined(separator: " + ") %> }

        let result = try! singleResult
            .toBlocking().first()!
        XCTAssertEqual(result, <%= i %>)
    }

    func testZip<%= i %>_tuple() {
        let singleResult: Maybe<Int> = Maybe.zip(<%= (Array(1...i).map { _ in "Maybe.just(1)" }).joined(separator: ", ") %>).map { <%= (Array(0..<i).map { "$\($0)" }).joined(separator: " + ") %> }

        let result = try! singleResult
            .toBlocking().first()!
        XCTAssertEqual(result, <%= i %>)
    }
}

<% } %>
