Пример #1
0
        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"));
        }
Пример #2
0
        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));
        }
Пример #3
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);
        }
Пример #5
0
        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);
            }
        }
Пример #6
0
        /// <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);
        }
Пример #10
0
        /// <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);
            }
        }
Пример #11
0
        /// <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);
            }
        }
Пример #12
0
        /// <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));
        }
Пример #14
0
 /// <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;
 }
Пример #16
0
 /// <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;
 }
Пример #17
0
 /// <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)));
 }