@Test(expected = IndexOutOfBoundsException.class) public void testPop() { testPush(); Assert.assertEquals(7, (int) stack.pop()); Assert.assertEquals(-1, (int) stack.min()); Assert.assertEquals(0, (int) stack.pop()); Assert.assertEquals(-1, (int) stack.min()); Assert.assertEquals(8, (int) stack.pop()); Assert.assertEquals(-1, (int) stack.min()); Assert.assertEquals(0, (int) stack.pop()); Assert.assertEquals(-1, (int) stack.min()); Assert.assertEquals(-1, (int) stack.pop()); Assert.assertEquals(-1, (int) stack.min()); Assert.assertEquals(1, (int) stack.pop()); Assert.assertEquals(-1, (int) stack.min()); Assert.assertEquals(-1, (int) stack.pop()); Assert.assertEquals(0, (int) stack.min()); Assert.assertEquals(0, (int) stack.pop()); stack.min(); // exception }
@Test public void testPush() { stack = new StackWithMin<>(); stack.push(0); stack.push(-1); stack.push(1); stack.push(-1); stack.push(0); stack.push(8); stack.push(0); stack.push(7); Assert.assertEquals(new Integer(-1), stack.min()); }
public static void main(String[] args) { StackWithMin withMin = new StackWithMin(); withMin.push(3); withMin.push(4); withMin.push(1); withMin.push(1); withMin.push(2); withMin.push(5); withMin.pop(); withMin.pop(); withMin.pop(); System.out.println(withMin.min()); }