TestMyStack.java Source code

Java tutorial

Introduction

Here is the source code for TestMyStack.java

Source

import junit.framework.TestCase;

public class TestMyStack extends TestCase {

    public void testEmpty() throws Exception {
        MyStack stack = new MyStack();

        stack.checkInvariant();
        stack.push("sample");
        stack.checkInvariant();

        assertEquals("sample", stack.pop());
        stack.checkInvariant();

        stack.delete(1);
        stack.checkInvariant();
    }

}

class MyStack {
    public MyStack() {
        stack = new String[100];
        next_index = 0;
    }

    public String pop() {
        return stack[--next_index];
    }

    public void delete(int n) {
        next_index -= n;
    }

    public void push(String aString) {
        stack[next_index++] = aString;
    }

    public String top() {
        return stack[next_index - 1];
    }

    public void checkInvariant() throws Exception {
        if (!(next_index >= 0 && next_index < stack.length)) {
            throw new Exception("next_index out of range: " + next_index + " for stack length " + stack.length);
        }
    }

    private int next_index;

    private String[] stack;
}