/// <summary>
 /// Create a bad comparer exception.
 /// </summary>
 /// <param name="comparer">The comparer</param>
 /// <param name="extraInfo">extra info if any</param>
 /// <param name="inner">inner exception.</param>
 public BadComparerException(TComparer comparer, [CanBeNull] string extraInfo, [CanBeNull] Exception inner) :
     base(CreateMessage(extraInfo), inner)
 {
     BadComparer     = comparer;
     TypeOfComparer  = typeof(TComparer);
     TypeOfComparand = typeof(TValue);
 }
Esempio n. 2
0
        private void SetupWithComparer <TValue, TComparer>()
            where TComparer : class, IEqualityComparer <TValue>, new()
        {
            var comparer = new TComparer();

            Setup <TValue, TComparer>(comparer);
        }
Esempio n. 3
0
        public void CompareDates()
        {
            TComparer<TComparerLabRat> comparer =
                new TComparer<TComparerLabRat>(ListSortDirection.Ascending, "Dob");
            Assert.AreEqual(1, comparer.Compare(TComparerLab.Create("A", new DateTime(2006, 6, 21), 2), TComparerLab.Create("B", new DateTime(2006, 6, 20), 1)));

            Assert.AreEqual(0, comparer.Compare(TComparerLab.Create("A", new DateTime(2006, 6, 21), 2), TComparerLab.Create("A", new DateTime(2006, 6, 21), 1)));
        }
        static EnumCaseIgnoreFormatter()
        {
            var names         = new List <string>();
            var values        = new List <object>();
            var possibleNames = new Dictionary <string, string[]>();

            var type = typeof(T);

            foreach (var item in type.GetFields().Where(fi => fi.FieldType == type))
            {
                var value      = item.GetValue(null);
                var name       = Enum.GetName(type, value);
                var dataMember = item.GetCustomAttributes(typeof(DataMemberAttribute), true)
                                 .OfType <DataMemberAttribute>()
                                 .FirstOrDefault();
                var enumMember = item.GetCustomAttributes(typeof(EnumMemberAttribute), true)
                                 .OfType <EnumMemberAttribute>()
                                 .FirstOrDefault();

                values.Add(value);
                names.Add(
                    (enumMember != null && enumMember.Value != null)
                        ? enumMember.Value
                        : (dataMember != null && dataMember.Name != null) ? dataMember.Name : name);
            }

            int possibleNamesCount = 0;

            foreach (var name in names)
            {
                var pNames = GetPossibleNames(name);
                possibleNames.Add(name, pNames);
                possibleNamesCount += pNames.Length;
            }

            _nameValueMapping   = new TComparer <T>(possibleNamesCount);
            _enumNameMapping[0] = new Dictionary <T, string>(names.Count); //origin
            _enumNameMapping[1] = new Dictionary <T, string>(names.Count); //camelcase
            _enumNameMapping[2] = new Dictionary <T, string>(names.Count); //snakecase
            _nameEnumMapping    = new Dictionary <string, T>(names.Count);

            for (int i = 0; i < names.Count; i++)
            {
                if (possibleNames.TryGetValue(names[i], out string[] namesVariants))
Esempio n. 5
0
        public void ShouldCompareOnMultipleProperties()
        {
            TComparer<TComparerLabRat> comparer =
                new TComparer<TComparerLabRat>(ListSortDirection.Ascending, "Name",
                                               "RollNo");
            Assert.AreEqual(-1, comparer.Compare(TComparerLab.Create("A", new DateTime(2006, 6, 21), 2), TComparerLab.Create("B", new DateTime(2006, 6, 21), 1)));

            Assert.AreEqual(1, comparer.Compare(TComparerLab.Create("A", new DateTime(2006, 6, 21), 2), TComparerLab.Create("A", new DateTime(2006, 6, 21), 1)));
        }
 /// <summary>
 /// Create a bad comparer exception.
 /// </summary>
 /// <param name="comparer">The comparer</param>
 public BadComparerException(TComparer comparer) : this(comparer, null, null)
 {
 }
 /// <summary>
 /// Create a bad comparer exception.
 /// </summary>
 /// <param name="comparer">The comparer</param>
 /// <param name="extraInfo">extra info if any</param>
 public BadComparerException(TComparer comparer, string extraInfo) : this(comparer, extraInfo, null)
 {
 }
 /// <summary>
 /// Create a bad comparer exception.
 /// </summary>
 /// <param name="comparer">The comparer</param>
 /// <param name="inner">inner exception.</param>
 public BadComparerException(TComparer comparer, Exception inner) : this(comparer, null, inner)
 {
 }