Files
swift-mirror/test/1_stdlib/Array.swift
Graham Batty 198402dcfe Mark tests that don't pass on linux as XFAIL.
Swift SVN r23573
2014-11-24 17:40:37 +00:00

114 lines
2.4 KiB
Swift

// RUN: %target-run-simple-swift | FileCheck %s
// XFAIL: linux
import Foundation
println("testing...")
// CHECK: testing
var primes0 = [2, 3, 5, 7, 11]
func testTakeActualArray() {
// Copy primes0 into a Array
var primes1 = Array<Int>()
for x in primes0 { primes1.append(x) }
// Take the elements of primes1 in an Array
var primes2 : [Int] = primes1
// Check that the copy worked
// CHECK-NEXT: <2> <3> <5> <7> <11> .
for x in primes2 { print("<\(x)> ") }
println(".")
}
testTakeActualArray()
println("done.") // CHECK-NEXT: done.
// Check that we loop over the size of the vector, not its capacity.
// Found by Anna.
var fullButStarvingArray = Array<String>()
for x in fullButStarvingArray { print("\(x) ") }
func testArrayFromStream() {
var x = Array(3..<7)
// CHECK-NEXT: <3> <4> <5> <6> .
for y in x { print("<\(y)> ") }
println(".")
}
testArrayFromStream()
func testMap() {
var floatPrimes = primes0.map { Float($0) }
// CHECK-NEXT: <2.0> <3.0> <5.0> <7.0> <11.0> .
for y in floatPrimes { print("<\(y)> ") }
println(".")
}
testMap()
func testFilter() {
let a = Array(3..<16)
println(a.filter { $0 % 4 == 0 })
// CHECK-NEXT: [4, 8, 12]
}
testFilter()
func testReverse() {
let a = Array(7..<12)
println(a.reverse())
// CHECK-NEXT: [11, 10, 9, 8, 7]
}
testReverse()
func testSort() {
var a = [3, 1, 9, 7]
println(a.sorted { $0 < $1 })
// CHECK-NEXT: [1, 3, 7, 9]
println(a.sorted { $0 > $1 })
// CHECK-NEXT: [9, 7, 3, 1]
println(a)
// CHECK-NEXT: [3, 1, 9, 7]
a.sort { $0 < $1 }
println(a)
// CHECK-NEXT: [1, 3, 7, 9]
a.sort { $0 > $1 }
println(a)
// CHECK-NEXT: [9, 7, 3, 1]
// Also make sure the free functions do somethign sane
a = [3, 1, 9, 7]
println(sorted(a))
// CHECK-NEXT: [1, 3, 7, 9]
println(sorted(a) { $0 > $1 })
// CHECK-NEXT: [9, 7, 3, 1]
sort(&a)
println(a)
// CHECK-NEXT: [1, 3, 7, 9]
sort(&a) { $0 > $1 }
println(a)
// CHECK-NEXT: [9, 7, 3, 1]
}
testSort()
func testArrayOfVoid() {
// This used to crash because it generated an array of void with stride == 0
// CHECK-NEXT: 123
[1,2,3].map {
print($0)
}
println()
}
testArrayOfVoid()
func testMutableArray() {
var m = NSMutableArray(array: ["fu", "bar", "buzz"])
let a = m as NSArray as [NSString]
println(a) // CHECK-NEXT: [fu, bar, buzz]
m.addObject("goop")
println(a) // CHECK-NEXT: [fu, bar, buzz]
}
testMutableArray()
println("done!") // CHECK-NEXT: {{^done!$}}