Skip to content

Commit 1862065

Browse files
authored
Merge pull request #6 from RougeWare/feature/5-fails-to-compile-outside-macos
#5: Added support for ARM platforms
2 parents b92753a + 642937b commit 1862065

File tree

2 files changed

+107
-25
lines changed

2 files changed

+107
-25
lines changed

Sources/BasicMathTools/TolerablyEqual.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,9 @@ public extension TolerablyEqual
8383
extension CGFloat: TolerablyEqual { public static var defaultTolerance = CGFloat(CGFloat.NativeType.defaultTolerance) }
8484
extension Float32: TolerablyEqual { public static var defaultTolerance: Float32 = 0.0001 }
8585
extension Float64: TolerablyEqual { public static var defaultTolerance: Float64 = 0.00001 }
86+
#if !arch(arm64)
8687
extension Float80: TolerablyEqual { public static var defaultTolerance: Float80 = 0.000001 }
88+
#endif
8789

8890
extension Int: TolerablyEqual { public static var defaultTolerance: Int = 0 }
8991
extension Int8: TolerablyEqual { public static var defaultTolerance: Int8 = 0 }

Tests/BasicMathToolsTests/TolerablyEqual Tests.swift

Lines changed: 105 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -44,41 +44,121 @@ final class TolerablyEqual_Tests: XCTestCase {
4444
}
4545

4646

47+
func testDefaultTolerance_Float32() {
48+
49+
XCTAssertEqual(Float32.defaultTolerance, 0.0001)
50+
51+
XCTAssertFalse(5 ~== 4 as Float32)
52+
XCTAssertFalse(5 ~== 4.9 as Float32)
53+
XCTAssertFalse(5 ~== 4.99 as Float32)
54+
XCTAssertFalse(5 ~== 4.999 as Float32)
55+
XCTAssertFalse(5 ~== 4.9999 as Float32)
56+
XCTAssertTrue(5 ~== 4.99999 as Float32)
57+
XCTAssertTrue(5 ~== 4.999999 as Float32)
58+
XCTAssertTrue(5 ~== 5 as Float32)
59+
XCTAssertTrue(5 ~== 5.000001 as Float32)
60+
XCTAssertTrue(5 ~== 5.00001 as Float32)
61+
XCTAssertFalse(5 ~== 5.0001 as Float32)
62+
XCTAssertFalse(5 ~== 5.001 as Float32)
63+
XCTAssertFalse(5 ~== 5.01 as Float32)
64+
XCTAssertFalse(5 ~== 5.1 as Float32)
65+
XCTAssertFalse(5 ~== 6 as Float32)
66+
67+
XCTAssertFalse(5 ~== 4.9998 as Float32)
68+
XCTAssertFalse(5 ~== 5.0002 as Float32)
69+
70+
Float32.defaultTolerance = 0.1
71+
72+
XCTAssertEqual(Float32.defaultTolerance, 0.1)
73+
XCTAssertTrue(5 ~== 5.0000001 as Float32)
74+
XCTAssertTrue(5 ~== 5.000001 as Float32)
75+
XCTAssertTrue(5 ~== 5.00001 as Float32)
76+
XCTAssertTrue(5 ~== 5.0001 as Float32)
77+
XCTAssertTrue(5 ~== 5.001 as Float32)
78+
XCTAssertTrue(5 ~== 5.01 as Float32)
79+
XCTAssertTrue(5 ~== 5.1 as Float32)
80+
XCTAssertFalse(5 ~== 6 as Float32)
81+
}
82+
83+
4784
func testDefaultTolerance_Float64() {
4885

4986
XCTAssertEqual(Float64.defaultTolerance, 0.00001)
5087

51-
XCTAssertFalse(5 ~== 4)
52-
XCTAssertFalse(5 ~== 4.9)
53-
XCTAssertFalse(5 ~== 4.99)
54-
XCTAssertFalse(5 ~== 4.999)
55-
XCTAssertFalse(5 ~== 4.9999)
56-
XCTAssertTrue(5 ~== 4.99999)
57-
XCTAssertTrue(5 ~== 4.999999)
58-
XCTAssertTrue(5 ~== 5)
59-
XCTAssertTrue(5 ~== 5.000001)
60-
XCTAssertTrue(5 ~== 5.00001)
61-
XCTAssertFalse(5 ~== 5.0001)
62-
XCTAssertFalse(5 ~== 5.001)
63-
XCTAssertFalse(5 ~== 5.01)
64-
XCTAssertFalse(5 ~== 5.1)
65-
XCTAssertFalse(5 ~== 6)
88+
XCTAssertFalse(5 ~== 4 as Float64)
89+
XCTAssertFalse(5 ~== 4.9 as Float64)
90+
XCTAssertFalse(5 ~== 4.99 as Float64)
91+
XCTAssertFalse(5 ~== 4.999 as Float64)
92+
XCTAssertFalse(5 ~== 4.9999 as Float64)
93+
XCTAssertTrue(5 ~== 4.99999 as Float64)
94+
XCTAssertTrue(5 ~== 4.999999 as Float64)
95+
XCTAssertTrue(5 ~== 5 as Float64)
96+
XCTAssertTrue(5 ~== 5.000001 as Float64)
97+
XCTAssertTrue(5 ~== 5.00001 as Float64)
98+
XCTAssertFalse(5 ~== 5.0001 as Float64)
99+
XCTAssertFalse(5 ~== 5.001 as Float64)
100+
XCTAssertFalse(5 ~== 5.01 as Float64)
101+
XCTAssertFalse(5 ~== 5.1 as Float64)
102+
XCTAssertFalse(5 ~== 6 as Float64)
66103

67-
XCTAssertFalse(5 ~== 4.99998)
68-
XCTAssertFalse(5 ~== 5.00002)
104+
XCTAssertFalse(5 ~== 4.99998 as Float64)
105+
XCTAssertFalse(5 ~== 5.00002 as Float64)
69106

70107
Float64.defaultTolerance = 0.1
71108

72109
XCTAssertEqual(Float64.defaultTolerance, 0.1)
73-
XCTAssertTrue(5 ~== 5.0000001)
74-
XCTAssertTrue(5 ~== 5.000001)
75-
XCTAssertTrue(5 ~== 5.00001)
76-
XCTAssertTrue(5 ~== 5.0001)
77-
XCTAssertTrue(5 ~== 5.001)
78-
XCTAssertTrue(5 ~== 5.01)
79-
XCTAssertTrue(5 ~== 5.1)
80-
XCTAssertFalse(5 ~== 6)
110+
XCTAssertTrue(5 ~== 5.0000001 as Float64)
111+
XCTAssertTrue(5 ~== 5.000001 as Float64)
112+
XCTAssertTrue(5 ~== 5.00001 as Float64)
113+
XCTAssertTrue(5 ~== 5.0001 as Float64)
114+
XCTAssertTrue(5 ~== 5.001 as Float64)
115+
XCTAssertTrue(5 ~== 5.01 as Float64)
116+
XCTAssertTrue(5 ~== 5.1 as Float64)
117+
XCTAssertFalse(5 ~== 6 as Float64)
118+
}
119+
120+
121+
#if !arch(arm64)
122+
func testDefaultTolerance_Float80() {
123+
124+
XCTAssertEqual(Float80.defaultTolerance, 0.000001)
125+
126+
XCTAssertFalse(5 ~== 4 as Float80)
127+
XCTAssertFalse(5 ~== 4.9 as Float80)
128+
XCTAssertFalse(5 ~== 4.99 as Float80)
129+
XCTAssertFalse(5 ~== 4.999 as Float80)
130+
XCTAssertFalse(5 ~== 4.9999 as Float80)
131+
XCTAssertFalse(5 ~== 4.99999 as Float80)
132+
XCTAssertFalse(5 ~== 4.999999 as Float80)
133+
XCTAssertTrue(5 ~== 4.9999999 as Float80)
134+
XCTAssertTrue(5 ~== 4.99999999 as Float80)
135+
XCTAssertTrue(5 ~== 5 as Float80)
136+
XCTAssertTrue(5 ~== 5.00000001 as Float80)
137+
XCTAssertTrue(5 ~== 5.0000001 as Float80)
138+
XCTAssertFalse(5 ~== 5.000001 as Float80)
139+
XCTAssertFalse(5 ~== 5.00001 as Float80)
140+
XCTAssertFalse(5 ~== 5.0001 as Float80)
141+
XCTAssertFalse(5 ~== 5.001 as Float80)
142+
XCTAssertFalse(5 ~== 5.01 as Float80)
143+
XCTAssertFalse(5 ~== 5.1 as Float80)
144+
XCTAssertFalse(5 ~== 6 as Float80)
145+
146+
XCTAssertFalse(5 ~== 4.999998 as Float80)
147+
XCTAssertFalse(5 ~== 5.009002 as Float80)
148+
149+
Float80.defaultTolerance = 0.1
150+
151+
XCTAssertEqual(Float80.defaultTolerance, 0.1)
152+
XCTAssertTrue(5 ~== 5.0000001 as Float80)
153+
XCTAssertTrue(5 ~== 5.000001 as Float80)
154+
XCTAssertTrue(5 ~== 5.00001 as Float80)
155+
XCTAssertTrue(5 ~== 5.0001 as Float80)
156+
XCTAssertTrue(5 ~== 5.001 as Float80)
157+
XCTAssertTrue(5 ~== 5.01 as Float80)
158+
XCTAssertTrue(5 ~== 5.1 as Float80)
159+
XCTAssertFalse(5 ~== 6 as Float80)
81160
}
161+
#endif
82162

83163

84164
static var allTests = [

0 commit comments

Comments
 (0)