Skip to content

Commit d29bc22

Browse files
authored
Merge pull request #3071 from xwu/decimal-floatingpoint
Restore previous value of `Decimal.leastFiniteMagnitude` for compatibility and deprecate
2 parents d8cc90f + ca19c28 commit d29bc22

File tree

5 files changed

+5
-10
lines changed

5 files changed

+5
-10
lines changed

Darwin/Foundation-swiftoverlay-Tests/TestDecimal.swift

-2
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,6 @@ class TestDecimal : XCTestCase {
123123
XCTAssertEqual(leastNormal, Decimal.leastNormalMagnitude)
124124
let leastNonzero = Decimal(_exponent: -128, _length: 1, _isNegative: 0, _isCompact: 1, _reserved: 0, _mantissa: (1, 0, 0, 0, 0, 0, 0, 0))
125125
XCTAssertEqual(leastNonzero, Decimal.leastNonzeroMagnitude)
126-
let leastFinite = 0 as Decimal
127-
XCTAssertEqual(leastFinite, Decimal.leastFiniteMagnitude)
128126
let pi = Decimal(_exponent: -38, _length: 8, _isNegative: 0, _isCompact: 1, _reserved: 0, _mantissa: (0x6623, 0x7d57, 0x16e7, 0xad0d, 0xaf52, 0x4641, 0xdfa7, 0xec58))
129127
XCTAssertEqual(pi, Decimal.pi)
130128
XCTAssertEqual(10, Decimal.radix)

Darwin/Foundation-swiftoverlay/Decimal.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,8 @@ extension Decimal {
350350

351351
public static let leastNonzeroMagnitude = leastNormalMagnitude
352352

353-
public static let leastFiniteMagnitude = zero
353+
@available(*, deprecated, message: "Use '-Decimal.greatestFiniteMagnitude' for least finite value or '0' for least finite magnitude")
354+
public static let leastFiniteMagnitude = -greatestFiniteMagnitude
354355

355356
public static let pi = Decimal(
356357
_exponent: -38,

Sources/Foundation/Decimal.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -518,7 +518,8 @@ extension Decimal {
518518

519519
public static let leastNonzeroMagnitude = leastNormalMagnitude
520520

521-
public static let leastFiniteMagnitude = zero
521+
@available(*, deprecated, message: "Use '-Decimal.greatestFiniteMagnitude' for least finite value or '0' for least finite magnitude")
522+
public static let leastFiniteMagnitude = -greatestFiniteMagnitude
522523

523524
public static let pi = Decimal(
524525
_exponent: -38,

Tests/Foundation/Tests/TestDecimal.swift

+1-4
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,6 @@ class TestDecimal: XCTestCase {
147147
XCTAssertEqual(leastNormal, Decimal.leastNormalMagnitude)
148148
let leastNonzero = Decimal(_exponent: -128, _length: 1, _isNegative: 0, _isCompact: 1, _reserved: 0, _mantissa: (1, 0, 0, 0, 0, 0, 0, 0))
149149
XCTAssertEqual(leastNonzero, Decimal.leastNonzeroMagnitude)
150-
let leastFinite = 0 as Decimal
151-
XCTAssertEqual(leastFinite, Decimal.leastFiniteMagnitude)
152150
let pi = Decimal(_exponent: -38, _length: 8, _isNegative: 0, _isCompact: 1, _reserved: 0, _mantissa: (0x6623, 0x7d57, 0x16e7, 0xad0d, 0xaf52, 0x4641, 0xdfa7, 0xec58))
153151
XCTAssertEqual(pi, Decimal.pi)
154152
XCTAssertEqual(10, Decimal.radix)
@@ -185,7 +183,6 @@ class TestDecimal: XCTestCase {
185183
XCTAssertEqual("3402823669209384634633746074317682114550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", Decimal.greatestFiniteMagnitude.description)
186184
XCTAssertEqual("0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", Decimal.leastNormalMagnitude.description)
187185
XCTAssertEqual("0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", Decimal.leastNonzeroMagnitude.description)
188-
XCTAssertEqual("0", Decimal.leastFiniteMagnitude.description)
189186

190187
let fr = Locale(identifier: "fr_FR")
191188
let greatestFiniteMagnitude = "3402823669209384634633746074317682114550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
@@ -387,7 +384,7 @@ class TestDecimal: XCTestCase {
387384
XCTAssertEqual((1 as Decimal).magnitude, abs(-1 as Decimal))
388385
XCTAssertEqual((-1 as Decimal).magnitude, abs(-1 as Decimal))
389386
XCTAssertEqual((-1 as Decimal).magnitude, abs(1 as Decimal))
390-
XCTAssertEqual(Decimal.leastFiniteMagnitude.magnitude, -Decimal.leastFiniteMagnitude)
387+
XCTAssertEqual(Decimal.leastFiniteMagnitude.magnitude, -Decimal.leastFiniteMagnitude) // A bit of a misnomer.
391388
XCTAssertEqual(Decimal.greatestFiniteMagnitude.magnitude, Decimal.greatestFiniteMagnitude)
392389
XCTAssertTrue(Decimal.nan.magnitude.isNaN)
393390

Tests/Foundation/Tests/TestJSONSerialization.swift

-2
Original file line numberDiff line numberDiff line change
@@ -1428,8 +1428,6 @@ extension TestJSONSerialization {
14281428
}
14291429

14301430
func test_serialize_Decimal() {
1431-
XCTAssertEqual(try trySerialize([-Decimal.leastFiniteMagnitude]), "[0]")
1432-
XCTAssertEqual(try trySerialize([Decimal.leastFiniteMagnitude]), "[0]")
14331431
XCTAssertEqual(try trySerialize([-Decimal.leastNonzeroMagnitude]), "[-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001]")
14341432
XCTAssertEqual(try trySerialize([Decimal.leastNonzeroMagnitude]), "[0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001]")
14351433
XCTAssertEqual(try trySerialize([-Decimal.greatestFiniteMagnitude]), "[-3402823669209384634633746074317682114550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000]")

0 commit comments

Comments
 (0)