// RUN: %target-run-simple-swift // XFAIL: interpret import StdlibUnittest var RangeTestSuite = TestSuite("Range") RangeTestSuite.test("ReverseRange") { // We no longer have a ReverseRange, but we can still make sure that // lazy reversal works correctly. expectEqualSequence(lazy(0..<10).reverse(), [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) } func isEquatable(e: E) {} RangeTestSuite.test("Range/Equatable") { let r1 = Range(start: 0, end: 0) let r2 = Range(start: 0, end: 1) isEquatable(r1) expectTrue(r1 == r1) expectFalse(r1 != r1) expectFalse(r1 == r2) expectTrue(r1 != r2) } // Something to test with that distinguishes debugDescription from description struct X : ForwardIndexType, CustomStringConvertible, CustomDebugStringConvertible { init(_ a: T) { self.a = a } func successor() -> X { return X(a.successor()) } var description: String { return String(a) } var debugDescription: String { return "X(\(String(reflecting: a)))" } var a: T } func == (lhs: X, rhs: X) -> Bool { return lhs.a == rhs.a } RangeTestSuite.test("Printing") { expectEqual("0..<10", String(X(0).. map method should exist on ranges expectEqual([ 2, 4, 6 ], Array((1...3).map {$0*2})) } runAllTests()