@@ -137,13 +137,15 @@ class TestDecimal: XCTestCase {
137
137
XCTAssertEqual ( 8 , NSDecimalMaxSize)
138
138
XCTAssertEqual ( 32767 , NSDecimalNoScale)
139
139
let smallest = Decimal ( _exponent: 127 , _length: 8 , _isNegative: 1 , _isCompact: 1 , _reserved: 0 , _mantissa: ( UInt16 . max, UInt16 . max, UInt16 . max, UInt16 . max, UInt16 . max, UInt16 . max, UInt16 . max, UInt16 . max) )
140
- XCTAssertEqual ( smallest, Decimal . leastFiniteMagnitude )
140
+ XCTAssertEqual ( smallest, - Decimal. greatestFiniteMagnitude )
141
141
let biggest = Decimal ( _exponent: 127 , _length: 8 , _isNegative: 0 , _isCompact: 1 , _reserved: 0 , _mantissa: ( UInt16 . max, UInt16 . max, UInt16 . max, UInt16 . max, UInt16 . max, UInt16 . max, UInt16 . max, UInt16 . max) )
142
142
XCTAssertEqual ( biggest, Decimal . greatestFiniteMagnitude)
143
- let leastNormal = Decimal ( _exponent: - 127 , _length: 1 , _isNegative: 0 , _isCompact: 1 , _reserved: 0 , _mantissa: ( 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) )
143
+ let leastNormal = Decimal ( _exponent: - 128 , _length: 1 , _isNegative: 0 , _isCompact: 1 , _reserved: 0 , _mantissa: ( 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) )
144
144
XCTAssertEqual ( leastNormal, Decimal . leastNormalMagnitude)
145
- let leastNonzero = Decimal ( _exponent: - 127 , _length: 1 , _isNegative: 0 , _isCompact: 1 , _reserved: 0 , _mantissa: ( 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) )
145
+ let leastNonzero = Decimal ( _exponent: - 128 , _length: 1 , _isNegative: 0 , _isCompact: 1 , _reserved: 0 , _mantissa: ( 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) )
146
146
XCTAssertEqual ( leastNonzero, Decimal . leastNonzeroMagnitude)
147
+ let leastFinite = 0 as Decimal
148
+ XCTAssertEqual ( leastFinite, Decimal . leastFiniteMagnitude)
147
149
let pi = Decimal ( _exponent: - 38 , _length: 8 , _isNegative: 0 , _isCompact: 1 , _reserved: 0 , _mantissa: ( 0x6623 , 0x7d57 , 0x16e7 , 0xad0d , 0xaf52 , 0x4641 , 0xdfa7 , 0xec58 ) )
148
150
XCTAssertEqual ( pi, Decimal . pi)
149
151
XCTAssertEqual ( 10 , Decimal . radix)
@@ -177,13 +179,12 @@ class TestDecimal: XCTestCase {
177
179
XCTAssertEqual ( " -5 " , Decimal ( signOf: Decimal ( - 3 ) , magnitudeOf: Decimal ( - 5 ) ) . description)
178
180
XCTAssertEqual ( " 5 " , NSDecimalNumber ( decimal: Decimal ( 5 ) ) . description)
179
181
XCTAssertEqual ( " -5 " , NSDecimalNumber ( decimal: Decimal ( - 5 ) ) . description)
180
- XCTAssertEqual ( " -3402823669209384634633746074317682114550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 " , Decimal . leastFiniteMagnitude. description)
181
182
XCTAssertEqual ( " 3402823669209384634633746074317682114550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 " , Decimal . greatestFiniteMagnitude. description)
182
- XCTAssertEqual ( " 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " , Decimal . leastNormalMagnitude. description)
183
- XCTAssertEqual ( " 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " , Decimal . leastNonzeroMagnitude. description)
183
+ XCTAssertEqual ( " 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " , Decimal . leastNormalMagnitude. description)
184
+ XCTAssertEqual ( " 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " , Decimal . leastNonzeroMagnitude. description)
185
+ XCTAssertEqual ( " 0 " , Decimal . leastFiniteMagnitude. description)
184
186
185
187
let fr = Locale ( identifier: " fr_FR " )
186
- let leastFiniteMagnitude = " -3402823669209384634633746074317682114550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 "
187
188
let greatestFiniteMagnitude = " 3402823669209384634633746074317682114550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 "
188
189
189
190
XCTAssertEqual ( " 0 " , NSDecimalNumber ( decimal: Decimal ( ) ) . description ( withLocale: fr) )
@@ -194,10 +195,9 @@ class TestDecimal: XCTestCase {
194
195
XCTAssertEqual ( " 3,14159265358979323846264338327950288419 " , NSDecimalNumber ( decimal: Decimal . pi) . description ( withLocale: fr) )
195
196
XCTAssertEqual ( " -30000000000 " , NSDecimalNumber ( decimal: Decimal ( sign: . minus, exponent: 10 , significand: Decimal ( 3 ) ) ) . description ( withLocale: fr) )
196
197
XCTAssertEqual ( " 123456,789 " , NSDecimalNumber ( decimal: Decimal ( string: " 123456.789 " ) !) . description ( withLocale: fr) )
197
- XCTAssertEqual ( leastFiniteMagnitude, NSDecimalNumber ( decimal: Decimal . leastFiniteMagnitude) . description ( withLocale: fr) )
198
198
XCTAssertEqual ( greatestFiniteMagnitude, NSDecimalNumber ( decimal: Decimal . greatestFiniteMagnitude) . description ( withLocale: fr) )
199
- XCTAssertEqual ( " 0,0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " , NSDecimalNumber ( decimal: Decimal . leastNormalMagnitude) . description ( withLocale: fr) )
200
- XCTAssertEqual ( " 0,0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " , NSDecimalNumber ( decimal: Decimal . leastNonzeroMagnitude) . description ( withLocale: fr) )
199
+ XCTAssertEqual ( " 0,00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " , NSDecimalNumber ( decimal: Decimal . leastNormalMagnitude) . description ( withLocale: fr) )
200
+ XCTAssertEqual ( " 0,00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " , NSDecimalNumber ( decimal: Decimal . leastNonzeroMagnitude) . description ( withLocale: fr) )
201
201
202
202
let en = Locale ( identifier: " en_GB " )
203
203
XCTAssertEqual ( " 0 " , NSDecimalNumber ( decimal: Decimal ( ) ) . description ( withLocale: en) )
@@ -208,10 +208,9 @@ class TestDecimal: XCTestCase {
208
208
XCTAssertEqual ( " 3.14159265358979323846264338327950288419 " , NSDecimalNumber ( decimal: Decimal . pi) . description ( withLocale: en) )
209
209
XCTAssertEqual ( " -30000000000 " , NSDecimalNumber ( decimal: Decimal ( sign: . minus, exponent: 10 , significand: Decimal ( 3 ) ) ) . description ( withLocale: en) )
210
210
XCTAssertEqual ( " 123456.789 " , NSDecimalNumber ( decimal: Decimal ( string: " 123456.789 " ) !) . description ( withLocale: en) )
211
- XCTAssertEqual ( leastFiniteMagnitude, NSDecimalNumber ( decimal: Decimal . leastFiniteMagnitude) . description ( withLocale: en) )
212
211
XCTAssertEqual ( greatestFiniteMagnitude, NSDecimalNumber ( decimal: Decimal . greatestFiniteMagnitude) . description ( withLocale: en) )
213
- XCTAssertEqual ( " 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " , NSDecimalNumber ( decimal: Decimal . leastNormalMagnitude) . description ( withLocale: en) )
214
- XCTAssertEqual ( " 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " , NSDecimalNumber ( decimal: Decimal . leastNonzeroMagnitude) . description ( withLocale: en) )
212
+ XCTAssertEqual ( " 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " , NSDecimalNumber ( decimal: Decimal . leastNormalMagnitude) . description ( withLocale: en) )
213
+ XCTAssertEqual ( " 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 " , NSDecimalNumber ( decimal: Decimal . leastNonzeroMagnitude) . description ( withLocale: en) )
215
214
}
216
215
217
216
func test_ExplicitConstruction( ) {
@@ -333,7 +332,6 @@ class TestDecimal: XCTestCase {
333
332
XCTAssertEqual ( NSDecimalNumber ( floatLiteral: 2880.4 ) . subtracting ( NSDecimalNumber ( floatLiteral: 5538 ) ) , NSDecimalNumber ( floatLiteral: 2880.4 - 5538 ) )
334
333
335
334
XCTAssertEqual ( Decimal . greatestFiniteMagnitude - Decimal. greatestFiniteMagnitude, Decimal ( 0 ) )
336
- XCTAssertEqual ( Decimal . leastFiniteMagnitude - Decimal( 1 ) , Decimal . leastFiniteMagnitude)
337
335
let overflowed = Decimal . greatestFiniteMagnitude + Decimal. greatestFiniteMagnitude
338
336
XCTAssertTrue ( overflowed. isNaN)
339
337
@@ -388,7 +386,7 @@ class TestDecimal: XCTestCase {
388
386
XCTAssertEqual ( ( 1 as Decimal ) . magnitude, abs ( - 1 as Decimal ) )
389
387
XCTAssertEqual ( ( - 1 as Decimal ) . magnitude, abs ( - 1 as Decimal ) )
390
388
XCTAssertEqual ( ( - 1 as Decimal ) . magnitude, abs ( 1 as Decimal ) )
391
- XCTAssertEqual ( Decimal . leastFiniteMagnitude. magnitude, - Decimal. leastFiniteMagnitude) // A bit of a misnomer.
389
+ XCTAssertEqual ( Decimal . leastFiniteMagnitude. magnitude, - Decimal. leastFiniteMagnitude)
392
390
XCTAssertEqual ( Decimal . greatestFiniteMagnitude. magnitude, Decimal . greatestFiniteMagnitude)
393
391
XCTAssertTrue ( Decimal . nan. magnitude. isNaN)
394
392
@@ -568,15 +566,15 @@ class TestDecimal: XCTestCase {
568
566
XCTAssertTrue ( Int ( small. exponent) - Int( large. exponent) < Int ( Int8 . min) )
569
567
XCTAssertNotEqual ( small, large)
570
568
571
- XCTAssertEqual ( small. exponent, - 127 )
569
+ XCTAssertEqual ( small. exponent, - 128 )
572
570
XCTAssertEqual ( large. exponent, 127 )
573
571
XCTAssertEqual ( . lossOfPrecision, NSDecimalNormalize ( & small, & large, . plain) )
574
572
XCTAssertEqual ( small. exponent, 127 )
575
573
XCTAssertEqual ( large. exponent, 127 )
576
574
577
575
small = Decimal . leastNonzeroMagnitude
578
576
large = Decimal . greatestFiniteMagnitude
579
- XCTAssertEqual ( small. exponent, - 127 )
577
+ XCTAssertEqual ( small. exponent, - 128 )
580
578
XCTAssertEqual ( large. exponent, 127 )
581
579
XCTAssertEqual ( . lossOfPrecision, NSDecimalNormalize ( & large, & small, . plain) )
582
580
XCTAssertEqual ( small. exponent, 127 )
0 commit comments