/* * File: IdentityDistanceMetricTest.java * Authors: Justin Basilico * Project: Cognitive Foundry Learning Core * * Copyright 2011 Cognitive Foundry. All rights reserved. */ package gov.sandia.cognition.learning.function.distance; import gov.sandia.cognition.math.matrix.mtj.Vector1; import static org.junit.Assert.*; /** * Unit tests for class IdentityDistanceMetric. * @author Justin Basilico * @since 3.3.3 */ public class IdentityDistanceMetricTest extends MetricTestHarness<Object> { public IdentityDistanceMetricTest( String testName) { super(testName); } @Override public IdentityDistanceMetric createInstance() { return new IdentityDistanceMetric(); } @Override public Object generateRandomFirstType() { return RANDOM.nextDouble(); } /** * Tests constructors of IdentityDistanceMetric. */ public void testConstructors() { IdentityDistanceMetric instance = new IdentityDistanceMetric(); assertNotNull(instance); } @Override public void testKnownValues() { IdentityDistanceMetric instance = this.createInstance(); Object[] values = {"a", "b", "c", new Object(), RANDOM.nextDouble(), null}; for (int i = 0; i < values.length; i++) { Object x = values[i]; assertEquals(0.0, instance.evaluate(x, x), 0.0); for (int j = i + 1; j < values.length; j++) { Object y = values[j]; assertEquals(1.0, instance.evaluate(x, y), 0.0); assertEquals(1.0, instance.evaluate(y, x), 0.0); } } // Guard against == versus equals. assertEquals(0.0, instance.evaluate(new Vector1(), new Vector1()), 0.0); } }