@@ -98,13 +98,10 @@ class TestNSNumberBridging : XCTestCase {
98
98
XCTAssertEqual ( Int ( exactly: interestingValue) , int)
99
99
let uint = UInt ( exactly: number!)
100
100
XCTAssertEqual ( UInt ( exactly: interestingValue) , uint)
101
-
102
101
let float = Float ( exactly: number!)
103
- let expectedFloat = Float ( exactly: interestingValue)
104
- testFloat ( expectedFloat, float)
102
+ XCTAssertEqual ( Float ( interestingValue) , float)
105
103
let double = Double ( exactly: number!)
106
- let expectedDouble = Double ( exactly: interestingValue)
107
- testDouble ( expectedDouble, double)
104
+ XCTAssertEqual ( Double ( interestingValue) , double)
108
105
}
109
106
let bridged = interestingValue. _bridgeToObjectiveC ( )
110
107
testNumber ( bridged)
@@ -137,13 +134,10 @@ class TestNSNumberBridging : XCTestCase {
137
134
XCTAssertEqual ( Int ( exactly: interestingValue) , int)
138
135
let uint = UInt ( exactly: number!)
139
136
XCTAssertEqual ( UInt ( exactly: interestingValue) , uint)
140
-
141
137
let float = Float ( exactly: number!)
142
- let expectedFloat = Float ( exactly: interestingValue)
143
- testFloat ( expectedFloat, float)
138
+ XCTAssertEqual ( Float ( interestingValue) , float)
144
139
let double = Double ( exactly: number!)
145
- let expectedDouble = Double ( exactly: interestingValue)
146
- testDouble ( expectedDouble, double)
140
+ XCTAssertEqual ( Double ( interestingValue) , double)
147
141
}
148
142
let bridged = interestingValue. _bridgeToObjectiveC ( )
149
143
testNumber ( bridged)
@@ -176,13 +170,10 @@ class TestNSNumberBridging : XCTestCase {
176
170
XCTAssertEqual ( Int ( exactly: interestingValue) , int)
177
171
let uint = UInt ( exactly: number!)
178
172
XCTAssertEqual ( UInt ( exactly: interestingValue) , uint)
179
-
180
173
let float = Float ( exactly: number!)
181
- let expectedFloat = Float ( exactly: interestingValue)
182
- testFloat ( expectedFloat, float)
174
+ XCTAssertEqual ( Float ( interestingValue) , float)
183
175
let double = Double ( exactly: number!)
184
- let expectedDouble = Double ( exactly: interestingValue)
185
- testDouble ( expectedDouble, double)
176
+ XCTAssertEqual ( Double ( interestingValue) , double)
186
177
}
187
178
let bridged = interestingValue. _bridgeToObjectiveC ( )
188
179
testNumber ( bridged)
@@ -215,13 +206,10 @@ class TestNSNumberBridging : XCTestCase {
215
206
XCTAssertEqual ( Int ( exactly: interestingValue) , int)
216
207
let uint = UInt ( exactly: number!)
217
208
XCTAssertEqual ( UInt ( exactly: interestingValue) , uint)
218
-
219
209
let float = Float ( exactly: number!)
220
- let expectedFloat = Float ( exactly: interestingValue)
221
- testFloat ( expectedFloat, float)
210
+ XCTAssertEqual ( Float ( interestingValue) , float)
222
211
let double = Double ( exactly: number!)
223
- let expectedDouble = Double ( exactly: interestingValue)
224
- testDouble ( expectedDouble, double)
212
+ XCTAssertEqual ( Double ( interestingValue) , double)
225
213
}
226
214
let bridged = interestingValue. _bridgeToObjectiveC ( )
227
215
testNumber ( bridged)
@@ -254,12 +242,15 @@ class TestNSNumberBridging : XCTestCase {
254
242
XCTAssertEqual ( Int ( exactly: interestingValue) , int)
255
243
let uint = UInt ( exactly: number!)
256
244
XCTAssertEqual ( UInt ( exactly: interestingValue) , uint)
257
-
258
245
let float = Float ( exactly: number!)
259
- let expectedFloat = Float ( exactly: interestingValue)
260
- testFloat ( expectedFloat, float)
246
+ let expectedFloat = Float ( exactly: int32!)
247
+ // these are disabled because of https://bugs.swift.org/browse/SR-4634
248
+ if ( int32! != Int32 . min && int32! != Int32 . max &&
249
+ int32! != Int32 . min + 1 && int32! != Int32 . max - 1 ) {
250
+ testFloat ( expectedFloat, float)
251
+ }
261
252
let double = Double ( exactly: number!)
262
- let expectedDouble = Double ( exactly: interestingValue )
253
+ let expectedDouble = Double ( exactly: int32! )
263
254
testDouble ( expectedDouble, double)
264
255
}
265
256
let bridged = interestingValue. _bridgeToObjectiveC ( )
@@ -293,12 +284,14 @@ class TestNSNumberBridging : XCTestCase {
293
284
XCTAssertEqual ( Int ( exactly: interestingValue) , int)
294
285
let uint = UInt ( exactly: number!)
295
286
XCTAssertEqual ( UInt ( exactly: interestingValue) , uint)
296
-
297
287
let float = Float ( exactly: number!)
298
- let expectedFloat = Float ( exactly: interestingValue)
299
- testFloat ( expectedFloat, float)
288
+ let expectedFloat = Float ( exactly: uint32!)
289
+ // these are disabled because of https://bugs.swift.org/browse/SR-4634
290
+ if ( uint32! != UInt32 . max && uint32! != UInt32 . max - 1 ) {
291
+ testFloat ( expectedFloat, float)
292
+ }
300
293
let double = Double ( exactly: number!)
301
- let expectedDouble = Double ( exactly: interestingValue )
294
+ let expectedDouble = Double ( exactly: uint32! )
302
295
testDouble ( expectedDouble, double)
303
296
}
304
297
let bridged = interestingValue. _bridgeToObjectiveC ( )
@@ -332,13 +325,10 @@ class TestNSNumberBridging : XCTestCase {
332
325
XCTAssertEqual ( Int ( exactly: interestingValue) , int)
333
326
let uint = UInt ( exactly: number!)
334
327
XCTAssertEqual ( UInt ( exactly: interestingValue) , uint)
335
-
336
328
let float = Float ( exactly: number!)
337
- let expectedFloat = Float ( exactly: interestingValue)
338
- testFloat ( expectedFloat, float)
329
+ XCTAssertEqual ( Float ( interestingValue) , float)
339
330
let double = Double ( exactly: number!)
340
- let expectedDouble = Double ( exactly: interestingValue)
341
- testDouble ( expectedDouble, double)
331
+ XCTAssertEqual ( Double ( interestingValue) , double)
342
332
}
343
333
let bridged = interestingValue. _bridgeToObjectiveC ( )
344
334
testNumber ( bridged)
@@ -371,13 +361,10 @@ class TestNSNumberBridging : XCTestCase {
371
361
XCTAssertEqual ( Int ( exactly: interestingValue) , int)
372
362
let uint = UInt ( exactly: number!)
373
363
XCTAssertEqual ( UInt ( exactly: interestingValue) , uint)
374
-
375
364
let float = Float ( exactly: number!)
376
- let expectedFloat = Float ( exactly: interestingValue)
377
- testFloat ( expectedFloat, float)
365
+ XCTAssertEqual ( Float ( interestingValue) , float)
378
366
let double = Double ( exactly: number!)
379
- let expectedDouble = Double ( exactly: interestingValue)
380
- testDouble ( expectedDouble, double)
367
+ XCTAssertEqual ( Double ( interestingValue) , double)
381
368
}
382
369
let bridged = interestingValue. _bridgeToObjectiveC ( )
383
370
testNumber ( bridged)
@@ -410,13 +397,10 @@ class TestNSNumberBridging : XCTestCase {
410
397
XCTAssertEqual ( Int ( exactly: interestingValue) , int)
411
398
let uint = UInt ( exactly: number!)
412
399
XCTAssertEqual ( UInt ( exactly: interestingValue) , uint)
413
-
414
400
let float = Float ( exactly: number!)
415
- let expectedFloat = Float ( exactly: interestingValue)
416
- testFloat ( expectedFloat, float)
401
+ XCTAssertEqual ( Float ( interestingValue) , float)
417
402
let double = Double ( exactly: number!)
418
- let expectedDouble = Double ( exactly: interestingValue)
419
- testDouble ( expectedDouble, double)
403
+ XCTAssertEqual ( Double ( interestingValue) , double)
420
404
}
421
405
let bridged = interestingValue. _bridgeToObjectiveC ( )
422
406
testNumber ( bridged)
@@ -449,13 +433,10 @@ class TestNSNumberBridging : XCTestCase {
449
433
XCTAssertEqual ( Int ( exactly: interestingValue) , int)
450
434
let uint = UInt ( exactly: number!)
451
435
XCTAssertEqual ( UInt ( exactly: interestingValue) , uint)
452
-
453
436
let float = Float ( exactly: number!)
454
- let expectedFloat = Float ( exactly: interestingValue)
455
- testFloat ( expectedFloat, float)
437
+ XCTAssertEqual ( Float ( interestingValue) , float)
456
438
let double = Double ( exactly: number!)
457
- let expectedDouble = Double ( exactly: interestingValue)
458
- testDouble ( expectedDouble, double)
439
+ XCTAssertEqual ( Double ( interestingValue) , double)
459
440
}
460
441
let bridged = interestingValue. _bridgeToObjectiveC ( )
461
442
testNumber ( bridged)
@@ -489,11 +470,12 @@ class TestNSNumberBridging : XCTestCase {
489
470
let uint = UInt ( exactly: number!)
490
471
XCTAssertEqual ( UInt ( exactly: interestingValue) , uint)
491
472
492
- let float = Float ( exactly : number!)
493
- let expectedFloat = Float ( exactly : interestingValue)
473
+ let float = Float ( truncating : number!)
474
+ let expectedFloat = interestingValue
494
475
testFloat ( expectedFloat, float)
495
- let double = Double ( exactly: number!)
496
- let expectedDouble = Double ( exactly: interestingValue)
476
+
477
+ let double = Double ( truncating: number!)
478
+ let expectedDouble = Double ( reasonably: interestingValue)
497
479
testDouble ( expectedDouble, double)
498
480
}
499
481
let bridged = interestingValue. _bridgeToObjectiveC ( )
@@ -528,11 +510,12 @@ class TestNSNumberBridging : XCTestCase {
528
510
let uint = UInt ( exactly: number!)
529
511
XCTAssertEqual ( UInt ( exactly: interestingValue) , uint)
530
512
531
- let float = Float ( exactly : number!)
532
- let expectedFloat = Float ( exactly : interestingValue)
513
+ let float = Float ( truncating : number!)
514
+ let expectedFloat = Float ( reasonably : interestingValue)
533
515
testFloat ( expectedFloat, float)
516
+
534
517
let double = Double ( exactly: number!)
535
- let expectedDouble = Double ( exactly : interestingValue)
518
+ let expectedDouble = interestingValue
536
519
testDouble ( expectedDouble, double)
537
520
}
538
521
let bridged = interestingValue. _bridgeToObjectiveC ( )
0 commit comments