Files
swift-mirror/test/1_stdlib/SceneKit.swift
Slava Pestov 1b5778ba68 UNSUPPORTED rather than XFAIL
As Jordan pointed out, the frameworks exist in the internal SDK, and
we don't want the tests to fail in this case.

Swift SVN r32734
2015-10-16 22:22:01 +00:00

215 lines
6.4 KiB
Swift

// RUN: %target-run-simple-swift
// REQUIRES: executable_test
// REQUIRES: objc_interop
// UNSUPPORTED: OS=watchos
import StdlibUnittest
import SceneKit
// SceneKit is only available on iOS 8.0 and above and on OS X 10.8 and above.
// That said SCNMatrix4Scale &co are only available on OS X 10.10 and above.
var SceneKitTests = TestSuite("SceneKit")
if #available(iOS 8.0, OSX 10.10, *) {
let scn_vec3_ref = SCNVector3Make(1, 2, 3)
let scn_vec4_ref = SCNVector4Make(1, 2, 3, 4)
let scn_mat4_ref = SCNMatrix4Scale(SCNMatrix4Translate(SCNMatrix4MakeRotation(SCNFloat(M_PI), 1, 0, 0), 1, 2, 3), 10, 20, 30)
// MARK: Exposing SCNFloat
SceneKitTests.test("SCNFloat") {
let f = Float(1.0)
let scn_float_from_f = SCNFloat(f)
expectEqual(scn_float_from_f, 1.0)
let d = Double(2.0)
let scn_float_from_d = SCNFloat(d)
expectEqual(scn_float_from_d, 2.0)
let cg = CGFloat(3.0)
let scn_float_from_cg = SCNFloat(cg)
expectEqual(scn_float_from_cg, 3.0)
let node = SCNNode()
node.position.x = scn_float_from_f
node.position.y = scn_float_from_d
node.position.z = scn_float_from_cg
expectTrue(SCNVector3EqualToVector3(node.position, scn_vec3_ref))
let f1: SCNFloat = scn_vec3_ref.x;
let f2: SCNFloat = scn_vec4_ref.y;
expectEqual(f1, 1.0);
expectEqual(f2, 2.0);
}
// MARK: Working with SCNVector3
SceneKitTests.test("SCNVector3.init()/Literal") {
let scn_vec3_from_lit = SCNVector3(1, 2, 3)
expectTrue(SCNVector3EqualToVector3(scn_vec3_from_lit, scn_vec3_ref))
}
SceneKitTests.test("SCNVector3.init()/Float") {
let f1: Float = 1.0
let f2: Float = 2.0
let f3: Float = 3.0
let scn_vec3_from_f = SCNVector3(f1, f2, f3)
expectTrue(SCNVector3EqualToVector3(scn_vec3_from_f, scn_vec3_ref))
}
SceneKitTests.test("SCNVector3.init()/CGFloat") {
let d1: CGFloat = 1.0
let d2: CGFloat = 2.0
let d3: CGFloat = 3.0
let scn_vec3_from_cg = SCNVector3(d1, d2, d3)
expectTrue(SCNVector3EqualToVector3(scn_vec3_from_cg, scn_vec3_ref))
}
SceneKitTests.test("SCNVector3.init()/Double") {
let d1: Double = 1.0
let d2: Double = 2.0
let d3: Double = 3.0
let scn_vec3_from_d = SCNVector3(d1, d2, d3)
expectTrue(SCNVector3EqualToVector3(scn_vec3_from_d, scn_vec3_ref))
}
SceneKitTests.test("SCNVector3.init()/Int") {
let i1: Int = 1
let i2: Int = 2
let i3: Int = 3
let scn_vec3_from_i = SCNVector3(i1, i2, i3)
expectTrue(SCNVector3EqualToVector3(scn_vec3_from_i, scn_vec3_ref))
}
SceneKitTests.test("SCNVector3.init()/float3") {
let v3 = float3(1, 2, 3)
let scn_vec3_from_float3 = SCNVector3(v3)
expectTrue(SCNVector3EqualToVector3(scn_vec3_from_float3, scn_vec3_ref))
}
SceneKitTests.test("SCNVector3.init()/double3") {
let v3 = double3(1, 2, 3)
let scn_vec3_from_double3 = SCNVector3(v3)
expectTrue(SCNVector3EqualToVector3(scn_vec3_from_double3, scn_vec3_ref))
}
SceneKitTests.test("SCNVector3.init()/mix") {
let f1: Float = 1.0
let d2: CGFloat = 2.0
let scn_vec3_from_mixed = SCNVector3(f1, Float(d2), 3)
expectTrue(SCNVector3EqualToVector3(scn_vec3_from_mixed, scn_vec3_ref))
}
SceneKitTests.test("float3.init()/SCNVector3") {
let v3 = float3(scn_vec3_ref)
expectEqual(v3.x, 1.0)
expectEqual(v3.y, 2.0)
expectEqual(v3.z, 3.0)
}
SceneKitTests.test("double3.init()/SCNVector3") {
let v3 = double3(scn_vec3_ref)
expectEqual(v3.x, 1.0)
expectEqual(v3.y, 2.0)
expectEqual(v3.z, 3.0)
}
// MARK: Working with SCNVector4
SceneKitTests.test("SCNVector4.init()/Literal") {
let scn_vec4_from_lit = SCNVector4(1, 2, 3, 4)
expectTrue(SCNVector4EqualToVector4(scn_vec4_from_lit, scn_vec4_ref))
}
SceneKitTests.test("SCNVector4.init()/Float") {
let f1: Float = 1.0
let f2: Float = 2.0
let f3: Float = 3.0
let f4: Float = 4.0
let scn_vec4_from_f = SCNVector4(f1, f2, f3, f4)
expectTrue(SCNVector4EqualToVector4(scn_vec4_from_f, scn_vec4_ref))
}
SceneKitTests.test("SCNVector4.init()/CGFloat") {
let d1: CGFloat = 1.0
let d2: CGFloat = 2.0
let d3: CGFloat = 3.0
let d4: CGFloat = 4.0
let scn_vec4_from_cg = SCNVector4(d1, d2, d3, d4)
expectTrue(SCNVector4EqualToVector4(scn_vec4_from_cg, scn_vec4_ref))
}
SceneKitTests.test("SCNVector4.init()/Double") {
let d1: Double = 1.0
let d2: Double = 2.0
let d3: Double = 3.0
let d4: Double = 4.0
let scn_vec4_from_d = SCNVector4(d1, d2, d3, d4)
expectTrue(SCNVector4EqualToVector4(scn_vec4_from_d, scn_vec4_ref))
}
SceneKitTests.test("SCNVector4.init()/Int") {
let i1: Int = 1
let i2: Int = 2
let i3: Int = 3
let i4: Int = 4
let scn_vec4_from_i = SCNVector4(i1, i2, i3, i4)
expectTrue(SCNVector4EqualToVector4(scn_vec4_from_i, scn_vec4_ref))
}
SceneKitTests.test("SCNVector4.init()/float4") {
let v4 = float4(1, 2, 3, 4)
let scn_vec4_from_float4 = SCNVector4(v4)
expectTrue(SCNVector4EqualToVector4(scn_vec4_from_float4, scn_vec4_ref))
}
SceneKitTests.test("SCNVector4.init()/double4") {
let v4 = double4(1, 2, 3, 4)
let scn_vec4_from_double4 = SCNVector4(v4)
expectTrue(SCNVector4EqualToVector4(scn_vec4_from_double4, scn_vec4_ref))
}
SceneKitTests.test("SCNVector4.init()/mix") {
let f1: Float = 1.0
let d2: CGFloat = 2.0
let f4: Float = 4.0
let scn_vec4_from_mixed = SCNVector4(f1, Float(d2), 3, f4)
expectTrue(SCNVector4EqualToVector4(scn_vec4_from_mixed, scn_vec4_ref))
}
SceneKitTests.test("float4.init()/SCNVector4") {
let v4 = float4(scn_vec4_ref)
expectEqual(v4.x, 1.0)
expectEqual(v4.y, 2.0)
expectEqual(v4.z, 3.0)
expectEqual(v4.w, 4.0)
}
SceneKitTests.test("double4.init()/SCNVector4") {
let v4 = double4(scn_vec4_ref)
expectEqual(v4.x, 1.0)
expectEqual(v4.y, 2.0)
expectEqual(v4.z, 3.0)
expectEqual(v4.w, 4.0)
}
// MARK: Working with SCNMatrix4
SceneKitTests.test("SCNMatrix4.init()/float4x4 + float4x4.init()/SCNMatrix4") {
let mat4_from_scn_mat4 = float4x4(scn_mat4_ref)
let scn_vec4_from_mat4 = SCNMatrix4(mat4_from_scn_mat4)
expectTrue(SCNMatrix4EqualToMatrix4(scn_vec4_from_mat4, scn_mat4_ref))
}
SceneKitTests.test("SCNMatrix4.init()/double4x4 + double4x4.init()/SCNMatrix4") {
let mat4_from_scn_mat4 = double4x4(scn_mat4_ref)
let scn_vec4_from_mat4 = SCNMatrix4(mat4_from_scn_mat4)
expectTrue(SCNMatrix4EqualToMatrix4(scn_vec4_from_mat4, scn_mat4_ref))
}
}
runAllTests()