package jetbrains.mps.internalCollections.test.basicOperations;
/*Generated by MPS */
import junit.framework.TestCase;
import java.util.Queue;
import jetbrains.mps.internal.collections.runtime.QueueSequence;
import java.util.LinkedList;
import junit.framework.Assert;
import java.util.PriorityQueue;
import java.util.Deque;
import jetbrains.mps.internal.collections.runtime.DequeSequence;
public class QueueDequeStack_Test extends TestCase {
public void test_queue() throws Exception {
Queue<Integer> q = QueueSequence.fromQueue(new LinkedList<Integer>());
QueueSequence.fromQueue(q).addLastElement(1);
QueueSequence.fromQueue(q).addLastElement(2);
QueueSequence.fromQueue(q).addLastElement(3);
Queue<Integer> q2 = QueueSequence.fromQueueAndArray(new LinkedList<Integer>(), 1, 2, 3);
Assert.assertTrue(eq_5js43w_a0a5a0(q, q2));
Assert.assertSame(1, QueueSequence.fromQueue(q).first());
Assert.assertSame(1, QueueSequence.fromQueue(q).removeFirstElement());
Assert.assertSame(2, QueueSequence.fromQueue(q).first());
Assert.assertSame(3, QueueSequence.fromQueue(q).last());
Assert.assertSame(2, QueueSequence.fromQueue(q).removeFirstElement());
Assert.assertSame(3, QueueSequence.fromQueue(q).removeFirstElement());
Assert.assertTrue(QueueSequence.fromQueue(q).isEmpty());
}
public void test_priorityQueue() throws Exception {
Queue<Integer> q = QueueSequence.fromQueue(new PriorityQueue<Integer>());
QueueSequence.fromQueue(q).addLastElement(3);
QueueSequence.fromQueue(q).addLastElement(2);
QueueSequence.fromQueue(q).addLastElement(1);
Assert.assertSame(1, QueueSequence.fromQueue(q).first());
Assert.assertSame(1, QueueSequence.fromQueue(q).removeFirstElement());
Assert.assertSame(2, QueueSequence.fromQueue(q).first());
Assert.assertSame(3, QueueSequence.fromQueue(q).last());
Assert.assertSame(2, QueueSequence.fromQueue(q).removeFirstElement());
Assert.assertSame(3, QueueSequence.fromQueue(q).removeFirstElement());
Assert.assertTrue(QueueSequence.fromQueue(q).isEmpty());
}
public void test_stack() throws Exception {
Deque<Integer> s = DequeSequence.fromDequeNew(new LinkedList<Integer>());
DequeSequence.fromDequeNew(s).addFirstElement(1);
DequeSequence.fromDequeNew(s).addFirstElement(2);
DequeSequence.fromDequeNew(s).addFirstElement(3);
Assert.assertSame(3, DequeSequence.fromDequeNew(s).first());
Assert.assertSame(3, DequeSequence.fromDequeNew(s).removeFirstElement());
Assert.assertSame(2, DequeSequence.fromDequeNew(s).first());
Assert.assertSame(1, DequeSequence.fromDequeNew(s).last());
Assert.assertSame(2, DequeSequence.fromDequeNew(s).removeFirstElement());
Assert.assertSame(1, DequeSequence.fromDequeNew(s).removeFirstElement());
Assert.assertTrue(DequeSequence.fromDequeNew(s).isEmpty());
}
public void test_stackClassic() throws Exception {
Deque<Integer> s = DequeSequence.fromDequeNew(new LinkedList<Integer>());
DequeSequence.fromDequeNew(s).pushElement(1);
DequeSequence.fromDequeNew(s).pushElement(2);
DequeSequence.fromDequeNew(s).pushElement(3);
Assert.assertSame(3, DequeSequence.fromDequeNew(s).first());
Assert.assertSame(3, DequeSequence.fromDequeNew(s).peekElement());
Assert.assertSame(3, DequeSequence.fromDequeNew(s).popElement());
Assert.assertSame(2, DequeSequence.fromDequeNew(s).first());
Assert.assertSame(2, DequeSequence.fromDequeNew(s).peekElement());
Assert.assertSame(1, DequeSequence.fromDequeNew(s).last());
Assert.assertSame(2, DequeSequence.fromDequeNew(s).popElement());
Assert.assertSame(1, DequeSequence.fromDequeNew(s).popElement());
Assert.assertTrue(DequeSequence.fromDequeNew(s).isEmpty());
}
public void test_deque() throws Exception {
Deque<Integer> d = DequeSequence.fromDequeNew(new LinkedList<Integer>());
DequeSequence.fromDequeNew(d).addFirstElement(1);
DequeSequence.fromDequeNew(d).addFirstElement(2);
DequeSequence.fromDequeNew(d).addFirstElement(3);
Assert.assertSame(3, DequeSequence.fromDequeNew(d).first());
Assert.assertSame(3, DequeSequence.fromDequeNew(d).removeFirstElement());
DequeSequence.fromDequeNew(d).addLastElement(4);
DequeSequence.fromDequeNew(d).addLastElement(5);
DequeSequence.fromDequeNew(d).addLastElement(6);
Assert.assertSame(2, DequeSequence.fromDequeNew(d).first());
Assert.assertSame(2, DequeSequence.fromDequeNew(d).peekElement());
Assert.assertSame(6, DequeSequence.fromDequeNew(d).last());
Assert.assertSame(6, DequeSequence.fromDequeNew(d).removeLastElement());
Assert.assertSame(2, DequeSequence.fromDequeNew(d).removeFirstElement());
Assert.assertSame(1, DequeSequence.fromDequeNew(d).first());
Assert.assertSame(1, DequeSequence.fromDequeNew(d).peekElement());
Assert.assertSame(1, DequeSequence.fromDequeNew(d).removeFirstElement());
Assert.assertSame(4, DequeSequence.fromDequeNew(d).first());
Assert.assertSame(4, DequeSequence.fromDequeNew(d).peekElement());
Assert.assertSame(4, DequeSequence.fromDequeNew(d).removeFirstElement());
Assert.assertSame(5, DequeSequence.fromDequeNew(d).last());
Assert.assertSame(5, DequeSequence.fromDequeNew(d).removeLastElement());
Assert.assertTrue(DequeSequence.fromDequeNew(d).isEmpty());
}
public QueueDequeStack_Test() {
}
private static boolean eq_5js43w_a0a5a0(Object a, Object b) {
return (a != null ? a.equals(b) : a == b);
}
}