package data_structure.stack; import basic.dataStructure.stack.*; import org.junit.Assert; import org.junit.Before; import org.junit.Test; /** * Created by macvi on 2017/4/4. */ public class StackTest { private Stack s; @Before public void init(){ s = new Stack(); for(int i = 0; i < 5; i ++){ s.push(i + ""); } } @Test public void test1(){ Assert.assertEquals("4,3,2,1,0", s.toString()); Assert.assertEquals("13", s.pop()); Assert.assertEquals(13, s.size()); Assert.assertEquals("12", s.peek()); } @Test public void test2(){ // Assert.assertEquals("0,1,2,3,4", StackUtil.reverse(s).toString()); // Assert.assertEquals("0,1,3,4", StackUtil.remove(s, "2").toString()); // Assert.assertEquals("[4, 3]", Arrays.toString(StackUtil.getTop(s, 2))); // Assert.assertEquals(true, StackUtil.isValidPairs("([e{d}f])")); Assert.assertEquals(false, StackUtil.isValidPairs("([b{x]y})")); } /** * QuickMinStack * * StackWithTwoQueues * * TwoStackInOneArray */ @Test public void test3(){ //QuickMinStack { QuickMinStack qms = new QuickMinStack(); qms.push(0); qms.push(-2); qms.push(10); for(int i = 0; i < 14; i++){ qms.push(i); } Assert.assertEquals(-2, qms.findMin()); Assert.assertEquals(17, qms.size()); Assert.assertEquals(13, qms.pop()); System.out.println(qms.toString()); } //StackWithTwoQueues { StackWithTwoQueues stack = new StackWithTwoQueues(); stack.push(0); stack.push(2); stack.push(5); stack.push(10); Assert.assertEquals(10, stack.pop()); } //TwoStackInOneArray { TwoStackInOneArray stack = new TwoStackInOneArray(); for(int i = 0; i < 7; i++){ stack.push1(i); } for(int i = 0; i < 8; i++){ stack.push2(i); } System.out.println("size1 ->" + stack.size1()); System.out.println("size2 ->" + stack.size2()); System.out.println(stack.toString()); Assert.assertEquals(stack.peek1(), 6); Assert.assertEquals(stack.peek2(), 7); Assert.assertEquals(stack.pop1(), 6); Assert.assertEquals(stack.size1(), 6); Assert.assertEquals(stack.pop2(), 7); Assert.assertEquals(stack.size2(), 7); } } }