private static void DoTest(string left, string right, ComparerEquality expectedResult, NaturalComparer comparer) { var result = comparer.Compare(left, right); switch (expectedResult) { case ComparerEquality.LessThan: Assert.True(result <= (int)expectedResult, $"Result: {result} Expected Result: {expectedResult}({(int)expectedResult})"); break; case ComparerEquality.Equal: Assert.True(result == (int)expectedResult, $"Result: {result} Expected Result: {expectedResult}({(int)expectedResult})"); break; case ComparerEquality.GreaterThan: Assert.True(result >= (int)expectedResult, $"Result: {result} Expected Result: {expectedResult}({(int)expectedResult})"); break; default: throw new ArgumentOutOfRangeException(nameof(expectedResult), expectedResult, null); } }
public void Tests(string a, string b, string[] weights, WeightedNaturalComparer.WeightedNaturalComparerOptions options, ComparerEquality expected) { var comparer = new WeightedNaturalComparer(weights, options); switch (expected) { case ComparerEquality.LessThan: comparer.Compare(a, b).Should().BeLessThan(0); break; case ComparerEquality.Equal: comparer.Compare(a, b).Should().Be(0); break; case ComparerEquality.GreaterThan: comparer.Compare(a, b).Should().BeGreaterThan(0); break; default: throw new ArgumentOutOfRangeException(nameof(expected), expected, null); } }
public void TestCompare(string left, string right, ComparerEquality expectedResult, NaturalComparerOptions options = NaturalComparerOptions.None) { var comparer = new NaturalComparer(options); DoTest(left, right, expectedResult, comparer); }