package me.lzb.basic.queue; import org.junit.Assert; import org.junit.Test; /** * Created by LZB on 2017/4/27. */ public class QueueTest { @Test public void queueWithTwoStacksTest() { QueueWithTwoStacks q = new QueueWithTwoStacks(); Assert.assertTrue(q.isEmpty()); Assert.assertEquals(0, q.size()); Object o; q.enQueue("a"); Assert.assertEquals("[a]1", q.toString() + q.size()); q.enQueue("b"); Assert.assertEquals("[a,b]2", q.toString() + q.size()); q.enQueue("c"); Assert.assertEquals("[a,b,c]3", q.toString() + q.size()); o = q.deQueue(); Assert.assertEquals("[b,c]2", q.toString() + q.size()); Assert.assertEquals("a", o.toString()); q.enQueue("d"); Assert.assertEquals("[b,c,d]3", q.toString() + q.size()); o = q.deQueue(); Assert.assertEquals("[c,d]2", q.toString() + q.size()); Assert.assertEquals("b", o.toString()); o = q.deQueue(); Assert.assertEquals("[d]1", q.toString() + q.size()); Assert.assertEquals("c", o.toString()); o = q.deQueue(); Assert.assertEquals("[]0", q.toString() + q.size()); Assert.assertEquals("d", o.toString()); } public void circleQueueTest() { CircleQueue<String> q = new CircleQueue<>(5); Assert.assertTrue(q.isEmpty()); Assert.assertEquals(0, q.size()); q.enQueue("a"); Assert.assertEquals("[a]1", q.toString() + q.size()); q.enQueue("b"); Assert.assertEquals("[a,b]2", q.toString() + q.size()); q.enQueue("c"); Assert.assertEquals("[a,b,c]3", q.toString() + q.size()); q.enQueue("d"); Assert.assertEquals("[a,b,c,d]4", q.toString() + q.size()); q.enQueue("e"); Assert.assertEquals("[a,b,c,d,e]5", q.toString() + q.size()); q.enQueue("f"); Assert.assertEquals("[b,c,d,e,f]5", q.toString() + q.size()); Object o; o = q.deQueue(); Assert.assertEquals("[c,d,e,f]4", q.toString() + q.size()); Assert.assertEquals("b", o.toString()); o = q.deQueue(); Assert.assertEquals("[d,e,f]3", q.toString() + q.size()); Assert.assertEquals("c", o.toString()); q.enQueue("g"); Assert.assertEquals("[d,e,f,g]4", q.toString() + q.size()); o = q.deQueue(); Assert.assertEquals("[e,f,g]3", q.toString() + q.size()); Assert.assertEquals("d", o.toString()); o = q.deQueue(); Assert.assertEquals("[f,g]2", q.toString() + q.size()); Assert.assertEquals("e", o.toString()); o = q.deQueue(); Assert.assertEquals("[g]1", q.toString() + q.size()); Assert.assertEquals("f", o.toString()); o = q.deQueue(); Assert.assertEquals("[]0", q.toString() + q.size()); Assert.assertEquals("g", o.toString()); } }