@@ -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