package net.seninp.jmotif.sax.discord; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import org.junit.Test; /** * Test the discord record. * * @author Pavel Senin * */ public class TestDiscordRecord { private static final double precision = 0.00001D; private static final Integer idx = -1; private static final Integer idx1 = 13; private static final double dist1 = 0.213D; private static final Integer idx2 = 17; private static final double dist2 = 0.875D; /** * Test the default constructor. */ @Test public void testDiscordRecord() { DiscordRecord dr = new DiscordRecord(); assertEquals("Test constructor", -1.0D, dr.getNNDistance(), precision); assertEquals("Test constructor", idx, (Integer) dr.getPosition()); } /** * Test the constructor and setters/getters. */ @Test public void testSetPosition() { DiscordRecord dr = new DiscordRecord(idx1, dist1); assertEquals("Test constructor", dist1, dr.getNNDistance(), precision); assertEquals("Test constructor", idx1, (Integer) dr.getPosition()); dr.setNNDistance(dist2); dr.setPosition(idx2); assertEquals("Test constructor", dist2, dr.getNNDistance(), precision); assertEquals("Test constructor", idx2, (Integer) dr.getPosition()); dr = new DiscordRecord(idx1, dist1); DiscordRecord dr2 = new DiscordRecord(idx1, dist2); assertTrue("Testing compareTo", dr.compareTo(dr2) > 0); assertTrue("Testing compareTo", dr2.compareTo(dr) < 0); assertFalse("Test hash", dr.hashCode() == dr2.hashCode()); assertFalse("Test hash", dr.equals(dr2)); dr.setNNDistance(dist2); assertTrue("Testing compareTo", dr2.compareTo(dr) == 0); dr.setPosition(idx1); assertTrue("Test hash", dr.hashCode() == dr2.hashCode()); assertTrue("Test hash", dr.equals(dr2)); try { assertNotNull("Testing compareTo", dr); assertTrue("Testing compareTo", dr.compareTo(null) > 0); fail("Exception wasn't thrown"); } catch (NullPointerException e) { assert true; } } /** * Test the comparative routines. */ @Test public void testComparisons() { DiscordRecord dr = new DiscordRecord(idx1, dist1); assertTrue(dr.equals(dr)); assertFalse(dr.equals(null)); assertFalse(dr.equals(new Integer(3))); DiscordRecord dr2 = new DiscordRecord(idx1 + 2, dist1); assertFalse(dr.equals(dr2)); } /** * Test the ruleId setter. */ @Test public void testIdSetter() { DiscordRecord dr = new DiscordRecord(idx1, dist1); int ruleId = 17; dr.setRuleId(ruleId); assertEquals(ruleId, dr.getRuleId()); } }