Exemplo n.º 1
0
    public static string GetLevelByNumber(string levelName, int num)
    {
        NameAndNumber levelInfo = GetLevelNameAndNumber(levelName);

        levelInfo.SetNumber(num);
        return(levelInfo.GetLevelName());
    }
Exemplo n.º 2
0
    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));
     }
 }
Exemplo n.º 4
0
 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);
        }
Exemplo n.º 6
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);
        }
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
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);
    }