package com.github.miniyk2012.coding2017.basic.stack;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import java.util.IntSummaryStatistics;
public class TwoStackInOneArrayTest {
TwoStackInOneArray stack;
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Rule
public ExpectedException expectedEx = ExpectedException.none();
@Test
public void test() {
stack = new TwoStackInOneArray<Integer>();
stack.push1(3);
stack.push1(5);
stack.push1(6);
stack.push1(11);
assertEquals(11, stack.peek1());
assertEquals(11, stack.pop1());
assertEquals(6, stack.pop1());
stack.push1(61);
assertEquals(3, stack.size1());
assertEquals(61, stack.pop1());
assertEquals(5, stack.pop1());
assertEquals(3, stack.peek1());
assertEquals(3, stack.pop1());
assertEquals(0, stack.size1());
stack.push2(123);
stack.push2(1);
stack.push2(4);
stack.push1(3);
stack.push1(5);
stack.push1(6);
assertEquals(3, stack.size1());
assertEquals(3, stack.size2());
stack.push2(123);
stack.push2(1);
stack.push2(4);
stack.push2(12);
stack.push2(2);
stack.push2(8);
assertEquals(9, stack.size2());
assertEquals(6, stack.pop1());
assertEquals(5, stack.peek1());
assertEquals(5, stack.pop1());
assertEquals(3, stack.pop1());
assertEquals(8, stack.pop2());
assertEquals(2, stack.pop2());
assertEquals(12, stack.pop2());
assertEquals(4, stack.pop2());
assertEquals(1, stack.pop2());
assertEquals(123, stack.pop2());
assertEquals(4, stack.pop2());
assertEquals(1, stack.pop2());
assertEquals(123, stack.pop2());
assertEquals(0, stack.size1());
assertEquals(0, stack.size2());
assertNull(stack.peek1());
assertNull(stack.peek2());
// 栈1为空,抛出异常
expectedEx.expect(Exception.class);
stack.pop1();
}
}