package edu.hawaii.jmotif.sax;
import edu.hawaii.jmotif.timeseries.Timeinterval;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotSame;
import org.junit.Before;
import org.junit.Test;
/**
* Test TPoint class.
*
* @author Pavel Senin.
*
*/
public class TestTimeinterval {
private static final double value1 = 0.022D;
private static final long start1 = 23L;
private static final long end1 = 25L;
private static final double value2 = 0.065D;
private static final long start2 = 66L;
private static final long end2 = 66L;
private Timeinterval tInterval1;
private Timeinterval tInterval2;
/**
* Test fixture.
*
*/
@Before
public void setUp() {
tInterval1 = new Timeinterval(value1, start1, end1);
tInterval2 = new Timeinterval(value2, start2, end2);
}
/**
* Test constructor, hashcode and equals method.
*/
@Test
public void testTInterval() {
Timeinterval tInterval3 = new Timeinterval(value1, start1, end1);
assertEquals("testing hash", tInterval1.hashCode(), tInterval3.hashCode());
assertNotSame("testing hash", tInterval1.hashCode(), tInterval2.hashCode());
assertEquals("testing equals", tInterval1, tInterval3);
assertFalse("testing equals", tInterval2.equals(tInterval3));
assertFalse("testing equals", tInterval1.equals(tInterval2));
assertFalse("testing equals", tInterval1.equals(Integer.valueOf(15)));
}
/**
* Test value.
*/
@Test
public void testValue() {
assertEquals("testing value", (Double) value1, (Double) tInterval1.getValue());
assertEquals("testing value", (Double) value2, (Double) tInterval2.getValue());
tInterval2.setValue(11.3D);
assertEquals("testing value", (Double) 11.3D, (Double) tInterval2.getValue());
}
/**
* Test tstamp.
*/
@Test
public void testTstamp() {
assertEquals("testing start", (Long) start1, (Long) tInterval1.getStart());
assertEquals("testing end", (Long) end1, (Long) tInterval1.getEnd());
assertEquals("testing start", (Long) start2, (Long) tInterval2.getStart());
assertEquals("testing end", (Long) end2, (Long) tInterval2.getEnd());
tInterval2.setStart(113L);
tInterval2.setEnd(254L);
assertEquals("testing value", (Long) 113L, (Long) tInterval2.getStart());
assertEquals("testing value", (Long) 254L, (Long) tInterval2.getEnd());
long l = Integer.MAX_VALUE;
tInterval1.setStart(l * 2);
tInterval1.setEnd(l * 4);
Timeinterval tInterval3 = new Timeinterval(tInterval1.getValue(), tInterval1.getStart(),
tInterval1.getEnd());
assertEquals("testing equals", tInterval1, tInterval3);
assertFalse("testing equals", tInterval2.equals(tInterval3));
assertEquals("Testing hash code", tInterval1.hashCode(), tInterval3.hashCode());
assertNotSame("Testing hash code", tInterval2.hashCode(), tInterval3.hashCode());
}
/**
* Test comparator.
*/
@Test
public void testCompare() {
Timeinterval p1 = new Timeinterval(value1, start1, end1);
Timeinterval p2 = new Timeinterval(value1, start1 + 2, end1);
Timeinterval p3 = new Timeinterval(value1, start1 + 4, end1);
assertEquals("testing compare", -1, p1.compareTo(p2));
assertEquals("testing compare", 0, p1.compareTo(p1));
assertEquals("testing compare", 1, p2.compareTo(p1));
assertEquals("testing compare", -1, p2.compareTo(p3));
p2.setStart(p1.getStart());
p2.setValue(p1.getValue() - 1);
assertEquals("testing compare", -1, p2.compareTo(p1));
assertEquals("testing compare", 1, p1.compareTo(p2));
p2.setValue(p1.getValue());
p2.setEnd(p1.getEnd() + 1);
assertEquals("testing compare", -1, p1.compareTo(p2));
p2.setEnd(p1.getEnd() - 1);
assertEquals("testing compare", 1, p1.compareTo(p2));
}
}