package edu.hawaii.jmotif.sax;
import edu.hawaii.jmotif.sax.trie.SAXTrieHitEntry;
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 org.junit.Before;
import org.junit.Test;
/**
* Test for SAXTrieHitEntry.
*
* @author psenin
*
*/
public class TestSAXTrieHitEntry {
private static final String ENTRY1 = "entry1";
private static final int POS1 = 1;
private static final int ENTRY_SIZE = ENTRY1.length();
private static final String ENTRY2 = "entry2";
private static final int POS2 = 2;
private SAXTrieHitEntry entry1;
private SAXTrieHitEntry entry2;
/**
* Before JUnit loader.
*
* @throws Exception if error occurs.
*/
@Before
public void setUp() throws Exception {
entry1 = new SAXTrieHitEntry(ENTRY_SIZE, POS1);
entry1.setStr(ENTRY1.toCharArray());
entry2 = new SAXTrieHitEntry(ENTRY_SIZE, POS2);
entry2.setStr(ENTRY2.toCharArray());
}
/**
* Hash code test.
*/
@Test
public void testHashCode() {
assertFalse("Testing the HashCode", entry1.hashCode() == entry2.hashCode());
SAXTrieHitEntry entry3 = new SAXTrieHitEntry(ENTRY_SIZE, POS1);
entry3.setStr(ENTRY1.toCharArray());
assertFalse("Testing the HashCode", entry1.hashCode() == entry2.hashCode());
}
/**
* String getter test.
*/
@Test
public void testGetStr() {
assertTrue("test the payload.", String.valueOf(entry1.getStr()).equalsIgnoreCase(ENTRY1));
assertTrue("test the payload.", String.valueOf(entry2.getStr()).equalsIgnoreCase(ENTRY2));
assertFalse("test the payload.", String.valueOf(entry1.getStr()).equalsIgnoreCase(ENTRY2));
}
/**
* Frequency getter test.
*/
@Test
public void testGetFrequency() {
assertEquals("test frequency", -1, entry1.getFrequency());
assertEquals("test frequency", -1, entry2.getFrequency());
SAXTrieHitEntry entry3 = new SAXTrieHitEntry(ENTRY_SIZE, POS1);
entry3.setFrequency(15);
assertEquals("test frequency", 15, entry3.getFrequency());
}
/**
* Position test.
*/
@Test
public void testGetPosition() {
assertEquals("test position", POS1, entry1.getPosition());
assertEquals("test position", POS2, entry2.getPosition());
SAXTrieHitEntry entry3 = new SAXTrieHitEntry(ENTRY_SIZE, POS1);
entry3.setPosition(17);
assertEquals("test position", 17, entry3.getPosition());
}
/**
* Comparator test.
*/
@Test
public void testCompareTo() {
assertTrue("test compare", entry1.compareTo(entry2) == 0);
entry1.setFrequency(3);
entry2.setFrequency(7);
assertTrue("test compare", entry1.compareTo(entry2) < 0);
assertTrue("test compare", entry2.compareTo(entry1) > 0);
}
/**
* Equals test.
*/
@Test
public void testEqualsObject() {
assertFalse("test equals", entry1.equals(entry2));
assertFalse("test equals", entry1.equals(Integer.valueOf(2)));
assertNotNull("test equals", entry1);
SAXTrieHitEntry entry3 = new SAXTrieHitEntry(ENTRY_SIZE, POS1);
entry3.setStr(ENTRY1.toCharArray());
assertTrue("test equals", entry1.equals(entry3));
assertTrue("test equals", entry3.equals(entry3));
entry3.setFrequency(17);
assertFalse("test equals", entry1.equals(entry3));
entry3 = new SAXTrieHitEntry(ENTRY_SIZE, POS1);
entry3.setFrequency(11);
assertFalse("test equals", entry1.equals(entry3));
entry3 = new SAXTrieHitEntry(ENTRY_SIZE, POS1);
entry3.setStr("other".toCharArray());
assertFalse("test equals", entry1.equals(entry3));
}
}