package week05.stack; import org.junit.Assert; import org.junit.Before; import org.junit.Test; public class StackUtilTest { Stack s = new Stack(); @Before public void setUp() throws Exception { for(int i=1;i<=5;i++){ s.push(i); } } @Test public void testReverse() { StackUtil.reverse(s); for(int i=1;i<=5;i++){ Assert.assertEquals(i,s.pop()); } } @Test public void testRemove() { StackUtil.remove(s, 3); Assert.assertEquals(4,s.size()); Assert.assertEquals(5,s.pop()); Assert.assertEquals(4,s.pop()); Assert.assertEquals(2,s.pop()); Assert.assertEquals(1,s.pop()); Assert.assertEquals(0,s.size()); } @Test public void testGetTop() { Object[] result = StackUtil.getTop(s, 3); Assert.assertArrayEquals(new Object[]{5,4,3},result); for(int i=5;i>=1;i--){ Assert.assertEquals(i, s.pop()); } } @Test public void testIsValidPairs() { String s1 = "([e{d}f])"; String s2 = "([b{x]y})"; Assert.assertTrue(StackUtil.isValidPairs(s1)); Assert.assertFalse(StackUtil.isValidPairs(s2)); } }