//===--- Concatenate.swift - Tests for lazy/eager concatenate -------------===// // // This source file is part of the Swift.org open source project // // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See https://swift.org/LICENSE.txt for license information // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// // RUN: %target-run-simple-swift // REQUIRES: executable_test import StdlibUnittest import StdlibCollectionUnittest var ConcatenateTests = TestSuite("ConcatenateTests") // Help the type checker ( Slow type deduction) typealias X = ContiguousArray> let samples: ContiguousArray<(CountableRange, X)> = [ (0..<8, [ 1..<1, 0..<5, 7..<7, 5..<7, 7..<8 ] as X), (0..<8, [ 0..<5, 7..<7, 5..<7, 7..<8 ] as X), (0..<8, [ 1..<1, 0..<5, 7..<7, 5..<7, 7..<8, 11..<11 ] as X), (0..<8, [ 0..<5, 7..<7, 5..<7, 7..<8, 11..<11 ] as X), (0..<0, [ 11..<11 ] as X), (0..<0, [ 3..<3, 11..<11 ] as X), (0..<0, [] as X), ] for (expected, source) in samples { ConcatenateTests.test("forward-\(source)") { checkBidirectionalCollection(expected, source.joined()) } ConcatenateTests.test("reverse-\(source)") { // FIXME: separate 'expected' and 'reversed' variables are a workaround // for: let expected = ContiguousArray(expected.lazy.reversed()) let reversed = source.joined().reversed() checkBidirectionalCollection(expected, reversed) } ConcatenateTests.test("sequence-\(source)") { checkSequence( ContiguousArray(expected), AnySequence(source).joined()) } } runAllTests()