@@ -62,53 +62,53 @@ final class TransformationTests: XCTestCase {
6262
6363 func testAngleAxisEdgeCases< T: Real & SIMDScalar > ( _ type: T . Type ) {
6464 // Zero/Zero
65- XCTAssertTrue ( Quaternion < T > ( angle: . zero, axis: . zero) . axis. isNaN)
66- XCTAssertTrue ( Quaternion < T > ( angle: . zero, axis: . zero) . angle. isNaN)
67- XCTAssertEqual ( Quaternion < T > ( angle: . zero, axis: . zero) , . zero)
65+ XCTAssertTrue ( Quaternion < T > ( length : . zero , angle: . zero, axis: . zero) . axis. isNaN)
66+ XCTAssertTrue ( Quaternion < T > ( length : . zero , angle: . zero, axis: . zero) . angle. isNaN)
67+ XCTAssertEqual ( Quaternion < T > ( length : . zero , angle: . zero, axis: . zero) , . zero)
6868 // Inf/Zero
69- XCTAssertTrue ( Quaternion < T > ( angle: . infinity, axis: . zero ) . axis. isNaN)
70- XCTAssertTrue ( Quaternion < T > ( angle: . infinity, axis: . zero ) . angle. isNaN)
71- XCTAssertEqual ( Quaternion < T > ( angle: . infinity, axis: . zero ) , . zero)
69+ XCTAssertTrue ( Quaternion < T > ( length : . zero , angle: . infinity, axis: . infinity ) . axis. isNaN)
70+ XCTAssertTrue ( Quaternion < T > ( length : . zero , angle: . infinity, axis: . infinity ) . angle. isNaN)
71+ XCTAssertEqual ( Quaternion < T > ( length : . zero , angle: . infinity, axis: . infinity ) , . zero)
7272 // -Inf/Zero
73- XCTAssertTrue ( Quaternion < T > ( angle: - . infinity, axis: . zero ) . axis. isNaN)
74- XCTAssertTrue ( Quaternion < T > ( angle: - . infinity, axis: . zero ) . angle. isNaN)
75- XCTAssertEqual ( Quaternion < T > ( angle: - . infinity, axis: . zero ) , . zero)
73+ XCTAssertTrue ( Quaternion < T > ( length : . zero , angle: - . infinity, axis: - . infinity ) . axis. isNaN)
74+ XCTAssertTrue ( Quaternion < T > ( length : . zero , angle: - . infinity, axis: - . infinity ) . angle. isNaN)
75+ XCTAssertEqual ( Quaternion < T > ( length : . zero , angle: - . infinity, axis: - . infinity ) , . zero)
7676 // NaN/Zero
77- XCTAssertTrue ( Quaternion < T > ( angle: . nan, axis: . zero ) . axis. isNaN)
78- XCTAssertTrue ( Quaternion < T > ( angle: . nan, axis: . zero ) . angle. isNaN)
79- XCTAssertEqual ( Quaternion < T > ( angle: . nan, axis: . zero ) , . zero)
77+ XCTAssertTrue ( Quaternion < T > ( length : . zero , angle: . nan, axis: . nan ) . axis. isNaN)
78+ XCTAssertTrue ( Quaternion < T > ( length : . zero , angle: . nan, axis: . nan ) . angle. isNaN)
79+ XCTAssertEqual ( Quaternion < T > ( length : . zero , angle: . nan, axis: . nan ) , . zero)
8080 // Zero/Inf
81- XCTAssertTrue ( Quaternion < T > ( angle: . zero, axis: . infinity ) . axis. isNaN)
82- XCTAssertTrue ( Quaternion < T > ( angle: . zero, axis: . infinity ) . angle. isNaN)
83- XCTAssertEqual ( Quaternion < T > ( angle: . zero, axis: . infinity ) , . infinity)
81+ XCTAssertTrue ( Quaternion < T > ( length : . infinity , angle: . zero, axis: . zero ) . axis. isNaN)
82+ XCTAssertTrue ( Quaternion < T > ( length : . infinity , angle: . zero, axis: . zero ) . angle. isNaN)
83+ XCTAssertEqual ( Quaternion < T > ( length : . infinity , angle: . zero, axis: . zero ) , . infinity)
8484 // Inf/Inf
85- XCTAssertTrue ( Quaternion < T > ( angle: . infinity, axis: . infinity) . axis. isNaN)
86- XCTAssertTrue ( Quaternion < T > ( angle: . infinity, axis: . infinity) . angle. isNaN)
87- XCTAssertEqual ( Quaternion < T > ( angle: . infinity, axis: . infinity) , . infinity)
85+ XCTAssertTrue ( Quaternion < T > ( length : . infinity , angle: . infinity, axis: . infinity) . axis. isNaN)
86+ XCTAssertTrue ( Quaternion < T > ( length : . infinity , angle: . infinity, axis: . infinity) . angle. isNaN)
87+ XCTAssertEqual ( Quaternion < T > ( length : . infinity , angle: . infinity, axis: . infinity) , . infinity)
8888 // -Inf/Inf
89- XCTAssertTrue ( Quaternion < T > ( angle: - . infinity, axis: . infinity) . axis. isNaN)
90- XCTAssertTrue ( Quaternion < T > ( angle: - . infinity, axis: . infinity) . angle. isNaN)
91- XCTAssertEqual ( Quaternion < T > ( angle: - . infinity, axis: . infinity) , . infinity)
89+ XCTAssertTrue ( Quaternion < T > ( length : . infinity , angle: - . infinity, axis: - . infinity) . axis. isNaN)
90+ XCTAssertTrue ( Quaternion < T > ( length : . infinity , angle: - . infinity, axis: - . infinity) . angle. isNaN)
91+ XCTAssertEqual ( Quaternion < T > ( length : . infinity , angle: - . infinity, axis: - . infinity) , . infinity)
9292 // NaN/Inf
93- XCTAssertTrue ( Quaternion < T > ( angle: . nan, axis: . infinity ) . axis. isNaN)
94- XCTAssertTrue ( Quaternion < T > ( angle: . nan, axis: . infinity ) . angle. isNaN)
95- XCTAssertEqual ( Quaternion < T > ( angle: . nan, axis: . infinity ) , . infinity)
93+ XCTAssertTrue ( Quaternion < T > ( length : . infinity , angle: . nan, axis: . nan ) . axis. isNaN)
94+ XCTAssertTrue ( Quaternion < T > ( length : . infinity , angle: . nan, axis: . nan ) . angle. isNaN)
95+ XCTAssertEqual ( Quaternion < T > ( length : . infinity , angle: . nan, axis: . nan ) , . infinity)
9696 // Zero/-Inf
97- XCTAssertTrue ( Quaternion < T > ( angle: . zero, axis: - . infinity ) . axis. isNaN)
98- XCTAssertTrue ( Quaternion < T > ( angle: . zero, axis: - . infinity ) . angle. isNaN)
99- XCTAssertEqual ( Quaternion < T > ( angle: . zero, axis: - . infinity ) , . infinity)
97+ XCTAssertTrue ( Quaternion < T > ( length : - . infinity , angle: . zero, axis: . zero ) . axis. isNaN)
98+ XCTAssertTrue ( Quaternion < T > ( length : - . infinity , angle: . zero, axis: . zero ) . angle. isNaN)
99+ XCTAssertEqual ( Quaternion < T > ( length : - . infinity , angle: . zero, axis: . zero ) , . infinity)
100100 // Inf/-Inf
101- XCTAssertTrue ( Quaternion < T > ( angle: . infinity, axis: - . infinity) . axis. isNaN)
102- XCTAssertTrue ( Quaternion < T > ( angle: . infinity, axis: - . infinity) . angle. isNaN)
103- XCTAssertEqual ( Quaternion < T > ( angle: . infinity, axis: - . infinity) , . infinity)
101+ XCTAssertTrue ( Quaternion < T > ( length : - . infinity , angle: . infinity, axis: . infinity) . axis. isNaN)
102+ XCTAssertTrue ( Quaternion < T > ( length : - . infinity , angle: . infinity, axis: . infinity) . angle. isNaN)
103+ XCTAssertEqual ( Quaternion < T > ( length : - . infinity , angle: . infinity, axis: . infinity) , . infinity)
104104 // -Inf/-Inf
105- XCTAssertTrue ( Quaternion < T > ( angle: - . infinity, axis: - . infinity) . axis. isNaN)
106- XCTAssertTrue ( Quaternion < T > ( angle: - . infinity, axis: - . infinity) . angle. isNaN)
107- XCTAssertEqual ( Quaternion < T > ( angle: - . infinity, axis: - . infinity) , . infinity)
105+ XCTAssertTrue ( Quaternion < T > ( length : - . infinity , angle: - . infinity, axis: - . infinity) . axis. isNaN)
106+ XCTAssertTrue ( Quaternion < T > ( length : - . infinity , angle: - . infinity, axis: - . infinity) . angle. isNaN)
107+ XCTAssertEqual ( Quaternion < T > ( length : - . infinity , angle: - . infinity, axis: - . infinity) , . infinity)
108108 // NaN/-Inf
109- XCTAssertTrue ( Quaternion < T > ( angle: . nan, axis: - . infinity ) . axis. isNaN)
110- XCTAssertTrue ( Quaternion < T > ( angle: . nan, axis: - . infinity ) . angle. isNaN)
111- XCTAssertEqual ( Quaternion < T > ( angle: . nan, axis: - . infinity ) , . infinity)
109+ XCTAssertTrue ( Quaternion < T > ( length : - . infinity , angle: . nan, axis: . nan ) . axis. isNaN)
110+ XCTAssertTrue ( Quaternion < T > ( length : - . infinity , angle: . nan, axis: . nan ) . angle. isNaN)
111+ XCTAssertEqual ( Quaternion < T > ( length : - . infinity , angle: . nan, axis: . nan ) , . infinity)
112112 }
113113
114114 func testAngleAxisEdgeCases( ) {
@@ -151,12 +151,12 @@ final class TransformationTests: XCTestCase {
151151 func testPolarDecomposition< T: Real & SIMDScalar > ( _ type: T . Type ) {
152152 let axis = SIMD3 < T > ( 0 , - 1 , 0 )
153153
154- let q = Quaternion < T > ( length: 5 , halfAngle : . pi, axis: axis)
154+ let q = Quaternion < T > ( length: 5 , phase : . pi, axis: axis)
155155 XCTAssertEqual ( q. axis, axis)
156156 XCTAssertEqual ( q. angle, . pi * 2 )
157157
158158 XCTAssertEqual ( q. polar. length, 5 )
159- XCTAssertEqual ( q. polar. halfAngle , . pi)
159+ XCTAssertEqual ( q. polar. phase , . pi)
160160 XCTAssertEqual ( q. polar. axis, axis)
161161 }
162162
@@ -166,15 +166,18 @@ final class TransformationTests: XCTestCase {
166166 }
167167
168168 func testPolarDecompositionEdgeCases< T: Real & SIMDScalar > ( _ type: T . Type ) {
169- XCTAssertEqual ( Quaternion < T > ( length: . zero, halfAngle: . infinity, axis: . infinity) , . zero)
170- XCTAssertEqual ( Quaternion < T > ( length: . zero, halfAngle: - . infinity, axis: - . infinity) , . zero)
171- XCTAssertEqual ( Quaternion < T > ( length: . zero, halfAngle: . nan , axis: . nan ) , . zero)
172- XCTAssertEqual ( Quaternion < T > ( length: . infinity, halfAngle: . infinity, axis: . infinity) , . infinity)
173- XCTAssertEqual ( Quaternion < T > ( length: . infinity, halfAngle: - . infinity, axis: - . infinity) , . infinity)
174- XCTAssertEqual ( Quaternion < T > ( length: . infinity, halfAngle: . nan , axis: . infinity) , . infinity)
175- XCTAssertEqual ( Quaternion < T > ( length: - . infinity, halfAngle: . infinity, axis: . infinity) , . infinity)
176- XCTAssertEqual ( Quaternion < T > ( length: - . infinity, halfAngle: - . infinity, axis: - . infinity) , . infinity)
177- XCTAssertEqual ( Quaternion < T > ( length: - . infinity, halfAngle: . nan , axis: . infinity) , . infinity)
169+ XCTAssertEqual ( Quaternion < T > ( length: . zero, phase: . zero , axis: . zero ) , . zero)
170+ XCTAssertEqual ( Quaternion < T > ( length: . zero, phase: . infinity, axis: . infinity) , . zero)
171+ XCTAssertEqual ( Quaternion < T > ( length: . zero, phase: - . infinity, axis: - . infinity) , . zero)
172+ XCTAssertEqual ( Quaternion < T > ( length: . zero, phase: . nan , axis: . nan ) , . zero)
173+ XCTAssertEqual ( Quaternion < T > ( length: . infinity, phase: . zero , axis: . zero ) , . zero)
174+ XCTAssertEqual ( Quaternion < T > ( length: . infinity, phase: . infinity, axis: . infinity) , . infinity)
175+ XCTAssertEqual ( Quaternion < T > ( length: . infinity, phase: - . infinity, axis: - . infinity) , . infinity)
176+ XCTAssertEqual ( Quaternion < T > ( length: . infinity, phase: . nan , axis: . infinity) , . infinity)
177+ XCTAssertEqual ( Quaternion < T > ( length: - . infinity, phase: . zero , axis: . zero ) , . zero)
178+ XCTAssertEqual ( Quaternion < T > ( length: - . infinity, phase: . infinity, axis: . infinity) , . infinity)
179+ XCTAssertEqual ( Quaternion < T > ( length: - . infinity, phase: - . infinity, axis: - . infinity) , . infinity)
180+ XCTAssertEqual ( Quaternion < T > ( length: - . infinity, phase: . nan , axis: . infinity) , . infinity)
178181 }
179182
180183 func testPolarDecompositionEdgeCases( ) {
@@ -273,7 +276,7 @@ final class TransformationTests: XCTestCase {
273276 // is rotate by a perpendicular axis with an angle that is a multiple of π
274277
275278 // An axis perpendicular to the vector, so all lanes are changing equally
276- let axis = SIMD3 < T > ( 1 / 2 , 0 , - 1 / 2 )
279+ let axis = SIMD3 < T > ( 1 , 0 , - 1 ) / . sqrt ( 2 )
277280 // Create a value (somewhat) close to .greatestFiniteMagnitude
278281 let scalar = T (
279282 sign: . plus, exponent: T . greatestFiniteMagnitude. exponent,
0 commit comments