public void Compare() { var Comparer = new GenericComparer <string>(); Assert.Equal(0, Comparer.Compare("A", "A")); Assert.Equal(-1, Comparer.Compare("A", "B")); Assert.Equal(1, Comparer.Compare("B", "A")); }
public void CompareValueType() { var Comparer = new GenericComparer <int>(); Assert.Equal(0, Comparer.Compare(0, 0)); Assert.Equal(-1, Comparer.Compare(0, 1)); Assert.Equal(1, Comparer.Compare(1, 0)); }
public void CompareNullNonValueType() { var Comparer = new GenericComparer <string>(); Assert.Equal(0, Comparer.Compare(null, null)); Assert.Equal(-1, Comparer.Compare(null, "B")); Assert.Equal(-1, Comparer.Compare("B", null)); }
/// <summary> /// Determines if a value is between two values /// </summary> /// <typeparam name="T">Data type</typeparam> /// <param name="Value">Value to check</param> /// <param name="Low">Low bound (inclusive)</param> /// <param name="High">High bound (inclusive)</param> /// <returns>True if it is between the low and high values</returns> public static bool Between <T>(this T Value, T Low, T High) where T : IComparable { GenericComparer <T> Comparer = new GenericComparer <T>(); if (Comparer.Compare(High, Value) >= 0 && Comparer.Compare(Value, Low) >= 0) { return(true); } return(false); }
public override void Validate(ObjectType Object) { GenericComparer <DataType> Comparer = new GenericComparer <DataType>(); if (Comparer.Compare(MaxValue, ItemToValidate(Object)) < 0 || Comparer.Compare(ItemToValidate(Object), MinValue) < 0) { throw new NotValid(ErrorMessage); } }
/// <summary> /// Determines if the property is valid /// </summary> /// <param name="value">Value to check</param> /// <param name="validationContext">Validation context</param> /// <returns>The validation result</returns> protected override ValidationResult IsValid(object value, ValidationContext validationContext) { var Comparer = new GenericComparer <IComparable>(); var MaxValue = (IComparable)Max.To <object>(value.GetType()); var MinValue = (IComparable)Min.To <object>(value.GetType()); var TempValue = value as IComparable; return((Comparer.Compare(MaxValue, TempValue) < 0 || Comparer.Compare(TempValue, MinValue) < 0) ? new ValidationResult(FormatErrorMessage(validationContext.DisplayName)) : ValidationResult.Success); }
/// <summary> /// Clamps a value between two values /// </summary> /// <param name="Value">Value sent in</param> /// <param name="Max">Max value it can be (inclusive)</param> /// <param name="Min">Min value it can be (inclusive)</param> /// <returns>The value set between Min and Max</returns> public static T Clamp <T>(this T Value, T Max, T Min) where T : IComparable { GenericComparer <T> Comparer = new GenericComparer <T>(); if (Comparer.Compare(Max, Value) < 0) { return(Max); } if (Comparer.Compare(Value, Min) < 0) { return(Min); } return(Value); }
public void TestCompare(int x, int y) { Func <int, int, int> compare = DoCompare; GenericComparer <int> gc = new GenericComparer <int>(compare); m_bCompareCalled = false; Assert.AreEqual(x - y, gc.Compare(x, y)); Assert.IsTrue(m_bCompareCalled); }
/// <summary> /// Returns the minimum value between the two /// </summary> /// <param name="InputA">Input A</param> /// <param name="InputB">Input B</param> /// <returns>The minimum value</returns> public static T Min <T>(this T InputA, T InputB) where T : IComparable { GenericComparer <T> Comparer = new GenericComparer <T>(); if (Comparer.Compare(InputA, InputB) > 0) { return(InputB); } return(InputA); }
/// <summary> /// Determines if the property is valid /// </summary> /// <param name="value">Value to check</param> /// <param name="validationContext">Validation context</param> /// <returns>The validation result</returns> protected override ValidationResult IsValid(object value, ValidationContext validationContext) { var Comparer = new GenericComparer <IComparable>(); var Value2 = (IComparable)Value.To <object>(value.GetType()); var TempValue = value as IComparable; switch (Type) { case ComparisonType.Equal: return(Comparer.Compare(TempValue, Value2) == 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); case ComparisonType.NotEqual: return(Comparer.Compare(TempValue, Value2) != 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); case ComparisonType.GreaterThan: return(Comparer.Compare(TempValue, Value2) > 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); case ComparisonType.GreaterThanOrEqual: return(Comparer.Compare(TempValue, Value2) >= 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); case ComparisonType.LessThan: return(Comparer.Compare(TempValue, Value2) < 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); case ComparisonType.LessThanOrEqual: return(Comparer.Compare(TempValue, Value2) <= 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); default: return(ValidationResult.Success); } }
/// <summary> /// Determines if the property is valid /// </summary> /// <param name="value">Value to check</param> /// <param name="validationContext">Validation context</param> /// <returns>The validation result</returns> protected override ValidationResult IsValid(object value, ValidationContext validationContext) { IComparable Tempvalue = value as IComparable; GenericComparer <IComparable> Comparer = new GenericComparer <IComparable>(); IComparable ComparisonValue = (IComparable)validationContext.ObjectType.GetProperty(PropertyName).GetValue(validationContext.ObjectInstance, null).To <object>(value.GetType()); if (Type == ComparisonType.Equal) { return(Comparer.Compare(Tempvalue, ComparisonValue) == 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); } else if (Type == ComparisonType.NotEqual) { return(Comparer.Compare(Tempvalue, ComparisonValue) != 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); } else if (Type == ComparisonType.GreaterThan) { return(Comparer.Compare(Tempvalue, ComparisonValue) > 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); } else if (Type == ComparisonType.GreaterThanOrEqual) { return(Comparer.Compare(Tempvalue, ComparisonValue) >= 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); } else if (Type == ComparisonType.LessThan) { return(Comparer.Compare(Tempvalue, ComparisonValue) < 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); } else if (Type == ComparisonType.LessThanOrEqual) { return(Comparer.Compare(Tempvalue, ComparisonValue) <= 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); } else { return(ValidationResult.Success); } }
/// <summary> /// Determines if the property is valid /// </summary> /// <param name="value">Value to check</param> /// <param name="validationContext">Validation context</param> /// <returns>The validation result</returns> protected override ValidationResult IsValid(object value, ValidationContext validationContext) { GenericComparer <IComparable> Comparer = new GenericComparer <IComparable>(); IComparable Value2 = (IComparable)Value.To <object>(value.GetType()); IComparable TempValue = value as IComparable; if (Type == ComparisonType.Equal) { return(Comparer.Compare(TempValue, Value2) == 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); } else if (Type == ComparisonType.NotEqual) { return(Comparer.Compare(TempValue, Value2) != 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); } else if (Type == ComparisonType.GreaterThan) { return(Comparer.Compare(TempValue, Value2) > 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); } else if (Type == ComparisonType.GreaterThanOrEqual) { return(Comparer.Compare(TempValue, Value2) >= 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); } else if (Type == ComparisonType.LessThan) { return(Comparer.Compare(TempValue, Value2) < 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); } else if (Type == ComparisonType.LessThanOrEqual) { return(Comparer.Compare(TempValue, Value2) <= 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName))); } else { return(ValidationResult.Success); } }
public override bool Equals(object obj) { if (obj == null) { return(false); } if (typeof(SuccessOperationResult <T>) != obj.GetType()) { return(false); } var object2 = obj as SuccessOperationResult <T>; return(GenericComparer.Compare(this, object2)); }
/// <summary> /// Determines if the property is valid /// </summary> /// <param name="value">Value to check</param> /// <param name="validationContext">Validation context</param> /// <returns>The validation result</returns> protected override ValidationResult IsValid(object value, ValidationContext validationContext) { var Comparer = new GenericComparer<IComparable>(); var Value2 = (IComparable)Value.To<object>(value.GetType()); var TempValue = value as IComparable; switch (Type) { case ComparisonType.Equal: return Comparer.Compare(TempValue, Value2) == 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); case ComparisonType.NotEqual: return Comparer.Compare(TempValue, Value2) != 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); case ComparisonType.GreaterThan: return Comparer.Compare(TempValue, Value2) > 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); case ComparisonType.GreaterThanOrEqual: return Comparer.Compare(TempValue, Value2) >= 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); case ComparisonType.LessThan: return Comparer.Compare(TempValue, Value2) < 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); case ComparisonType.LessThanOrEqual: return Comparer.Compare(TempValue, Value2) <= 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); default: return ValidationResult.Success; } }
/// <summary> /// Determines if the property is valid /// </summary> /// <param name="value">Value to check</param> /// <param name="validationContext">Validation context</param> /// <returns>The validation result</returns> protected override ValidationResult IsValid(object value, ValidationContext validationContext) { GenericComparer<IComparable> Comparer = new GenericComparer<IComparable>(); IComparable Value2 = (IComparable)Value.TryTo<object>(value.GetType()); IComparable TempValue = value as IComparable; if (Type == ComparisonType.Equal) return Comparer.Compare(TempValue, Value2) == 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); else if (Type == ComparisonType.NotEqual) return Comparer.Compare(TempValue, Value2) != 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); else if (Type == ComparisonType.GreaterThan) return Comparer.Compare(TempValue, Value2) > 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); else if (Type == ComparisonType.GreaterThanOrEqual) return Comparer.Compare(TempValue, Value2) >= 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); else if (Type == ComparisonType.LessThan) return Comparer.Compare(TempValue, Value2) < 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); else if (Type == ComparisonType.LessThanOrEqual) return Comparer.Compare(TempValue, Value2) <= 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); else return ValidationResult.Success; }
/// <summary> /// Determines if the property is valid /// </summary> /// <param name="value">Value to check</param> /// <param name="validationContext">Validation context</param> /// <returns>The validation result</returns> protected override ValidationResult IsValid(object value, ValidationContext validationContext) { IComparable Tempvalue = value as IComparable; GenericComparer<IComparable> Comparer = new GenericComparer<IComparable>(); IComparable ComparisonValue = (IComparable)validationContext.ObjectType.GetProperty(PropertyName).GetValue(validationContext.ObjectInstance, null).To<object>(value.GetType()); if (Type == ComparisonType.Equal) return Comparer.Compare(Tempvalue, ComparisonValue) == 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); else if (Type == ComparisonType.NotEqual) return Comparer.Compare(Tempvalue, ComparisonValue) != 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); else if (Type == ComparisonType.GreaterThan) return Comparer.Compare(Tempvalue, ComparisonValue) > 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); else if (Type == ComparisonType.GreaterThanOrEqual) return Comparer.Compare(Tempvalue, ComparisonValue) >= 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); else if (Type == ComparisonType.LessThan) return Comparer.Compare(Tempvalue, ComparisonValue) < 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); else if (Type == ComparisonType.LessThanOrEqual) return Comparer.Compare(Tempvalue, ComparisonValue) <= 0 ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(validationContext.DisplayName)); else return ValidationResult.Success; }
/// <summary> /// Determines if the property is valid /// </summary> /// <param name="value">Value to check</param> /// <param name="validationContext">Validation context</param> /// <returns>The validation result</returns> protected override ValidationResult IsValid(object value, ValidationContext validationContext) { GenericComparer<IComparable> Comparer = new GenericComparer<IComparable>(); IComparable MaxValue = (IComparable)Max.To<object>(value.GetType()); IComparable MinValue = (IComparable)Min.To<object>(value.GetType()); IComparable TempValue = value as IComparable; return (Comparer.Compare(MaxValue, TempValue) >= 0 && Comparer.Compare(TempValue, MinValue) >= 0) ? new ValidationResult(FormatErrorMessage(validationContext.DisplayName)) : ValidationResult.Success; }
/// <summary> /// Compares two snippets and returns an indication of their relative sort order. /// </summary> /// <param name="x">A <see cref="Snippet"/> to compare to <paramref name="y"/>.</param> /// <param name="y">A <see cref="Snippet"/> to compare to <paramref name="x"/>.</param> /// <returns>A signed integer that indicates the relative values of <paramref name="x"/> and <paramref name="y"/>.</returns> public override int Compare(Snippet x, Snippet y) { return(GenericComparer.Compare(GetValue(x), GetValue(y))); }