package me.lzb.basic.stack;
import org.junit.Assert;
import org.junit.Test;
/**
* Created by LZB on 2017/5/4.
*/
public class StackTest {
@Test
public void QuickMinStackTest() {
QuickMinStack stack = new QuickMinStack();
stack.push(1);
stack.push(3);
stack.push(0);
stack.push(2);
Assert.assertEquals(0, stack.findMin());
Assert.assertEquals(2, stack.pop());
Assert.assertEquals(0, stack.findMin());
Assert.assertEquals(0, stack.pop());
Assert.assertEquals(1, stack.findMin());
}
@Test
public void StackWithTwoQueuesTest() {
StackWithTwoQueues stack = new StackWithTwoQueues();
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
Assert.assertEquals("[1,2,3,4]", stack.toString());
Assert.assertEquals("4", String.valueOf(stack.pop()));
Assert.assertEquals("[1,2,3]", stack.toString());
Assert.assertEquals("3", String.valueOf(stack.pop()));
Assert.assertEquals("[1,2]", stack.toString());
}
@Test
public void TwoStackInOneArrayTest() {
TwoStackInOneArray stack = new TwoStackInOneArray();
stack.push1(1);
stack.push1(2);
stack.push1(3);
stack.push1(4);
stack.push1(5);
stack.push1(6);
Assert.assertEquals(6, stack.size1());
stack.push2(1);
stack.push2(2);
stack.push2(3);
stack.push2(4);
stack.push2(5);
stack.push2(6);
Assert.assertEquals("[1,2,3,4,5,6]|[1,2,3,4,5,6]", stack.toString());
Assert.assertEquals(6, stack.size1());
Assert.assertEquals(6, stack.peek1());
Assert.assertEquals(6, stack.peek2());
Assert.assertEquals(6, stack.pop1());
Assert.assertEquals(6, stack.pop2());
Assert.assertEquals("[1,2,3,4,5]|[1,2,3,4,5]", stack.toString());
Assert.assertEquals(5, stack.pop1());
Assert.assertEquals(4, stack.pop1());
Assert.assertEquals(5, stack.pop2());
Assert.assertEquals("[1,2,3]|[1,2,3,4]", stack.toString());
}
}