package stack;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class TwoStackInOneArrayTest {
TwoStackInOneArray ts;
@Before
public void setUp() throws Exception {
ts = new TwoStackInOneArray();
}
@After
public void tearDown() throws Exception {
ts = null;
}
@Test
public void testPush1() {
ts.push1(1);
ts.push1(2);
}
@Test
public void testSize1() {
assertEquals(0,ts.size1());
ts.push1(1);
ts.push1(2);
assertEquals(2,ts.size1());
}
@Test
public void testSize2() {
assertEquals(0,ts.size2());
ts.push2(1);
ts.push2(2);
assertEquals(2,ts.size2());
}
@Test
public void testSize12() {
assertEquals(0,ts.size1());
ts.push1(1);
ts.push1(2);
assertEquals(2,ts.size1());
assertEquals(0,ts.size2());
ts.push2(1);
ts.push2(2);
assertEquals(2,ts.size2());
}
@Test
public void testPush2() {
ts.push2(1);
ts.push2(2);
assertEquals(2,ts.pop2());
assertEquals(1,ts.pop2());
}
@Test
public void testPush12() {
ts.push1(1);
ts.push1(2);
assertEquals(2,ts.pop1());
assertEquals(1,ts.pop1());
ts.push2(1);
ts.push2(2);
assertEquals(2,ts.pop2());
assertEquals(1,ts.pop2());
}
@Test
public void testPop1() {
ts.push1(1);
ts.push1(2);
assertEquals(2,ts.pop1());
assertEquals(1,ts.pop1());
}
@Test
public void testPop2() {
ts.push2(1);
ts.push2(2);
assertEquals(2,ts.pop2());
assertEquals(1,ts.pop2());
}
@Test
public void testPeek2() {
ts.push1(1);
ts.push1(2);
assertEquals(2,ts.pop1());
assertEquals(1,ts.pop1());
ts.push2(1);
ts.push2(2);
assertEquals(2,ts.pop2());
assertEquals(1,ts.pop2());
}
@Test
public void testPeek1() {
ts.push1(1);
assertEquals(1,ts.peek1());
ts.push1(2);
assertEquals(2,ts.peek1());
}
@Test
public void testGrow() {
for(int i = 1; i < 101; i++) {
ts.push1(i);
ts.push2(i);
assertEquals(i,ts.size1());
assertEquals(i,ts.size2());
}
for (int i = 100; i >0; i--) {
assertEquals(i, ts.pop1());
assertEquals(i, ts.pop2());
}
}
}