/// <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); }
private void SetupWithComparer <TValue, TComparer>() where TComparer : class, IEqualityComparer <TValue>, new() { var comparer = new TComparer(); Setup <TValue, TComparer>(comparer); }
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))
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) { }