|
5 | 5 | import Testing |
6 | 6 | import OpenCoreGraphicsShims |
7 | 7 | import Numerics |
| 8 | +#if OPENCOREGRAPHICS_COREGRAPHICS |
| 9 | +import struct CoreGraphics.CGAffineTransform |
| 10 | +#else |
| 11 | +import struct OpenCoreGraphics.CGAffineTransform |
| 12 | +#endif |
8 | 13 |
|
9 | 14 | @Suite |
10 | 15 | struct CGAffineTransformTests { |
@@ -92,4 +97,46 @@ struct CGAffineTransformTests { |
92 | 97 | #expect(inv.tx.isApproximatelyEqual(to: singular.tx)) |
93 | 98 | #expect(inv.ty.isApproximatelyEqual(to: singular.ty)) |
94 | 99 | } |
| 100 | + |
| 101 | + // MARK: - TranslateBy |
| 102 | + |
| 103 | + @Test |
| 104 | + func translatedBy() { |
| 105 | + let t1 = CGAffineTransform(a: 1, b: 2, c: 3, d: 4, tx: 5, ty: 6) |
| 106 | + let t2 = t1.translatedBy(x: 7, y: 8) |
| 107 | + #expect(t2.a.isApproximatelyEqual(to: 1.0)) |
| 108 | + #expect(t2.b.isApproximatelyEqual(to: 2.0)) |
| 109 | + #expect(t2.c.isApproximatelyEqual(to: 3.0)) |
| 110 | + #expect(t2.d.isApproximatelyEqual(to: 4.0)) |
| 111 | + #expect(t2.tx.isApproximatelyEqual(to: 36.0)) |
| 112 | + #expect(t2.ty.isApproximatelyEqual(to: 52.0)) |
| 113 | + } |
| 114 | + |
| 115 | + // MARK: - ScaledBy |
| 116 | + |
| 117 | + @Test |
| 118 | + func scaledBy() { |
| 119 | + let t1 = CGAffineTransform(a: 1, b: 2, c: 3, d: 4, tx: 5, ty: 6) |
| 120 | + let t2 = t1.scaledBy(x: 7, y: 8) |
| 121 | + #expect(t2.a.isApproximatelyEqual(to: 7.0)) |
| 122 | + #expect(t2.b.isApproximatelyEqual(to: 14.0)) |
| 123 | + #expect(t2.c.isApproximatelyEqual(to: 24.0)) |
| 124 | + #expect(t2.d.isApproximatelyEqual(to: 32.0)) |
| 125 | + #expect(t2.tx.isApproximatelyEqual(to: 5.0)) |
| 126 | + #expect(t2.ty.isApproximatelyEqual(to: 6.0)) |
| 127 | + } |
| 128 | + |
| 129 | + // MARK: - Rotated |
| 130 | + |
| 131 | + @Test |
| 132 | + func rotated() { |
| 133 | + let t1 = CGAffineTransform(a: 1, b: 2, c: 3, d: 4, tx: 5, ty: 6) |
| 134 | + let t2 = t1.rotated(by: .pi / 2) |
| 135 | + #expect(t2.a.isApproximatelyEqual(to: 3.0)) |
| 136 | + #expect(t2.b.isApproximatelyEqual(to: 4.0)) |
| 137 | + #expect(t2.c.isApproximatelyEqual(to: -1.0)) |
| 138 | + #expect(t2.d.isApproximatelyEqual(to: -2.0)) |
| 139 | + #expect(t2.tx.isApproximatelyEqual(to: 5.0)) |
| 140 | + #expect(t2.ty.isApproximatelyEqual(to: 6.0)) |
| 141 | + } |
95 | 142 | } |
0 commit comments