// Path: DijkstraPerformance/src/dijkstra/priority/PriorityObject.java
// public class PriorityObject implements Comparable<PriorityObject> {
// 	
// 	public double priority;
// 	public int node;
// 	
// 	public PriorityObject(int node, double priority) {
// 		this.node = node;
// 		this.priority = priority;
// 	}
// 
// 	@Override
// 	public int compareTo(PriorityObject o) {
// 		if (priority > o.priority) {
// 			return +1;
// 		} else {
// 			return -1;
// 		}
// 	}
// }


import static org.junit.Assert.*;
import org.junit.Test;
import dijkstra.priority.PriorityObject;

		assertTrue(min != null);
		assertEquals(0, min.node);
		assertEquals(1, priorityQueue.size());
		
		min = priorityQueue.extractMin();
		assertTrue(min != null);
		assertEquals(1, min.node);
		assertEquals(0, priorityQueue.size());

		min = priorityQueue.extractMin();
		assertTrue(min == null);
	}
	
	@Test
	public void decreaseTest() {
		
		PriorityObject[] array = new PriorityObject[] {
			new PriorityObject(2, 12.0),
			new PriorityObject(1, 23.0),
			new PriorityObject(0, 18.0)
		};		
		
		TreeSetPriorityQueue priorityQueue = new TreeSetPriorityQueue();
		priorityQueue.add(array[0]);
		priorityQueue.add(array[1]);
		priorityQueue.add(array[2]);
		
		priorityQueue.decreasePriority(array[1], 5.0);
		assertEquals(3, priorityQueue.size());
		

// Path: DijkstraPerformance/src/dijkstra/priority/PriorityObject.java
// public class PriorityObject implements Comparable<PriorityObject> {
// 	
// 	public double priority;
// 	public int node;
// 	
// 	public PriorityObject(int node, double priority) {
// 		this.node = node;
// 		this.priority = priority;
// 	}
// 
// 	@Override
// 	public int compareTo(PriorityObject o) {
// 		if (priority > o.priority) {
// 			return +1;
// 		} else {
// 			return -1;
// 		}
// 	}
// }


// Path: DijkstraPerformance/test/dijkstra/priority/impl/TreeSetPriorityQueueTest.java
import static org.junit.Assert.*;
import org.junit.Test;
import dijkstra.priority.PriorityObject;

		assertTrue(min != null);
		assertEquals(0, min.node);
		assertEquals(1, priorityQueue.size());
		
		min = priorityQueue.extractMin();
		assertTrue(min != null);
		assertEquals(1, min.node);
		assertEquals(0, priorityQueue.size());

		min = priorityQueue.extractMin();
		assertTrue(min == null);
	}
	
	@Test
	public void decreaseTest() {
		
		PriorityObject[] array = new PriorityObject[] {
			new PriorityObject(2, 12.0),
			new PriorityObject(1, 23.0),
			new PriorityObject(0, 18.0)
		};		
		
		TreeSetPriorityQueue priorityQueue = new TreeSetPriorityQueue();
		priorityQueue.add(array[0]);
		priorityQueue.add(array[1]);
		priorityQueue.add(array[2]);
		
		priorityQueue.decreasePriority(array[1], 5.0);
		assertEquals(3, priorityQueue.size());
		

		PriorityObject min = priorityQueue.extractMin();
