From ca19c2848160f16eeb1f92732976ac5c60acbfb5 Mon Sep 17 00:00:00 2001 From: Xiaodi Wu <13952+xwu@users.noreply.github.com> Date: Mon, 30 Aug 2021 11:22:21 -0400 Subject: [PATCH] Restore previous value of Decimal.leastFiniteMagnitude for compatibility and deprecate. --- Darwin/Foundation-swiftoverlay-Tests/TestDecimal.swift | 2 -- Darwin/Foundation-swiftoverlay/Decimal.swift | 3 ++- Sources/Foundation/Decimal.swift | 3 ++- Tests/Foundation/Tests/TestDecimal.swift | 5 +---- Tests/Foundation/Tests/TestJSONSerialization.swift | 2 -- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/Darwin/Foundation-swiftoverlay-Tests/TestDecimal.swift b/Darwin/Foundation-swiftoverlay-Tests/TestDecimal.swift index a816a0902a..37ffcc08fa 100644 --- a/Darwin/Foundation-swiftoverlay-Tests/TestDecimal.swift +++ b/Darwin/Foundation-swiftoverlay-Tests/TestDecimal.swift @@ -123,8 +123,6 @@ class TestDecimal : XCTestCase { XCTAssertEqual(leastNormal, Decimal.leastNormalMagnitude) let leastNonzero = Decimal(_exponent: -128, _length: 1, _isNegative: 0, _isCompact: 1, _reserved: 0, _mantissa: (1, 0, 0, 0, 0, 0, 0, 0)) XCTAssertEqual(leastNonzero, Decimal.leastNonzeroMagnitude) - let leastFinite = 0 as Decimal - XCTAssertEqual(leastFinite, Decimal.leastFiniteMagnitude) let pi = Decimal(_exponent: -38, _length: 8, _isNegative: 0, _isCompact: 1, _reserved: 0, _mantissa: (0x6623, 0x7d57, 0x16e7, 0xad0d, 0xaf52, 0x4641, 0xdfa7, 0xec58)) XCTAssertEqual(pi, Decimal.pi) XCTAssertEqual(10, Decimal.radix) diff --git a/Darwin/Foundation-swiftoverlay/Decimal.swift b/Darwin/Foundation-swiftoverlay/Decimal.swift index d29a5d5815..c28edd5918 100644 --- a/Darwin/Foundation-swiftoverlay/Decimal.swift +++ b/Darwin/Foundation-swiftoverlay/Decimal.swift @@ -307,7 +307,8 @@ extension Decimal { public static let leastNonzeroMagnitude = leastNormalMagnitude - public static let leastFiniteMagnitude = zero + @available(*, deprecated, message: "Use '-Decimal.greatestFiniteMagnitude' for least finite value or '0' for least finite magnitude") + public static let leastFiniteMagnitude = -greatestFiniteMagnitude public static let pi = Decimal( _exponent: -38, diff --git a/Sources/Foundation/Decimal.swift b/Sources/Foundation/Decimal.swift index 1eed80edd2..760e8b8d11 100644 --- a/Sources/Foundation/Decimal.swift +++ b/Sources/Foundation/Decimal.swift @@ -515,7 +515,8 @@ extension Decimal { public static let leastNonzeroMagnitude = leastNormalMagnitude - public static let leastFiniteMagnitude = zero + @available(*, deprecated, message: "Use '-Decimal.greatestFiniteMagnitude' for least finite value or '0' for least finite magnitude") + public static let leastFiniteMagnitude = -greatestFiniteMagnitude public static let pi = Decimal( _exponent: -38, diff --git a/Tests/Foundation/Tests/TestDecimal.swift b/Tests/Foundation/Tests/TestDecimal.swift index 4b451e308b..2f8067693d 100644 --- a/Tests/Foundation/Tests/TestDecimal.swift +++ b/Tests/Foundation/Tests/TestDecimal.swift @@ -144,8 +144,6 @@ class TestDecimal: XCTestCase { XCTAssertEqual(leastNormal, Decimal.leastNormalMagnitude) let leastNonzero = Decimal(_exponent: -128, _length: 1, _isNegative: 0, _isCompact: 1, _reserved: 0, _mantissa: (1, 0, 0, 0, 0, 0, 0, 0)) XCTAssertEqual(leastNonzero, Decimal.leastNonzeroMagnitude) - let leastFinite = 0 as Decimal - XCTAssertEqual(leastFinite, Decimal.leastFiniteMagnitude) let pi = Decimal(_exponent: -38, _length: 8, _isNegative: 0, _isCompact: 1, _reserved: 0, _mantissa: (0x6623, 0x7d57, 0x16e7, 0xad0d, 0xaf52, 0x4641, 0xdfa7, 0xec58)) XCTAssertEqual(pi, Decimal.pi) XCTAssertEqual(10, Decimal.radix) @@ -182,7 +180,6 @@ class TestDecimal: XCTestCase { XCTAssertEqual("3402823669209384634633746074317682114550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", Decimal.greatestFiniteMagnitude.description) XCTAssertEqual("0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", Decimal.leastNormalMagnitude.description) XCTAssertEqual("0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", Decimal.leastNonzeroMagnitude.description) - XCTAssertEqual("0", Decimal.leastFiniteMagnitude.description) let fr = Locale(identifier: "fr_FR") let greatestFiniteMagnitude = "3402823669209384634633746074317682114550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" @@ -386,7 +383,7 @@ class TestDecimal: XCTestCase { XCTAssertEqual((1 as Decimal).magnitude, abs(-1 as Decimal)) XCTAssertEqual((-1 as Decimal).magnitude, abs(-1 as Decimal)) XCTAssertEqual((-1 as Decimal).magnitude, abs(1 as Decimal)) - XCTAssertEqual(Decimal.leastFiniteMagnitude.magnitude, -Decimal.leastFiniteMagnitude) + XCTAssertEqual(Decimal.leastFiniteMagnitude.magnitude, -Decimal.leastFiniteMagnitude) // A bit of a misnomer. XCTAssertEqual(Decimal.greatestFiniteMagnitude.magnitude, Decimal.greatestFiniteMagnitude) XCTAssertTrue(Decimal.nan.magnitude.isNaN) diff --git a/Tests/Foundation/Tests/TestJSONSerialization.swift b/Tests/Foundation/Tests/TestJSONSerialization.swift index d791634c1b..02f7399d85 100644 --- a/Tests/Foundation/Tests/TestJSONSerialization.swift +++ b/Tests/Foundation/Tests/TestJSONSerialization.swift @@ -1428,8 +1428,6 @@ extension TestJSONSerialization { } func test_serialize_Decimal() { - XCTAssertEqual(try trySerialize([-Decimal.leastFiniteMagnitude]), "[0]") - XCTAssertEqual(try trySerialize([Decimal.leastFiniteMagnitude]), "[0]") XCTAssertEqual(try trySerialize([-Decimal.leastNonzeroMagnitude]), "[-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001]") XCTAssertEqual(try trySerialize([Decimal.leastNonzeroMagnitude]), "[0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001]") XCTAssertEqual(try trySerialize([-Decimal.greatestFiniteMagnitude]), "[-3402823669209384634633746074317682114550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000]")