From 8219f7888451497b0bbc95394f9e31f4e3eab468 Mon Sep 17 00:00:00 2001 From: Alexander Radchenko Date: Sat, 17 Jun 2023 23:18:31 +0600 Subject: [PATCH] CurrencyNegativePattern can be 16 (#87671) --- ...NumberFormatInfoCurrencyNegativePattern.cs | 3 +- .../System/Globalization/NumberFormatInfo.cs | 42 ++++--------------- .../BigInteger/BigIntegerToStringTests.cs | 3 ++ 3 files changed, 14 insertions(+), 34 deletions(-) diff --git a/src/libraries/System.Globalization/tests/NumberFormatInfo/NumberFormatInfoCurrencyNegativePattern.cs b/src/libraries/System.Globalization/tests/NumberFormatInfo/NumberFormatInfoCurrencyNegativePattern.cs index c001a744652..f8292c4de0f 100644 --- a/src/libraries/System.Globalization/tests/NumberFormatInfo/NumberFormatInfoCurrencyNegativePattern.cs +++ b/src/libraries/System.Globalization/tests/NumberFormatInfo/NumberFormatInfoCurrencyNegativePattern.cs @@ -60,6 +60,7 @@ namespace System.Globalization.Tests [InlineData(0)] [InlineData(1)] [InlineData(15)] + [InlineData(16)] public void CurrencyNegativePattern_Set_GetReturnsExpected(int newCurrencyNegativePattern) { NumberFormatInfo format = new NumberFormatInfo(); @@ -69,7 +70,7 @@ namespace System.Globalization.Tests [Theory] [InlineData(-1)] - [InlineData(16)] + [InlineData(17)] public void CurrencyNegativePattern_SetInvalid_ThrowsArgumentOutOfRangeException(int value) { var format = new NumberFormatInfo(); diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/NumberFormatInfo.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/NumberFormatInfo.cs index 9f4c2f7eb1c..3d01c21c800 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/NumberFormatInfo.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/NumberFormatInfo.cs @@ -244,10 +244,7 @@ namespace System.Globalization { if (value < 0 || value > 99) { - throw new ArgumentOutOfRangeException( - nameof(value), - value, - SR.Format(SR.ArgumentOutOfRange_Range, 0, 99)); + ThrowHelper.ThrowArgumentOutOfRange_Range(nameof(value), value, 0, 99); } VerifyWritable(); @@ -441,12 +438,9 @@ namespace System.Globalization get => _currencyNegativePattern; set { - if (value < 0 || value > 15) + if (value < 0 || value > 16) { - throw new ArgumentOutOfRangeException( - nameof(value), - value, - SR.Format(SR.ArgumentOutOfRange_Range, 0, 15)); + ThrowHelper.ThrowArgumentOutOfRange_Range(nameof(value), value, 0, 16); } VerifyWritable(); @@ -462,10 +456,7 @@ namespace System.Globalization // NOTENOTE: the range of value should correspond to negNumberFormats[] in vm\COMNumber.cpp. if (value < 0 || value > 4) { - throw new ArgumentOutOfRangeException( - nameof(value), - value, - SR.Format(SR.ArgumentOutOfRange_Range, 0, 4)); + ThrowHelper.ThrowArgumentOutOfRange_Range(nameof(value), value, 0, 4); } VerifyWritable(); @@ -481,10 +472,7 @@ namespace System.Globalization // NOTENOTE: the range of value should correspond to posPercentFormats[] in vm\COMNumber.cpp. if (value < 0 || value > 3) { - throw new ArgumentOutOfRangeException( - nameof(value), - value, - SR.Format(SR.ArgumentOutOfRange_Range, 0, 3)); + ThrowHelper.ThrowArgumentOutOfRange_Range(nameof(value), value, 0, 3); } VerifyWritable(); @@ -500,10 +488,7 @@ namespace System.Globalization // NOTENOTE: the range of value should correspond to posPercentFormats[] in vm\COMNumber.cpp. if (value < 0 || value > 11) { - throw new ArgumentOutOfRangeException( - nameof(value), - value, - SR.Format(SR.ArgumentOutOfRange_Range, 0, 11)); + ThrowHelper.ThrowArgumentOutOfRange_Range(nameof(value), value, 0, 11); } VerifyWritable(); @@ -563,10 +548,7 @@ namespace System.Globalization { if (value < 0 || value > 99) { - throw new ArgumentOutOfRangeException( - nameof(value), - value, - SR.Format(SR.ArgumentOutOfRange_Range, 0, 99)); + ThrowHelper.ThrowArgumentOutOfRange_Range(nameof(value), value, 0, 99); } VerifyWritable(); @@ -623,10 +605,7 @@ namespace System.Globalization { if (value < 0 || value > 3) { - throw new ArgumentOutOfRangeException( - nameof(value), - value, - SR.Format(SR.ArgumentOutOfRange_Range, 0, 3)); + ThrowHelper.ThrowArgumentOutOfRange_Range(nameof(value), value, 0, 3); } VerifyWritable(); @@ -686,10 +665,7 @@ namespace System.Globalization { if (value < 0 || value > 99) { - throw new ArgumentOutOfRangeException( - nameof(value), - value, - SR.Format(SR.ArgumentOutOfRange_Range, 0, 99)); + ThrowHelper.ThrowArgumentOutOfRange_Range(nameof(value), value, 0, 99); } VerifyWritable(); diff --git a/src/libraries/System.Runtime.Numerics/tests/BigInteger/BigIntegerToStringTests.cs b/src/libraries/System.Runtime.Numerics/tests/BigInteger/BigIntegerToStringTests.cs index 533d3c623df..a3df88edaa2 100644 --- a/src/libraries/System.Runtime.Numerics/tests/BigInteger/BigIntegerToStringTests.cs +++ b/src/libraries/System.Runtime.Numerics/tests/BigInteger/BigIntegerToStringTests.cs @@ -718,6 +718,9 @@ namespace System.Numerics.Tests pre = "("; post = " " + nfi.CurrencySymbol + ")"; break; + case 16: + pre = nfi.CurrencySymbol + nfi.NegativeSign + " "; + break; } } else -- 2.34.1