From 586b6d3225309a99b32c8631a57fbb9e91d9307f Mon Sep 17 00:00:00 2001 From: Alexander Radchenko Date: Mon, 19 Dec 2016 23:24:33 +0700 Subject: [PATCH 01/10] Make it easier to use StringComparison & StringComparer with GetHashCode --- .../tests/System/StringComparer.netstandard1.7.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs b/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs index ba9fece11d56..a6ec7f2b7632 100644 --- a/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs +++ b/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs @@ -59,5 +59,17 @@ public static void InvariantTest() Assert.Equal(StringComparer.InvariantCultureIgnoreCase.GetHashCode("test"), StringComparer.InvariantCultureIgnoreCase.GetHashCode("TEST")); Assert.Equal(0, StringComparer.InvariantCultureIgnoreCase.Compare("test", "TEST")); } + + [Theory] + [InlineData(StringComparison.CurrentCulture, StringComparer.CurrentCulture)] + [InlineData(StringComparison.CurrentCultureIgnoreCase, StringComparer.CurrentCultureIgnoreCase)] + [InlineData(StringComparison.InvariantCulture, StringComparer.InvariantCulture)] + [InlineData(StringComparison.InvariantCultureIgnoreCase, StringComparer.InvariantCultureIgnoreCase)] + [InlineData(StringComparison.Ordinal, StringComparer.Ordinal)] + [InlineData(StringComparison.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase)] + public static void FromComparisonTest(StringComparison ñomparison, StringComparer comparer) + { + Assert.Equal(comparer, StringComparer.FromComparison(ñomparison)); + } } } From 2623c40cba6900ee84494bddf95b5c7e85c1c0b7 Mon Sep 17 00:00:00 2001 From: Alexander Radchenko Date: Tue, 20 Dec 2016 00:03:43 +0700 Subject: [PATCH 02/10] comparison --- .../tests/System/StringComparer.netstandard1.7.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs b/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs index a6ec7f2b7632..615431c6cf92 100644 --- a/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs +++ b/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs @@ -67,9 +67,9 @@ public static void InvariantTest() [InlineData(StringComparison.InvariantCultureIgnoreCase, StringComparer.InvariantCultureIgnoreCase)] [InlineData(StringComparison.Ordinal, StringComparer.Ordinal)] [InlineData(StringComparison.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase)] - public static void FromComparisonTest(StringComparison ñomparison, StringComparer comparer) + public static void FromComparisonTest(StringComparison comparison, StringComparer comparer) { - Assert.Equal(comparer, StringComparer.FromComparison(ñomparison)); + Assert.Equal(comparer, StringComparer.FromComparison(comparison)); } } } From 153bb1df0b7b244c347fb6be671f0bcfe00b7fb9 Mon Sep 17 00:00:00 2001 From: Alexander Radchenko Date: Tue, 20 Dec 2016 00:49:12 +0700 Subject: [PATCH 03/10] StringComparison.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase --- .../System/StringComparer.netstandard1.7.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs b/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs index 615431c6cf92..7acfa1e7da9d 100644 --- a/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs +++ b/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs @@ -60,13 +60,19 @@ public static void InvariantTest() Assert.Equal(0, StringComparer.InvariantCultureIgnoreCase.Compare("test", "TEST")); } + public static IEnumerable FromComparison_TestData() + { + // StringComparison StringComparer + yield return new object[] { StringComparison.CurrentCulture, StringComparer.CurrentCulture }; + yield return new object[] { StringComparison.CurrentCultureIgnoreCase, StringComparer.CurrentCultureIgnoreCase }; + yield return new object[] { StringComparison.InvariantCulture, StringComparer.InvariantCulture }; + yield return new object[] { StringComparison.InvariantCultureIgnoreCase, StringComparer.InvariantCultureIgnoreCase }; + yield return new object[] { StringComparison.Ordinal, StringComparer.Ordinal }; + yield return new object[] { StringComparison.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase }; + } + [Theory] - [InlineData(StringComparison.CurrentCulture, StringComparer.CurrentCulture)] - [InlineData(StringComparison.CurrentCultureIgnoreCase, StringComparer.CurrentCultureIgnoreCase)] - [InlineData(StringComparison.InvariantCulture, StringComparer.InvariantCulture)] - [InlineData(StringComparison.InvariantCultureIgnoreCase, StringComparer.InvariantCultureIgnoreCase)] - [InlineData(StringComparison.Ordinal, StringComparer.Ordinal)] - [InlineData(StringComparison.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase)] + [MemberData(nameof(FromComparison_TestData))] public static void FromComparisonTest(StringComparison comparison, StringComparer comparer) { Assert.Equal(comparer, StringComparer.FromComparison(comparison)); From 2f468d82b76848aacb3224b661043b3d77214a17 Mon Sep 17 00:00:00 2001 From: Alexander Radchenko Date: Tue, 20 Dec 2016 12:53:58 +0700 Subject: [PATCH 04/10] @justinvp Code review --- .../System.Runtime.Extensions.sln | 16 ++++----- .../ref/System.Runtime.Extensions.cs | 3 ++ .../System.Runtime.Extensions.Tests.csproj | 1 + .../System/StringComparer.netcoreapp1.1.cs | 33 +++++++++++++++++++ .../System/StringComparer.netstandard1.7.cs | 20 +---------- 5 files changed, 46 insertions(+), 27 deletions(-) create mode 100644 src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs diff --git a/src/System.Runtime.Extensions/System.Runtime.Extensions.sln b/src/System.Runtime.Extensions/System.Runtime.Extensions.sln index a56140ab8633..4ef1d323a52e 100644 --- a/src/System.Runtime.Extensions/System.Runtime.Extensions.sln +++ b/src/System.Runtime.Extensions/System.Runtime.Extensions.sln @@ -40,14 +40,14 @@ Global EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.Debug|Any CPU.ActiveCfg = Windows_Debug|Any CPU - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.net46_Debug|Any CPU.ActiveCfg = net462_Release|Any CPU - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.net46_Debug|Any CPU.Build.0 = net462_Release|Any CPU - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.net46_Release|Any CPU.ActiveCfg = net462_Release|Any CPU - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.net46_Release|Any CPU.Build.0 = net462_Release|Any CPU - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.netstandard1.7_Debug|Any CPU.ActiveCfg = net463_Release|Any CPU - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.netstandard1.7_Debug|Any CPU.Build.0 = net463_Release|Any CPU - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.netstandard1.7_Release|Any CPU.ActiveCfg = net463_Debug|Any CPU - {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.netstandard1.7_Release|Any CPU.Build.0 = net463_Debug|Any CPU + {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.net46_Debug|Any CPU.ActiveCfg = net461_Release|Any CPU + {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.net46_Debug|Any CPU.Build.0 = net461_Release|Any CPU + {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.net46_Release|Any CPU.ActiveCfg = net461_Release|Any CPU + {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.net46_Release|Any CPU.Build.0 = net461_Release|Any CPU + {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.netstandard1.7_Debug|Any CPU.ActiveCfg = net461_Release|Any CPU + {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.netstandard1.7_Debug|Any CPU.Build.0 = net461_Release|Any CPU + {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.netstandard1.7_Release|Any CPU.ActiveCfg = net461_Release|Any CPU + {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.netstandard1.7_Release|Any CPU.Build.0 = net461_Release|Any CPU {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.Release|Any CPU.ActiveCfg = Windows_Release|Any CPU {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.Unix_Debug|Any CPU.ActiveCfg = Unix_Debug|Any CPU {845D2B72-D8A4-42E5-9BE9-17639EC4FC1A}.Unix_Debug|Any CPU.Build.0 = Unix_Debug|Any CPU diff --git a/src/System.Runtime.Extensions/ref/System.Runtime.Extensions.cs b/src/System.Runtime.Extensions/ref/System.Runtime.Extensions.cs index d5d8c1d14ec4..2652038c19c0 100644 --- a/src/System.Runtime.Extensions/ref/System.Runtime.Extensions.cs +++ b/src/System.Runtime.Extensions/ref/System.Runtime.Extensions.cs @@ -901,6 +901,9 @@ protected StringComparer() { } public static System.StringComparer InvariantCultureIgnoreCase { get { throw null; } } public static System.StringComparer Ordinal { get { throw null; } } public static System.StringComparer OrdinalIgnoreCase { get { throw null; } } +#if netcoreapp11 + public static System.StringComparer FromComparison(System.StringComparison comparison) { throw null; } +#endif public abstract int Compare(string x, string y); public static System.StringComparer Create(System.Globalization.CultureInfo culture, bool ignoreCase) { throw null; } public new bool Equals(object x, object y) { throw null; } diff --git a/src/System.Runtime.Extensions/tests/System.Runtime.Extensions.Tests.csproj b/src/System.Runtime.Extensions/tests/System.Runtime.Extensions.Tests.csproj index ffdffdc7a863..ffa081346231 100644 --- a/src/System.Runtime.Extensions/tests/System.Runtime.Extensions.Tests.csproj +++ b/src/System.Runtime.Extensions/tests/System.Runtime.Extensions.Tests.csproj @@ -55,6 +55,7 @@ + diff --git a/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs b/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs new file mode 100644 index 000000000000..09d64d68a2df --- /dev/null +++ b/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs @@ -0,0 +1,33 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using System.Globalization; +using Xunit; + +namespace System.Tests +{ + public static partial class MiscStringComparerTests + { + public static object[][] FromComparison_TestData() + { + return new object[][] { + // StringComparison StringComparer + new object[] { StringComparison.CurrentCulture, StringComparer.CurrentCulture }, + new object[] { StringComparison.CurrentCultureIgnoreCase, StringComparer.CurrentCultureIgnoreCase }, + new object[] { StringComparison.InvariantCulture, StringComparer.InvariantCulture }, + new object[] { StringComparison.InvariantCultureIgnoreCase, StringComparer.InvariantCultureIgnoreCase }, + new object[] { StringComparison.Ordinal, StringComparer.Ordinal }, + new object[] { StringComparison.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase }, + }; + } + + [Theory] + [MemberData(nameof(FromComparison_TestData))] + public static void FromComparisonTest(StringComparison comparison, StringComparer comparer) + { + Assert.Equal(comparer, StringComparer.FromComparison(comparison)); + } + } +} diff --git a/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs b/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs index 7acfa1e7da9d..d01fd232765d 100644 --- a/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs +++ b/src/System.Runtime.Extensions/tests/System/StringComparer.netstandard1.7.cs @@ -8,7 +8,7 @@ namespace System.Tests { - public static class MiscStringComparerTests + public static partial class MiscStringComparerTests { public static IEnumerable UpperLowerCasing_TestData() { @@ -59,23 +59,5 @@ public static void InvariantTest() Assert.Equal(StringComparer.InvariantCultureIgnoreCase.GetHashCode("test"), StringComparer.InvariantCultureIgnoreCase.GetHashCode("TEST")); Assert.Equal(0, StringComparer.InvariantCultureIgnoreCase.Compare("test", "TEST")); } - - public static IEnumerable FromComparison_TestData() - { - // StringComparison StringComparer - yield return new object[] { StringComparison.CurrentCulture, StringComparer.CurrentCulture }; - yield return new object[] { StringComparison.CurrentCultureIgnoreCase, StringComparer.CurrentCultureIgnoreCase }; - yield return new object[] { StringComparison.InvariantCulture, StringComparer.InvariantCulture }; - yield return new object[] { StringComparison.InvariantCultureIgnoreCase, StringComparer.InvariantCultureIgnoreCase }; - yield return new object[] { StringComparison.Ordinal, StringComparer.Ordinal }; - yield return new object[] { StringComparison.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase }; - } - - [Theory] - [MemberData(nameof(FromComparison_TestData))] - public static void FromComparisonTest(StringComparison comparison, StringComparer comparer) - { - Assert.Equal(comparer, StringComparer.FromComparison(comparison)); - } } } From 45a204accab5af3a3582193507374e6f4b801018 Mon Sep 17 00:00:00 2001 From: Alexander Radchenko Date: Tue, 20 Dec 2016 13:06:16 +0700 Subject: [PATCH 05/10] FromComparisonInvalidTest --- .../tests/System/StringComparer.netcoreapp1.1.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs b/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs index 09d64d68a2df..4f34bfb92f25 100644 --- a/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs +++ b/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Globalization; +using System.Linq; using Xunit; namespace System.Tests @@ -29,5 +30,15 @@ public static void FromComparisonTest(StringComparison comparison, StringCompare { Assert.Equal(comparer, StringComparer.FromComparison(comparison)); } + + [Fact] + public static void FromComparisonInvalidTest() + { + StringComparison minInvalid = Enum.GetValues(typeof(StringComparison)).Cast().Min() - 1; + StringComparison maxInvalid = Enum.GetValues(typeof(StringComparison)).Cast().Max() + 1; + + Assert.Throw(() => { StringComparer.FromComparison(minInvalid); }); + Assert.Throw(() => { StringComparer.FromComparison(maxInvalid); }); + } } } From 4e6b38c195291b8fb55c1bb491762c822c905822 Mon Sep 17 00:00:00 2001 From: Alexander Radchenko Date: Tue, 20 Dec 2016 13:16:23 +0700 Subject: [PATCH 06/10] @justinvp Code review --- .../System/StringComparer.netcoreapp1.1.cs | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs b/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs index 4f34bfb92f25..725a612a71d4 100644 --- a/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs +++ b/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs @@ -11,18 +11,15 @@ namespace System.Tests { public static partial class MiscStringComparerTests { - public static object[][] FromComparison_TestData() - { - return new object[][] { - // StringComparison StringComparer - new object[] { StringComparison.CurrentCulture, StringComparer.CurrentCulture }, - new object[] { StringComparison.CurrentCultureIgnoreCase, StringComparer.CurrentCultureIgnoreCase }, - new object[] { StringComparison.InvariantCulture, StringComparer.InvariantCulture }, - new object[] { StringComparison.InvariantCultureIgnoreCase, StringComparer.InvariantCultureIgnoreCase }, - new object[] { StringComparison.Ordinal, StringComparer.Ordinal }, - new object[] { StringComparison.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase }, - }; - } + public static object[][] FromComparison_TestData = new object[][] { + // StringComparison StringComparer + new object[] { StringComparison.CurrentCulture, StringComparer.CurrentCulture }, + new object[] { StringComparison.CurrentCultureIgnoreCase, StringComparer.CurrentCultureIgnoreCase }, + new object[] { StringComparison.InvariantCulture, StringComparer.InvariantCulture }, + new object[] { StringComparison.InvariantCultureIgnoreCase, StringComparer.InvariantCultureIgnoreCase }, + new object[] { StringComparison.Ordinal, StringComparer.Ordinal }, + new object[] { StringComparison.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase }, + }; [Theory] [MemberData(nameof(FromComparison_TestData))] From 8a2f6b5d0517621475308a705e2dc2e99d4b9eaa Mon Sep 17 00:00:00 2001 From: Alexander Radchenko Date: Tue, 20 Dec 2016 13:17:38 +0700 Subject: [PATCH 07/10] comparisonType --- src/System.Runtime.Extensions/ref/System.Runtime.Extensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/System.Runtime.Extensions/ref/System.Runtime.Extensions.cs b/src/System.Runtime.Extensions/ref/System.Runtime.Extensions.cs index 2652038c19c0..5d6bc798e03f 100644 --- a/src/System.Runtime.Extensions/ref/System.Runtime.Extensions.cs +++ b/src/System.Runtime.Extensions/ref/System.Runtime.Extensions.cs @@ -902,7 +902,7 @@ protected StringComparer() { } public static System.StringComparer Ordinal { get { throw null; } } public static System.StringComparer OrdinalIgnoreCase { get { throw null; } } #if netcoreapp11 - public static System.StringComparer FromComparison(System.StringComparison comparison) { throw null; } + public static System.StringComparer FromComparison(System.StringComparison comparisonType) { throw null; } #endif public abstract int Compare(string x, string y); public static System.StringComparer Create(System.Globalization.CultureInfo culture, bool ignoreCase) { throw null; } From ae7a43038b58948ad30660d0844e5564f2ed8a19 Mon Sep 17 00:00:00 2001 From: Alexander Radchenko Date: Tue, 20 Dec 2016 13:40:35 +0700 Subject: [PATCH 08/10] public static readonly object[][] FromComparison_TestData = --- .../tests/System/StringComparer.netcoreapp1.1.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs b/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs index 725a612a71d4..743b0498c115 100644 --- a/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs +++ b/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs @@ -11,7 +11,8 @@ namespace System.Tests { public static partial class MiscStringComparerTests { - public static object[][] FromComparison_TestData = new object[][] { + public static readonly object[][] FromComparison_TestData = + { // StringComparison StringComparer new object[] { StringComparison.CurrentCulture, StringComparer.CurrentCulture }, new object[] { StringComparison.CurrentCultureIgnoreCase, StringComparer.CurrentCultureIgnoreCase }, From 4bce08f96b4c06ca37fe1e1a4ad3066698f3787b Mon Sep 17 00:00:00 2001 From: Alexander Radchenko Date: Tue, 20 Dec 2016 13:42:36 +0700 Subject: [PATCH 09/10] Assert.Throw(() => StringComparer.FromComparison(minInvalid)); --- .../tests/System/StringComparer.netcoreapp1.1.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs b/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs index 743b0498c115..0edc288f5e3b 100644 --- a/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs +++ b/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs @@ -35,8 +35,8 @@ public static void FromComparisonInvalidTest() StringComparison minInvalid = Enum.GetValues(typeof(StringComparison)).Cast().Min() - 1; StringComparison maxInvalid = Enum.GetValues(typeof(StringComparison)).Cast().Max() + 1; - Assert.Throw(() => { StringComparer.FromComparison(minInvalid); }); - Assert.Throw(() => { StringComparer.FromComparison(maxInvalid); }); + Assert.Throw(() => StringComparer.FromComparison(minInvalid)); + Assert.Throw(() => StringComparer.FromComparison(maxInvalid)); } } } From 689a0d1d4928565fb785825b8064b1c58973ed72 Mon Sep 17 00:00:00 2001 From: Alexander Radchenko Date: Tue, 20 Dec 2016 14:38:12 +0700 Subject: [PATCH 10/10] Throws --- .../tests/System/StringComparer.netcoreapp1.1.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs b/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs index 0edc288f5e3b..ed8ced4f10a5 100644 --- a/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs +++ b/src/System.Runtime.Extensions/tests/System/StringComparer.netcoreapp1.1.cs @@ -35,8 +35,8 @@ public static void FromComparisonInvalidTest() StringComparison minInvalid = Enum.GetValues(typeof(StringComparison)).Cast().Min() - 1; StringComparison maxInvalid = Enum.GetValues(typeof(StringComparison)).Cast().Max() + 1; - Assert.Throw(() => StringComparer.FromComparison(minInvalid)); - Assert.Throw(() => StringComparer.FromComparison(maxInvalid)); + Assert.Throws(() => StringComparer.FromComparison(minInvalid)); + Assert.Throws(() => StringComparer.FromComparison(maxInvalid)); } } }