Esempio n. 1
0
        /// <summary>
        /// Checks that two objects are equal.
        /// </summary>
        /// <param name="obj1">The first object.</param>
        /// <param name="obj2">The second object.</param>
        public bool VerifyEqual(IEqualComparable obj1, IEqualComparable obj2)
        {
            Debug.Assert(obj1 != null);
            Debug.Assert(obj2 != null);

            bool Result;

            if (!ComparedObjectList.ContainsKey(obj1))
            {
                ComparedObjectList.Add(obj1, false);
            }
            else if (!ComparedObjectList.ContainsKey(obj2))
            {
                ComparedObjectList.Add(obj2, false);
            }
            else
            {
                Result = true;

                if (ComparisonCount == FailIndex)
                {
                    return(false);
                }

                ComparisonCount++;

                return(Result);
            }

            if (obj1.IsEqual(this, obj2))
            {
                Result = true;
            }
            else if (CanReturnFalse)
            {
                Result = false;
            }
            else
            {
                Result = false; // For breakpoints.
            }
            if (ComparisonCount == FailIndex)
            {
                return(false);
            }

            ComparisonCount++;

            return(Result);
        }
Esempio n. 2
0
        /// <summary>
        /// Checks that two objects are equal.
        /// </summary>
        /// <param name="obj1">The first object.</param>
        /// <param name="obj2">The second object.</param>
        public bool VerifyEqual(IEqualComparable obj1, IEqualComparable obj2)
        {
            Contract.RequireNotNull(obj1, out IEqualComparable Obj1);
            Contract.RequireNotNull(obj2, out IEqualComparable Obj2);

            bool Result;

            if (!ComparedObjectList.ContainsKey(Obj1))
            {
                ComparedObjectList.Add(Obj1, false);
            }
            else if (!ComparedObjectList.ContainsKey(Obj2))
            {
                ComparedObjectList.Add(Obj2, false);
            }
            else
            {
                Result = true;

                if (ComparisonCount == FailIndex)
                {
                    return(false);
                }

                ComparisonCount++;

                return(Result);
            }

            if (Obj1.IsEqual(this, Obj2))
            {
                Result = true;
            }
            else if (CanReturnFalse)
            {
                Result = false;
            }
            else
            {
                Result = false; // For breakpoints.
            }
            if (ComparisonCount == FailIndex)
            {
                return(false);
            }

            ComparisonCount++;

            return(Result);
        }
Esempio n. 3
0
 /// <summary>
 /// Resets the comparison history (for debug purpose).
 /// </summary>
 public void Reset()
 {
     ComparedObjectList.Clear();
     ComparisonCount = 0;
     FailIndex       = -1;
 }