Exemplo n.º 1
0
        int IComparer.Compare(object left, object right)
        {
            float ret;

            Pair pair = new Pair(left, right, differ);

            if (left.GetType() != right.GetType())
            {
                ret = 1;
            }
            else if (useCache && differ.comparisonCache.ContainsKey(pair))
            {
                ret = (float)differ.comparisonCache[pair];
            }
            else
            {
                NodeInterface comparer = differ.GetInterface(left);
                ret = comparer.Compare(left, right, differ);
            }

            if (useCache)
            {
                differ.comparisonCache[pair] = ret;
            }

            if (ret < minimumDifference && ret > threshold)
            {
                minimumDifference = ret;
            }

            if (ret <= threshold)
            {
                return(0);
            }
            else
            {
                return(1);
            }
        }
Exemplo n.º 2
0
 public int GetHashCode(object obj)
 {
     return(differ.GetInterface(obj).GetHashCode(obj));
 }
Exemplo n.º 3
0
 public Pair(object a, object b, StructuredDiff differ)
 {
     left = a; right = b;
     code = unchecked (differ.GetInterface(left).GetHashCode(left) + differ.GetInterface(right).GetHashCode(right));
 }
Exemplo n.º 4
0
			public Pair(object a, object b, StructuredDiff differ) {
				left = a; right = b;
				code = unchecked(differ.GetInterface(left).GetHashCode(left) + differ.GetInterface(right).GetHashCode(right));
			}