| // RUN: %target-run-stdlib-swift -swift-version 4 |
| // REQUIRES: executable_test |
| |
| import StdlibUnittest |
| |
| var FilterTestSuite = TestSuite("HashedCollectionFilter") |
| |
| FilterTestSuite.test("Dictionary.filter(_:) -> [Key: Value]") |
| .xfail(.always("Not actually running under Swift 4")).code |
| { |
| let d = [10: 1010, 20: 1020, 30: 1030, 40: 1040] |
| // filter(_:) should produce a dictionary in Swift 4 |
| let f: Any = d.filter { $0.key > 20 } |
| expectTrue(f is [Int: Int]) |
| } |
| |
| FilterTestSuite.test("Dictionary.filter(_:) -> [(Key, Value)] available") { |
| let d = [10: 1010, 20: 1020, 30: 1030, 40: 1040] |
| // The Array-returning version from Sequence should still be accessible |
| let f: [(Int, Int)] = d.filter { $0.key > 20 } |
| expectEqual(2, f.count) |
| } |
| |
| FilterTestSuite.test("Set.filter(_:) -> Set<Element>") |
| .xfail(.always("Not actually running under Swift 4")).code |
| { |
| let s: Set = [10, 20, 30, 40] |
| // filter(_:) should produce a set in Swift 4 |
| let f: Any = s.filter { $0 > 20 } |
| expectTrue(f is Set<Int>) |
| } |
| |
| FilterTestSuite.test("Set.filter(_:) -> [Element] available") { |
| let s: Set = [10, 20, 30, 40] |
| // The Array-returning version from Sequence should still be accessible |
| let f: [Int] = s.filter { $0 > 20 } |
| expectEqual(2, f.count) |
| } |
| |
| FilterTestSuite.test("Dictionary.keys -> Keys") |
| .xfail(.always("Not actually running under Swift 4")).code |
| { |
| let d = [10: 1010, 20: 1020, 30: 1030, 40: 1040] |
| // .keys should produce a Dictionary.Keys in Swift 4 |
| let f: Any = d.keys |
| expectTrue(f is Dictionary<Int, Int>.Keys) |
| } |
| |
| FilterTestSuite.test("Dictionary.values -> Values") |
| .xfail(.always("Not actually running under Swift 4")).code |
| { |
| let d = [10: 1010, 20: 1020, 30: 1030, 40: 1040] |
| // .values should produce a Dictionary.Values in Swift 4 |
| let f: Any = d.values |
| expectTrue(f is Dictionary<Int, Int>.Values) |
| } |
| |
| runAllTests() |
| |