198 lines
7.0 KiB
Java
198 lines
7.0 KiB
Java
package com.minres.scviewer.database.test;
|
|
|
|
import static org.junit.Assert.assertArrayEquals;
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.assertFalse;
|
|
import static org.junit.Assert.assertNotNull;
|
|
import static org.junit.Assert.assertNull;
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import org.junit.Test;
|
|
|
|
import com.minres.scviewer.database.EventList;
|
|
import com.minres.scviewer.database.IEventList;
|
|
|
|
public class EventListTest {
|
|
|
|
EventList createList(int[] times) {
|
|
EventList list = new EventList();
|
|
for(int time: times)
|
|
list.put(time, null);
|
|
return list;
|
|
}
|
|
|
|
Long[] getTimestamps(IEventList list) {
|
|
return list.entrySet().stream().map(e->e.timestamp).collect(Collectors.toList()).toArray(new Long[] {});
|
|
}
|
|
|
|
@Test
|
|
public void testInsertion() throws Exception {
|
|
IEventList list = createList(new int[] {5, 7, 3, 6, 2, 0});
|
|
assertEquals(6, list.size());
|
|
assertArrayEquals(new Long[]{0L, 2L, 3L, 5L, 6L, 7L}, getTimestamps(list));
|
|
}
|
|
|
|
@Test
|
|
public void testSublist() throws Exception {
|
|
IEventList list = createList(new int[] {5, 7, 3, 8, 2, 0});
|
|
{
|
|
IEventList subList = list.subMap(3, true, 5);
|
|
assertEquals(2, subList.size());
|
|
assertArrayEquals(new Long[]{3L, 5L}, getTimestamps(subList));
|
|
} {
|
|
IEventList subList = list.subMap(3, false, 5);
|
|
assertEquals(1, subList.size());
|
|
assertArrayEquals(new Long[]{5L}, getTimestamps(subList));
|
|
} {
|
|
IEventList subList = list.subMap(4, true, 6);
|
|
assertEquals(1, subList.size());
|
|
assertArrayEquals(new Long[]{5L}, getTimestamps(subList));
|
|
} {
|
|
IEventList subList = list.subMap(4, false, 6);
|
|
assertEquals(1, subList.size());
|
|
assertArrayEquals(new Long[]{5L}, getTimestamps(subList));
|
|
} {
|
|
IEventList subList = list.subMap(4, true, 9);
|
|
assertEquals(3, subList.size());
|
|
assertArrayEquals(new Long[]{5L, 7L, 8L}, getTimestamps(subList));
|
|
} {
|
|
IEventList subList = list.subMap(4, false, 9);
|
|
assertEquals(3, subList.size());
|
|
assertArrayEquals(new Long[]{5L, 7L, 8L}, getTimestamps(subList));
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testEntries() throws Exception {
|
|
IEventList list = createList(new int[] {2, 5, 8, 11});
|
|
assertEquals(2, list.firstEntry().timestamp);
|
|
assertEquals(11, list.lastEntry().timestamp);
|
|
|
|
assertNull(list.floorEntry(1));
|
|
assertEquals(2, list.floorEntry(2).timestamp);
|
|
assertEquals(2, list.floorEntry(3).timestamp);
|
|
assertEquals(2, list.floorEntry(4).timestamp);
|
|
assertEquals(5, list.floorEntry(5).timestamp);
|
|
assertEquals(5, list.floorEntry(6).timestamp);
|
|
assertEquals(8, list.floorEntry(10).timestamp);
|
|
assertEquals(11, list.floorEntry(11).timestamp);
|
|
assertEquals(11, list.floorEntry(12).timestamp);
|
|
|
|
assertEquals(2, list.ceilingEntry(1).timestamp);
|
|
assertEquals(2, list.ceilingEntry(2).timestamp);
|
|
assertEquals(5, list.ceilingEntry(3).timestamp);
|
|
assertEquals(5, list.ceilingEntry(4).timestamp);
|
|
assertEquals(5, list.ceilingEntry(5).timestamp);
|
|
assertEquals(8, list.ceilingEntry(6).timestamp);
|
|
assertEquals(11, list.ceilingEntry(10).timestamp);
|
|
assertEquals(11, list.ceilingEntry(11).timestamp);
|
|
assertNull(list.ceilingEntry(12));
|
|
|
|
assertNull(list.lowerEntry(1));
|
|
assertNull(list.lowerEntry(2));
|
|
assertEquals(2, list.lowerEntry(3).timestamp);
|
|
assertEquals(2, list.lowerEntry(4).timestamp);
|
|
assertEquals(2, list.lowerEntry(5).timestamp);
|
|
assertEquals(5, list.lowerEntry(6).timestamp);
|
|
assertEquals(8, list.lowerEntry(10).timestamp);
|
|
assertEquals(8, list.lowerEntry(11).timestamp);
|
|
assertEquals(11, list.lowerEntry(12).timestamp);
|
|
|
|
assertEquals(2, list.higherEntry(1).timestamp);
|
|
assertEquals(5, list.higherEntry(2).timestamp);
|
|
assertEquals(5, list.higherEntry(3).timestamp);
|
|
assertEquals(5, list.higherEntry(4).timestamp);
|
|
assertEquals(8, list.higherEntry(5).timestamp);
|
|
assertEquals(8, list.higherEntry(6).timestamp);
|
|
assertEquals(11, list.higherEntry(10).timestamp);
|
|
assertNull(list.higherEntry(11));
|
|
assertNull(list.higherEntry(12));
|
|
}
|
|
|
|
@Test
|
|
public void testSubListEntries() throws Exception {
|
|
IEventList fullList = createList(new int[] {2, 5, 8, 11});
|
|
IEventList list = fullList.subMap(5, true, 8);
|
|
|
|
assertEquals(5, list.firstEntry().timestamp);
|
|
assertEquals(8, list.lastEntry().timestamp);
|
|
|
|
assertNull(list.floorEntry(1));
|
|
assertNull(list.floorEntry(2));
|
|
assertNull(list.floorEntry(3));
|
|
assertNull(list.floorEntry(4));
|
|
assertEquals(5, list.floorEntry(5).timestamp);
|
|
assertEquals(5, list.floorEntry(6).timestamp);
|
|
assertEquals(8, list.floorEntry(10).timestamp);
|
|
assertEquals(8, list.floorEntry(11).timestamp);
|
|
assertEquals(8, list.floorEntry(12).timestamp);
|
|
|
|
assertEquals(5, list.ceilingEntry(1).timestamp);
|
|
assertEquals(5, list.ceilingEntry(2).timestamp);
|
|
assertEquals(5, list.ceilingEntry(3).timestamp);
|
|
assertEquals(5, list.ceilingEntry(4).timestamp);
|
|
assertEquals(5, list.ceilingEntry(5).timestamp);
|
|
assertEquals(8, list.ceilingEntry(6).timestamp);
|
|
assertEquals(8, list.ceilingEntry(8).timestamp);
|
|
assertNull(list.ceilingEntry(10));
|
|
assertNull(list.ceilingEntry(11));
|
|
assertNull(list.ceilingEntry(12));
|
|
|
|
assertNull(list.lowerEntry(1));
|
|
assertNull(list.lowerEntry(2));
|
|
assertNull(list.lowerEntry(3));
|
|
assertNull(list.lowerEntry(4));
|
|
assertNull(list.lowerEntry(5));
|
|
assertEquals(5, list.lowerEntry(6).timestamp);
|
|
assertEquals(8, list.lowerEntry(10).timestamp);
|
|
assertEquals(8, list.lowerEntry(11).timestamp);
|
|
assertEquals(8, list.lowerEntry(12).timestamp);
|
|
|
|
assertEquals(5, list.higherEntry(1).timestamp);
|
|
assertEquals(5, list.higherEntry(2).timestamp);
|
|
assertEquals(5, list.higherEntry(3).timestamp);
|
|
assertEquals(5, list.higherEntry(4).timestamp);
|
|
assertEquals(8, list.higherEntry(5).timestamp);
|
|
assertEquals(8, list.higherEntry(6).timestamp);
|
|
assertNull(list.higherEntry(8));
|
|
assertNull(list.higherEntry(10));
|
|
assertNull(list.higherEntry(11));
|
|
assertNull(list.higherEntry(12));
|
|
}
|
|
|
|
@Test
|
|
public void testInterface() throws Exception {
|
|
EventList emptyList = new EventList();
|
|
IEventList populatedList = createList(new int[] {0, 2, 3, 5, 6, 7});
|
|
assertEquals(0, emptyList.size());
|
|
assertEquals(6, populatedList.size());
|
|
assertTrue(emptyList.isEmpty());
|
|
assertFalse(populatedList.isEmpty());
|
|
assertFalse(emptyList.containsKey(5));
|
|
assertTrue(populatedList.containsKey(5));
|
|
assertFalse(populatedList.containsKey(8));
|
|
assertNull(emptyList.get(5));
|
|
assertNotNull(populatedList.get(5));
|
|
assertNull(populatedList.get(8));
|
|
}
|
|
|
|
@Test
|
|
public void testInterfaceSublist() throws Exception {
|
|
IEventList fullList = createList(new int[] {0, 2, 3, 5, 6, 7});
|
|
IEventList emptyList = fullList.subMap(3, false, 4);
|
|
IEventList populatedList = fullList.subMap(2, true, 6);
|
|
assertEquals(0, emptyList.size());
|
|
assertEquals(4, populatedList.size());
|
|
assertTrue(emptyList.isEmpty());
|
|
assertFalse(populatedList.isEmpty());
|
|
assertFalse(emptyList.containsKey(5));
|
|
assertTrue(populatedList.containsKey(5));
|
|
assertFalse(populatedList.containsKey(8));
|
|
assertNull(emptyList.get(5));
|
|
assertNotNull(populatedList.get(5));
|
|
assertNull(populatedList.get(7));
|
|
}
|
|
}
|