Sale!

Assignment 1 Junit Test

$30.00

Category:

CS 410 Software Engineering –
Assignment 1
Junit Test

Part I: You are given the following LinkedStack.java file which includes the implementation of Stack using LinkedList data structure.

import java.util.NoSuchElementException;

public class LinkedStack<Item>{
private int n; // size of the stack
private Node first; // top of stack

private class Node {
private Item item;
private Node next;
}

//initializes an empty stack.
public LinkedStack() {
first = null;
n = 0;
}

//returns true if this stack is empty; false otherwise
public boolean isEmpty() {
return first == null;
}

//returns the number of items in the stack.
public int size() {
return n;
}

//inserts an item to the stack
public void push(Item item) {
Node temp = first;
first = new Node();
first.item = item;
first.next = temp;
n++;
}
//removes and returns the top element in the stack
public Item pop() {
if (isEmpty()) throw new ArrayIndexOutOfBoundsException(“Stack underflow”);
Item item = first.item;
first = first.next;
return item;
}

//returns (but does not remove) the item most recently added to this stack.
public Item peek() {
if (isEmpty()) throw new ArrayIndexOutOfBoundsException(“Stack underflow”);
return first.item;
}

}

You are supposed to use Junit5 to create a test class with test cases, LinkedStackTest.java, to test the operations of LinkedStack.
Here are some other requirements for the activity:
• Create a LinkedStackTest.java and write test cases to test all the operations of LinkedStack.java

• Pushing 10000 objects into a stack should not take longer than 5 miliseconds

• Pop and peek methods should throw NoSuchElementException
if stack is empty

• Provide the list of failing test cases and explain the reason for failure

• Resolve the issues by modifying the original class in a separate class LinkedStackFixed.java file and make sure all tests pass.

 

 

 

 

 

 

 

 

 

Reviews

There are no reviews yet.

Be the first to review “Assignment 1 Junit Test”

Your email address will not be published.