package com.donaldy.test;
import com.donaldy.basic.Stack;
import com.donaldy.basic.StackUtil;
import org.junit.Assert;
import org.junit.Test;
/**
* Created by DonaldY on 2017/4/6.
*/
public class StackUtilTest {
@Test
public void testReverse() {
Stack stack = new Stack();
Integer [] intArr = {5, 4, 3, 2, 1};
for (int i = 4; i >= 0 ; --i)
stack.push(intArr[i]);
StackUtil.reverse(stack);
for (int i = 4 ; i >= 0; --i) {
Assert.assertEquals((int)stack.pop(), (int)intArr[i]);
}
}
@Test
public void testRemove() {
Stack stack = new Stack();
Integer [] intArr = {5, 4, 3, 2, 1};
for (int i = 4; i >= 0 ; --i)
stack.push(intArr[i]);
StackUtil.remove(stack, 2);
for (int i = 0; i < 5; ++i) {
if (i == 3)
continue;
System.out.println("stack: " + stack.peek() + " i : " + (int) intArr[i]);
Assert.assertEquals((int)stack.pop(), (int)intArr[i]);
}
}
@Test
public void testGetTop() {
Stack stack = new Stack();
Integer [] intArr = {5, 4, 3, 2, 1};
for (int i = 4; i >= 0 ; --i)
stack.push(intArr[i]);
int len = 3;
Object [] arr = StackUtil.getTop(stack, len);
for (int i = 0 ; i < arr.length ; ++i) {
Assert.assertEquals((int)arr[i], (int)intArr[i]);
}
for (int i = 0; i < 5; ++i) {
Assert.assertEquals((int)intArr[i], (int)stack.pop());
}
}
@Test
public void testIsValidPairs() {
String str1 = "([e{d}f])";
Assert.assertEquals(true, StackUtil.isValidPairs(str1));
String str2 = "([b{x]y})";
Assert.assertEquals(false, StackUtil.isValidPairs(str2));
}
}