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); } }
public int GetHashCode(object obj) { return(differ.GetInterface(obj).GetHashCode(obj)); }
public Pair(object a, object b, StructuredDiff differ) { left = a; right = b; code = unchecked (differ.GetInterface(left).GetHashCode(left) + differ.GetInterface(right).GetHashCode(right)); }
public Pair(object a, object b, StructuredDiff differ) { left = a; right = b; code = unchecked(differ.GetInterface(left).GetHashCode(left) + differ.GetInterface(right).GetHashCode(right)); }