/*
* File: IdentityDistanceMetric.java
* Authors: Justin Basilico
* Project: Cognitive Foundry
*
* Copyright 2011 Cognitive Foundry. All rights reserved.
*/
package gov.sandia.cognition.learning.function.distance;
import gov.sandia.cognition.math.Metric;
import gov.sandia.cognition.util.AbstractCloneableSerializable;
import gov.sandia.cognition.util.ObjectUtil;
/**
* A distance metric that is 0 if two objects are equal and 1 if they are not.
* Can be used with any object with a valid equals method.
*
* @author Justin Basilico
* @since 3.3.3
*/
public class IdentityDistanceMetric
extends AbstractCloneableSerializable
implements Metric<Object>
{
/**
* Creates a new {@code IdentityDistanceMetric}.
*/
public IdentityDistanceMetric()
{
super();
}
@Override
public double evaluate(
final Object first,
final Object second)
{
return (ObjectUtil.equalsSafe(first, second) ? 0.0 : 1.0);
}
}