Skip to content

Commit 13e94f0

Browse files
authored
add more tests (SwiftGFX#11)
1 parent 3f57061 commit 13e94f0

File tree

7 files changed

+70
-7
lines changed

7 files changed

+70
-7
lines changed

Sources/Matrix3x3+nosimd.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,12 +148,14 @@ public struct Matrix3x3f {
148148
- (m13 * m22 * m31 + m11 * m23 * m32 + m12 * m21 * m33)
149149
}
150150

151-
public var transpose: Matrix3x3f {
152-
return Matrix3x3f(m11, m21, m31, m12, m22, m32, m13, m23, m33)
151+
public var transposed: Matrix3x3f {
152+
return Matrix3x3f(m11, m12, m13,
153+
m21, m22, m23,
154+
m31, m32, m33)
153155
}
154156

155-
public var inverse: Matrix3x3f {
156-
return adjugate * (1 / determinant)
157+
public var inversed: Matrix3x3f {
158+
return adjugate * (1.0 / determinant)
157159
}
158160

159161
public func interpolated(with m: Matrix3x3f, by t: Float) -> Matrix3x3f {

Sources/Matrix3x3+simd.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ public struct Matrix3x3f: Codable, Equatable {
4444
return unsafeBitCast(d.inverse, to: Matrix3x3f.self)
4545
}
4646

47+
public var transposed: Matrix3x3f {
48+
return unsafeBitCast(d.transpose, to: Matrix3x3f.self)
49+
}
50+
4751
// MARK:- operators
4852

4953
public static prefix func -(lhs: Matrix3x3f) -> Matrix3x3f {

Sources/Vector2+nosimd.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ import Glibc
6262
}
6363

6464
public var length: Float {
65-
return sqrt(lengthSquared)
65+
return sqrt(self.lengthSquared)
6666
}
6767

6868
public func dot(_ v: Vector2f) -> Float {

Sources/Vector3+nosimd.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ extension Vector3f {
6868
}
6969

7070
public var length: Float {
71-
return sqrt(lengthSquared)
71+
return sqrt(self.lengthSquared)
7272
}
7373

7474
public func dot(_ v: Vector3f) -> Float {

Sources/Vector4+nosimd.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ extension Vector4f: Equatable {
7878
}
7979

8080
public var length: Float {
81-
return sqrt(lengthSquared)
81+
return sqrt(self.lengthSquared)
8282
}
8383

8484
public func dot(_ v: Vector4f) -> Float {
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//
2+
// Matrix3x3Tests.swift
3+
//
4+
// Created by Volodymyr Boichentsov on 02/02/2021.
5+
//
6+
7+
import XCTest
8+
@testable import SwiftMath
9+
10+
class Matrix3x3Tests: XCTestCase {
11+
12+
func testCreate() {
13+
let m = Matrix3x3f.init(0.0, 1.0, 2.0,
14+
3.0, 4.0, 5.0,
15+
6.0, 7.0, 8.0)
16+
XCTAssertEqual(3.0, m[0,1])
17+
XCTAssertEqual(4.0, m[1,1])
18+
XCTAssertEqual(7.0, m[1,2])
19+
}
20+
21+
func testTranspose() {
22+
let m = Matrix3x3f.init(0.0, 1.0, 2.0,
23+
3.0, 4.0, 5.0,
24+
6.0, 7.0, 8.0)
25+
let mTranspose = m.transposed
26+
XCTAssertEqual(1.0, mTranspose[0,1])
27+
XCTAssertEqual(4.0, mTranspose[1,1])
28+
XCTAssertEqual(5.0, mTranspose[1,2])
29+
}
30+
31+
func testInvert() {
32+
let m = Matrix3x3f.init(diagonal: Vector3f.init(2.0))
33+
let mInverse = m.inversed
34+
XCTAssertEqual(0.5, mInverse[0,0])
35+
XCTAssertEqual(0.5, mInverse[1,1])
36+
XCTAssertEqual(0.5, mInverse[2,2])
37+
}
38+
}

Tests/SwiftMathTests/Matrix4x4Tests.swift

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,5 +85,24 @@ class Matrix4x4Tests: XCTestCase {
8585
XCTAssertEqual(4.0, c.z)
8686
XCTAssertEqual(4.0, c.w)
8787
}
88+
89+
func testInvert() {
90+
let m = Matrix4x4f.init(diagonal: Vector4f.init(2.0))
91+
let mInverse = m.inversed
92+
XCTAssertEqual(0.5, mInverse[0,0], accuracy: 0.00001)
93+
XCTAssertEqual(0.5, mInverse[1,1], accuracy: 0.00001)
94+
XCTAssertEqual(0.5, mInverse[2,2], accuracy: 0.00001)
95+
}
8896

97+
func testTranspose() {
98+
let m = Matrix4x4f.init(0.0, 1.0, 2.0, 3.0,
99+
4.0, 5.0, 6.0, 7.0,
100+
8.0, 9.0, 10.0, 11.0,
101+
12, 13, 14, 15)
102+
let mTranspose = m.transposed
103+
XCTAssertEqual(1.0, mTranspose[0,1])
104+
XCTAssertEqual(4.0, mTranspose[1,0])
105+
XCTAssertEqual(5.0, mTranspose[1,1])
106+
XCTAssertEqual(14.0, mTranspose[3,2])
107+
}
89108
}

0 commit comments

Comments
 (0)