package com.github.ipk2015.coding2017.basic.test;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import com.github.ipk2015.coding2017.basic.stack.Stack;
import com.github.ipk2015.coding2017.basic.stack.StackUtil;
public class StackUtilTest {
Stack stack=null;
@Before
public void setUp() throws Exception {
stack=new Stack();
}
@Test
public void testReverse() {
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
StackUtil.reverse(stack);
assertEquals("4,3,2,1,", stack.toString());
}
@Test
public void testRemove() {
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
StackUtil.remove(stack, 2);
assertEquals("1,3,4,", stack.toString());
StackUtil.remove(stack, 5);
assertEquals("1,3,4,", stack.toString());
}
@Test
public void testGetTop() {
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
Object[] array=StackUtil.getTop(stack, 3);
assertEquals("1,2,3,4,", stack.toString());
StringBuffer buffer=new StringBuffer();
for(int i=0;i<array.length;i++){
buffer.append(array[i]+",");
}
assertEquals("2,3,4,", buffer.toString());
}
@Test
public void testIsValidPairs() {
String s="([a{b}c])";
boolean result=StackUtil.isValidPairs(s);
assertEquals(true, result);
s="[a]{[(b)]}{(c)}";
result=StackUtil.isValidPairs(s);
assertEquals(true, result);
s="([a{b]c})";
result=StackUtil.isValidPairs(s);
assertEquals(false, result);
s="{[{a}]b]";
result=StackUtil.isValidPairs(s);
assertEquals(false, result);
s="{(a)}b(][)";
result=StackUtil.isValidPairs(s);
assertEquals(false, result);
}
}