// RUN: %target-run-simple-swift // REQUIRES: executable_test // REQUIRES: objc_interop // UNSUPPORTED: OS=watchos import StdlibUnittest import GameplayKit var GameplayKitTests = TestSuite("GameplayKit") if #available(OSX 10.12, iOS 10.0, tvOS 10.0, *) { // MARK: Doing GameplayKit Stuff GameplayKitTests.test("GKPath_float2") { var vec: [float2] = [float2(3.0), float2(4.0)] let path = GKPath(points: vec, radius: Float(30), cyclical: true) expectEqual(path.numPoints, 2) expectEqual(path.radius, Float(30)) expectEqual(path.isCyclical, true) } GameplayKitTests.test("GKPath_float3") { var vec: [float3] = [float3(3.0), float3(4.0)] let path = GKPath(points: vec, radius: Float(30), cyclical: true) expectEqual(path.numPoints, 2) expectEqual(path.radius, Float(30)) expectEqual(path.isCyclical, true) } GameplayKitTests.test("GKPolygonObstacle") { var vec = [float2(3.0, 3.0), float2(3.0, -3.0), float2(-3.0, 3.0), float2(-3.0, -3.0)] let obstacle = GKPolygonObstacle(points: vec) expectEqual(obstacle.vertexCount, 4) } GameplayKitTests.test("GKEntity") { @objc(MovementComponent) class MovementComponent: GKComponent { override func update(deltaTime seconds: TimeInterval) {} override func didAddToEntity() {} override func willRemoveFromEntity() {} } let comp = MovementComponent() let entity = GKEntity() entity.addComponent(comp) expectEqual(entity.components.count, 1) let grabbedComp = entity.component(ofType: MovementComponent.self) expectEqual(grabbedComp, comp) entity.removeComponent(ofType: MovementComponent.self) expectEqual(entity.components.count, 0) } } runAllTests()