package org.rdfhdt.hdt.iterator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.rdfhdt.hdt.iterator.utils.MergedIterator;
import static org.junit.Assert.*;
public class MergedIteratorTest {
List<Integer> listA, listB, listC;
private List<Integer> getList(int[] ints) {
List<Integer> intList = new ArrayList<Integer>();
for (int index = 0; index < ints.length; index++)
{
intList.add(ints[index]);
}
return intList;
}
@Before
public void setUp() throws Exception {
int[] intsA = {1, 4, 6};
int[] intsB = {3,4,5};
Integer[] intsExpected = {1, 3, 4, 5, 6};
listA=getList(intsA);
listB=getList(intsB);
listC=Arrays.asList(intsExpected);
}
@Test
public void testOneEmpty() {
Iterator<Integer> it = new MergedIterator<Integer>(listA.iterator(), listB.iterator(), new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
});
Iterator<Integer> itE = listC.iterator();
while(it.hasNext()) {
assertEquals(itE.hasNext(), it.hasNext());
int val = it.next();
int valE = itE.next();
// System.out.println(val);
assertEquals(val, valE);
}
assertEquals(itE.hasNext(), it.hasNext());
}
}