public static string GetLevelByNumber(string levelName, int num) { NameAndNumber levelInfo = GetLevelNameAndNumber(levelName); levelInfo.SetNumber(num); return(levelInfo.GetLevelName()); }
public static string GetLevelByAdding(string levelName, int add) { NameAndNumber levelInfo = GetLevelNameAndNumber(levelName); levelInfo.AddToNumber(add); return(levelInfo.GetLevelName()); }
static void AssertCompareEqual(IEqualityComparer <NameAndNumber> comparer, NameAndNumber x, NameAndNumber y) { Assert.IsTrue(comparer.Equals(x, y)); Assert.IsTrue(comparer.Equals(y, x)); if (x != null && y != null) { Assert.AreEqual(comparer.GetHashCode(x), comparer.GetHashCode(y)); } }
static void AssertCompareNotEqual(IEqualityComparer<NameAndNumber> comparer, NameAndNumber x, NameAndNumber y) { Assert.IsFalse(comparer.Equals(x, y)); Assert.IsFalse(comparer.Equals(y, x)); if (x != null && y != null) { Assert.AreNotEqual(comparer.GetHashCode(x), comparer.GetHashCode(y)); } }
public NameAndNumber NumberConversionService(string name, decimal number) { var _nameAndNumber = new NameAndNumber { Name = name, NumberInWords = NumberToWordConversion.NumberToCurrencyText(number) }; return(_nameAndNumber); }
public void ExplicitComparerTest() { NameAndNumber lowerA = new NameAndNumber { Name = "a", Number = 10 }; NameAndNumber upperA = new NameAndNumber { Name = "A", Number = 10 }; IEqualityComparer<NameAndNumber> ordinalComparer = new ProjectionEqualityComparer<NameAndNumber, string> (z => z.Name, StringComparer.Ordinal); IEqualityComparer<NameAndNumber> insensitiveComparer = new ProjectionEqualityComparer<NameAndNumber, string> (z => z.Name, StringComparer.OrdinalIgnoreCase); AssertCompareNotEqual(ordinalComparer, lowerA, upperA); AssertCompareEqual(insensitiveComparer, lowerA, upperA); }
public void ExplicitComparerTest() { // a is greater than Z with an ordinal comparison, but not with a case-insensitive ordinal comparison NameAndNumber lowerA = new NameAndNumber { Name = "a", Number = 10 }; NameAndNumber upperZ = new NameAndNumber { Name = "Z", Number = 10 }; IComparer<NameAndNumber> ordinalComparer = new ProjectionComparer<NameAndNumber, string> (z => z.Name, StringComparer.Ordinal); IComparer<NameAndNumber> insensitiveComparer = new ProjectionComparer<NameAndNumber, string> (z => z.Name, StringComparer.OrdinalIgnoreCase); Assert.Greater(ordinalComparer.Compare(lowerA, upperZ), 0); Assert.Less(insensitiveComparer.Compare(lowerA, upperZ), 0); }
public void ExplicitComparerTest() { NameAndNumber lowerA = new NameAndNumber { Name = "a", Number = 10 }; NameAndNumber upperA = new NameAndNumber { Name = "A", Number = 10 }; IEqualityComparer <NameAndNumber> ordinalComparer = new ProjectionEqualityComparer <NameAndNumber, string> (z => z.Name, StringComparer.Ordinal); IEqualityComparer <NameAndNumber> insensitiveComparer = new ProjectionEqualityComparer <NameAndNumber, string> (z => z.Name, StringComparer.OrdinalIgnoreCase); AssertCompareNotEqual(ordinalComparer, lowerA, upperA); AssertCompareEqual(insensitiveComparer, lowerA, upperA); }
public void ExplicitComparerTest() { // a is greater than Z with an ordinal comparison, but not with a case-insensitive ordinal comparison NameAndNumber lowerA = new NameAndNumber { Name = "a", Number = 10 }; NameAndNumber upperZ = new NameAndNumber { Name = "Z", Number = 10 }; IComparer <NameAndNumber> ordinalComparer = new ProjectionComparer <NameAndNumber, string> (z => z.Name, StringComparer.Ordinal); IComparer <NameAndNumber> insensitiveComparer = new ProjectionComparer <NameAndNumber, string> (z => z.Name, StringComparer.OrdinalIgnoreCase); Assert.Greater(ordinalComparer.Compare(lowerA, upperZ), 0); Assert.Less(insensitiveComparer.Compare(lowerA, upperZ), 0); }
static NameAndNumber GetLevelNameAndNumber(string levelName) { NameAndNumber ret = new NameAndNumber(); string levelNumS = ""; for (int i = levelName.Length - 1; i >= 0; i--) { char ch = levelName[i]; if (char.IsDigit(ch)) { levelNumS = ch + levelNumS; } else { break; } } ret.number = int.Parse(levelNumS); ret.numberString = ("" + ret.number).PadLeft(levelNumS.Length, '0'); ret.name = levelName.Substring(0, levelName.Length - ret.numberString.Length); return(ret); }