package org.xpect.util;
import java.util.List;
/**
* @author Moritz Eysholdt
*/
public interface IDifferencer {
public interface ISimilarityFunction<T> {
final float EQUAL = 0.0f;
final float UPPER_SIMILARITY_BOUND = 1.0f;
float similarity(T object1, T object2);
}
public enum MatchKind {
EQUAL, SIMILAR, LEFT_ONLY, RIGHT_ONLY
}
public interface Match {
final int NO_INDEX = -1;
final float EQUAL = ISimilarityFunction.EQUAL;
final float UNEQUAL = ISimilarityFunction.UPPER_SIMILARITY_BOUND;
int getLeft();
int getRight();
float getSimilarity();
MatchKind getKind();
}
public <T> List<Match> diff(List<T> left, List<T> right, ISimilarityFunction<? super T> similarityfunction);
}