package org.sglj.util.struct;
import java.util.Comparator;
import junit.framework.Assert;
import org.junit.Test;
public class MinimumQueueTest {
@Test
public void test01() {
// 1 2 3 1 4 5 2 3 6
MinimumQueue<Integer> q = createMax();
Assert.assertEquals(null, q.query());
q.add(1);
System.out.println(q);
Assert.assertEquals((Integer)1, q.query());
q.add(2);
System.out.println(q);
Assert.assertEquals((Integer)2, q.query());
q.add(3);
System.out.println(q);
Assert.assertEquals((Integer)3, q.query());
q.remove();
q.add(1);
System.out.println(q);
Assert.assertEquals((Integer)3, q.query());
q.remove();
q.add(4);
System.out.println(q);
Assert.assertEquals((Integer)4, q.query());
q.remove();
q.add(5);
System.out.println(q);
Assert.assertEquals((Integer)5, q.query());
q.remove();
q.add(2);
System.out.println(q);
Assert.assertEquals((Integer)5, q.query());
System.out.println(q);
q.remove();
System.out.println(q);
q.add(3);
System.out.println(q);
Assert.assertEquals((Integer)5, q.query());
q.remove();
q.add(6);
System.out.println(q);
Assert.assertEquals((Integer)6, q.query());
}
MinimumQueue<Integer> createMax(Integer... ints) {
return new MinimumQueue<Integer>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
});
}
}