diff --git a/src/berack96/sim/util/graph/Edge.java b/src/berack96/lib/graph/Edge.java similarity index 98% rename from src/berack96/sim/util/graph/Edge.java rename to src/berack96/lib/graph/Edge.java index c8f1965..17a3946 100644 --- a/src/berack96/sim/util/graph/Edge.java +++ b/src/berack96/lib/graph/Edge.java @@ -1,4 +1,4 @@ -package berack96.sim.util.graph; +package berack96.lib.graph; /** * Class used for retrieving the edges of the graph. diff --git a/src/berack96/sim/util/graph/Graph.java b/src/berack96/lib/graph/Graph.java similarity index 96% rename from src/berack96/sim/util/graph/Graph.java rename to src/berack96/lib/graph/Graph.java index 673c026..7b3bc36 100644 --- a/src/berack96/sim/util/graph/Graph.java +++ b/src/berack96/lib/graph/Graph.java @@ -1,4 +1,4 @@ -package berack96.sim.util.graph; +package berack96.lib.graph; import java.io.File; import java.io.FileReader; @@ -12,9 +12,9 @@ import java.util.function.Consumer; import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; -import berack96.sim.util.graph.models.GraphSaveStructure; -import berack96.sim.util.graph.visit.VisitInfo; -import berack96.sim.util.graph.visit.VisitStrategy; +import berack96.lib.graph.models.GraphSaveStructure; +import berack96.lib.graph.visit.VisitStrategy; +import berack96.lib.graph.visit.impl.VisitInfo; /** * An interface for the graphs.
@@ -96,8 +96,9 @@ public interface Graph extends Iterable { * * @param vertex the vertex to remove * @throws NullPointerException if the vertex is null + * @throws IllegalArgumentException if the vertex is not contained */ - void removeVertex(V vertex) throws IllegalArgumentException; + void removeVertex(V vertex) throws NullPointerException, IllegalArgumentException; /** * Remove all the vertex contained in the graph.
diff --git a/src/berack96/sim/util/graph/Vertex.java b/src/berack96/lib/graph/Vertex.java similarity index 98% rename from src/berack96/sim/util/graph/Vertex.java rename to src/berack96/lib/graph/Vertex.java index d369555..79433ac 100644 --- a/src/berack96/sim/util/graph/Vertex.java +++ b/src/berack96/lib/graph/Vertex.java @@ -1,12 +1,12 @@ -package berack96.sim.util.graph; - -import berack96.sim.util.graph.visit.VisitInfo; -import berack96.sim.util.graph.visit.VisitStrategy; +package berack96.lib.graph; import java.util.Collection; import java.util.HashSet; import java.util.function.Consumer; +import berack96.lib.graph.visit.VisitStrategy; +import berack96.lib.graph.visit.impl.VisitInfo; + /** * Class used for represent a vertex of the graph.
* The vertex contained is linked with the graph, so if any changes are made to diff --git a/src/berack96/lib/graph/impl/AdjGraph.java b/src/berack96/lib/graph/impl/AdjGraph.java new file mode 100644 index 0000000..55caa81 --- /dev/null +++ b/src/berack96/lib/graph/impl/AdjGraph.java @@ -0,0 +1,313 @@ +package berack96.lib.graph.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + +import berack96.lib.graph.Edge; +import berack96.lib.graph.Graph; +import berack96.lib.graph.Vertex; +import berack96.lib.graph.visit.VisitStrategy; +import berack96.lib.graph.visit.impl.VisitInfo; + +public class AdjGraph implements Graph { + + @Override + public Iterator iterator() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean isCyclic() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean isDAG() { + // TODO Auto-generated method stub + return false; + } + + @Override + public Vertex getVertex(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public void addVertex(V vertex) throws NullPointerException { + // TODO Auto-generated method stub + + } + + @Override + public boolean addVertexIfAbsent(V vertex) throws NullPointerException { + // TODO Auto-generated method stub + return false; + } + + @Override + public void addAllVertices(Collection vertices) throws NullPointerException { + // TODO Auto-generated method stub + + } + + @Override + public void removeVertex(V vertex) throws IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void removeAllVertex() { + // TODO Auto-generated method stub + + } + + @Override + public boolean contains(V vertex) throws NullPointerException { + // TODO Auto-generated method stub + return false; + } + + @Override + public void mark(V vertex, Object mark) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void unMark(V vertex, Object mark) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void unMark(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public Collection getMarkedWith(Object mark) throws NullPointerException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection getMarks(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public void unMarkAll(Object mark) throws NullPointerException { + // TODO Auto-generated method stub + + } + + @Override + public void unMarkAll() { + // TODO Auto-generated method stub + + } + + @Override + public W addEdge(V vertex1, V vertex2, W weight) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public W addEdge(Edge edge) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public W addEdgeAndVertices(V vertex1, V vertex2, W weight) throws NullPointerException { + // TODO Auto-generated method stub + return null; + } + + @Override + public W addEdgeAndVertices(Edge edge) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public void addAllEdges(Collection> edges) throws NullPointerException { + // TODO Auto-generated method stub + + } + + @Override + public W getWeight(V vertex1, V vertex2) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public void removeEdge(V vertex1, V vertex2) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void removeAllInEdge(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void removeAllOutEdge(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void removeAllEdge(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void removeAllEdge() { + // TODO Auto-generated method stub + + } + + @Override + public boolean containsEdge(V vertex1, V vertex2) throws NullPointerException { + // TODO Auto-generated method stub + return false; + } + + @Override + public Collection vertices() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection> edges() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection> edgesOf(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection> getEdgesIn(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection> getEdgesOut(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection getChildren(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection getAncestors(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public int degreeIn(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int degreeOut(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int degree(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int numberOfVertices() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int numberOfEdges() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public VisitInfo visit(V source, VisitStrategy strategy, Consumer visit) + throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Graph transpose() { + // TODO Auto-generated method stub + return null; + } + + @Override + public List topologicalSort() throws UnsupportedOperationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection> stronglyConnectedComponents() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Graph subGraph(V source, int depth) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Graph subGraph(Object... marker) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List> distance(V source, V destination) + throws NullPointerException, IllegalArgumentException, UnsupportedOperationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Map>> distance(V source) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/berack96/sim/util/graph/MapGraph.java b/src/berack96/lib/graph/impl/MapGraph.java similarity index 95% rename from src/berack96/sim/util/graph/MapGraph.java rename to src/berack96/lib/graph/impl/MapGraph.java index ae0fa6d..08487bb 100644 --- a/src/berack96/sim/util/graph/MapGraph.java +++ b/src/berack96/lib/graph/impl/MapGraph.java @@ -1,14 +1,17 @@ -package berack96.sim.util.graph; - -import berack96.sim.util.graph.visit.Dijkstra; -import berack96.sim.util.graph.visit.Tarjan; -import berack96.sim.util.graph.visit.VisitInfo; -import berack96.sim.util.graph.visit.VisitStrategy; +package berack96.lib.graph.impl; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; +import berack96.lib.graph.Edge; +import berack96.lib.graph.Graph; +import berack96.lib.graph.Vertex; +import berack96.lib.graph.visit.VisitStrategy; +import berack96.lib.graph.visit.impl.Dijkstra; +import berack96.lib.graph.visit.impl.Tarjan; +import berack96.lib.graph.visit.impl.VisitInfo; + /** * Graph that uses HashMap for vertices and edges
* More specifically it utilizes a Map containing all the vertices mapped to all their edges
diff --git a/src/berack96/lib/graph/impl/MatrixGraph.java b/src/berack96/lib/graph/impl/MatrixGraph.java new file mode 100644 index 0000000..0094373 --- /dev/null +++ b/src/berack96/lib/graph/impl/MatrixGraph.java @@ -0,0 +1,313 @@ +package berack96.lib.graph.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + +import berack96.lib.graph.Edge; +import berack96.lib.graph.Graph; +import berack96.lib.graph.Vertex; +import berack96.lib.graph.visit.VisitStrategy; +import berack96.lib.graph.visit.impl.VisitInfo; + +public class MatrixGraph implements Graph { + + @Override + public Iterator iterator() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean isCyclic() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean isDAG() { + // TODO Auto-generated method stub + return false; + } + + @Override + public Vertex getVertex(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public void addVertex(V vertex) throws NullPointerException { + // TODO Auto-generated method stub + + } + + @Override + public boolean addVertexIfAbsent(V vertex) throws NullPointerException { + // TODO Auto-generated method stub + return false; + } + + @Override + public void addAllVertices(Collection vertices) throws NullPointerException { + // TODO Auto-generated method stub + + } + + @Override + public void removeVertex(V vertex) throws IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void removeAllVertex() { + // TODO Auto-generated method stub + + } + + @Override + public boolean contains(V vertex) throws NullPointerException { + // TODO Auto-generated method stub + return false; + } + + @Override + public void mark(V vertex, Object mark) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void unMark(V vertex, Object mark) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void unMark(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public Collection getMarkedWith(Object mark) throws NullPointerException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection getMarks(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public void unMarkAll(Object mark) throws NullPointerException { + // TODO Auto-generated method stub + + } + + @Override + public void unMarkAll() { + // TODO Auto-generated method stub + + } + + @Override + public W addEdge(V vertex1, V vertex2, W weight) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public W addEdge(Edge edge) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public W addEdgeAndVertices(V vertex1, V vertex2, W weight) throws NullPointerException { + // TODO Auto-generated method stub + return null; + } + + @Override + public W addEdgeAndVertices(Edge edge) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public void addAllEdges(Collection> edges) throws NullPointerException { + // TODO Auto-generated method stub + + } + + @Override + public W getWeight(V vertex1, V vertex2) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public void removeEdge(V vertex1, V vertex2) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void removeAllInEdge(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void removeAllOutEdge(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void removeAllEdge(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void removeAllEdge() { + // TODO Auto-generated method stub + + } + + @Override + public boolean containsEdge(V vertex1, V vertex2) throws NullPointerException { + // TODO Auto-generated method stub + return false; + } + + @Override + public Collection vertices() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection> edges() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection> edgesOf(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection> getEdgesIn(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection> getEdgesOut(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection getChildren(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection getAncestors(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public int degreeIn(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int degreeOut(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int degree(V vertex) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int numberOfVertices() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int numberOfEdges() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public VisitInfo visit(V source, VisitStrategy strategy, Consumer visit) + throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Graph transpose() { + // TODO Auto-generated method stub + return null; + } + + @Override + public List topologicalSort() throws UnsupportedOperationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Collection> stronglyConnectedComponents() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Graph subGraph(V source, int depth) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Graph subGraph(Object... marker) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List> distance(V source, V destination) + throws NullPointerException, IllegalArgumentException, UnsupportedOperationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Map>> distance(V source) throws NullPointerException, IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/berack96/sim/util/graph/models/EdgeSaveStructure.java b/src/berack96/lib/graph/models/EdgeSaveStructure.java similarity index 85% rename from src/berack96/sim/util/graph/models/EdgeSaveStructure.java rename to src/berack96/lib/graph/models/EdgeSaveStructure.java index 5213a14..9d12eca 100644 --- a/src/berack96/sim/util/graph/models/EdgeSaveStructure.java +++ b/src/berack96/lib/graph/models/EdgeSaveStructure.java @@ -1,4 +1,4 @@ -package berack96.sim.util.graph.models; +package berack96.lib.graph.models; /** * Support class used for saving a Graph in a file. diff --git a/src/berack96/sim/util/graph/models/GraphSaveStructure.java b/src/berack96/lib/graph/models/GraphSaveStructure.java similarity index 84% rename from src/berack96/sim/util/graph/models/GraphSaveStructure.java rename to src/berack96/lib/graph/models/GraphSaveStructure.java index 0cf8db4..76fa155 100644 --- a/src/berack96/sim/util/graph/models/GraphSaveStructure.java +++ b/src/berack96/lib/graph/models/GraphSaveStructure.java @@ -1,7 +1,7 @@ -package berack96.sim.util.graph.models; +package berack96.lib.graph.models; -import berack96.sim.util.graph.Edge; -import berack96.sim.util.graph.Graph; +import berack96.lib.graph.Edge; +import berack96.lib.graph.Graph; /** * Support class used for saving a Graph in a file. diff --git a/src/berack96/sim/util/graph/models/MarkSaveStructure.java b/src/berack96/lib/graph/models/MarkSaveStructure.java similarity index 83% rename from src/berack96/sim/util/graph/models/MarkSaveStructure.java rename to src/berack96/lib/graph/models/MarkSaveStructure.java index 0f7517b..557791b 100644 --- a/src/berack96/sim/util/graph/models/MarkSaveStructure.java +++ b/src/berack96/lib/graph/models/MarkSaveStructure.java @@ -1,4 +1,4 @@ -package berack96.sim.util.graph.models; +package berack96.lib.graph.models; /** * Support class used for saving a Graph in a file. diff --git a/src/berack96/sim/util/graph/view/GraphInfo.java b/src/berack96/lib/graph/view/GraphInfo.java similarity index 96% rename from src/berack96/sim/util/graph/view/GraphInfo.java rename to src/berack96/lib/graph/view/GraphInfo.java index 0df08a8..73e47e4 100644 --- a/src/berack96/sim/util/graph/view/GraphInfo.java +++ b/src/berack96/lib/graph/view/GraphInfo.java @@ -1,4 +1,4 @@ -package berack96.sim.util.graph.view; +package berack96.lib.graph.view; import java.awt.Color; import java.awt.Component; @@ -20,10 +20,10 @@ import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.BevelBorder; -import berack96.sim.util.graph.Graph; -import berack96.sim.util.graph.view.edge.EdgeListener; -import berack96.sim.util.graph.view.vertex.VertexListener; -import berack96.sim.util.graph.visit.VisitStrategy; +import berack96.lib.graph.Graph; +import berack96.lib.graph.view.edge.EdgeListener; +import berack96.lib.graph.view.vertex.VertexListener; +import berack96.lib.graph.visit.VisitStrategy; public class GraphInfo extends JPanel { diff --git a/src/berack96/sim/util/graph/view/GraphListener.java b/src/berack96/lib/graph/view/GraphListener.java similarity index 94% rename from src/berack96/sim/util/graph/view/GraphListener.java rename to src/berack96/lib/graph/view/GraphListener.java index 364d289..4469db0 100644 --- a/src/berack96/sim/util/graph/view/GraphListener.java +++ b/src/berack96/lib/graph/view/GraphListener.java @@ -1,4 +1,4 @@ -package berack96.sim.util.graph.view; +package berack96.lib.graph.view; import java.awt.event.KeyListener; import java.awt.event.MouseListener; diff --git a/src/berack96/sim/util/graph/view/GraphPanel.java b/src/berack96/lib/graph/view/GraphPanel.java similarity index 96% rename from src/berack96/sim/util/graph/view/GraphPanel.java rename to src/berack96/lib/graph/view/GraphPanel.java index 88e0a38..9296dd3 100644 --- a/src/berack96/sim/util/graph/view/GraphPanel.java +++ b/src/berack96/lib/graph/view/GraphPanel.java @@ -1,4 +1,4 @@ -package berack96.sim.util.graph.view; +package berack96.lib.graph.view; import java.awt.Component; import java.awt.Container; @@ -18,12 +18,12 @@ import java.util.List; import java.util.Observer; import java.util.Set; -import berack96.sim.util.graph.Edge; -import berack96.sim.util.graph.Graph; -import berack96.sim.util.graph.MapGraph; -import berack96.sim.util.graph.Vertex; -import berack96.sim.util.graph.view.edge.EdgeComponent; -import berack96.sim.util.graph.view.vertex.VertexComponent; +import berack96.lib.graph.Edge; +import berack96.lib.graph.Graph; +import berack96.lib.graph.Vertex; +import berack96.lib.graph.impl.MapGraph; +import berack96.lib.graph.view.edge.EdgeComponent; +import berack96.lib.graph.view.vertex.VertexComponent; @SuppressWarnings({"unchecked", "deprecation"}) public class GraphPanel extends Component { diff --git a/src/berack96/sim/util/graph/view/GraphWindow.java b/src/berack96/lib/graph/view/GraphWindow.java similarity index 77% rename from src/berack96/sim/util/graph/view/GraphWindow.java rename to src/berack96/lib/graph/view/GraphWindow.java index 8015a3f..efc6f79 100644 --- a/src/berack96/sim/util/graph/view/GraphWindow.java +++ b/src/berack96/lib/graph/view/GraphWindow.java @@ -1,12 +1,16 @@ -package berack96.sim.util.graph.view; +package berack96.lib.graph.view; -import berack96.sim.util.graph.view.edge.EdgeIntListener; -import berack96.sim.util.graph.view.edge.EdgeListener; -import berack96.sim.util.graph.view.edge.EdgeView; -import berack96.sim.util.graph.view.vertex.VertexIntListener; -import berack96.sim.util.graph.view.vertex.VertexListener; -import berack96.sim.util.graph.view.vertex.VertexView; -import berack96.sim.util.graph.visit.*; +import berack96.lib.graph.view.edge.EdgeIntListener; +import berack96.lib.graph.view.edge.EdgeListener; +import berack96.lib.graph.view.edge.EdgeView; +import berack96.lib.graph.view.vertex.VertexIntListener; +import berack96.lib.graph.view.vertex.VertexListener; +import berack96.lib.graph.view.vertex.VertexView; +import berack96.lib.graph.visit.*; +import berack96.lib.graph.visit.impl.BFS; +import berack96.lib.graph.visit.impl.DFS; +import berack96.lib.graph.visit.impl.Dijkstra; +import berack96.lib.graph.visit.impl.Tarjan; import javax.swing.*; import java.awt.*; diff --git a/src/berack96/sim/util/graph/view/GraphicalView.java b/src/berack96/lib/graph/view/GraphicalView.java similarity index 95% rename from src/berack96/sim/util/graph/view/GraphicalView.java rename to src/berack96/lib/graph/view/GraphicalView.java index 6a5061f..a31b71c 100644 --- a/src/berack96/sim/util/graph/view/GraphicalView.java +++ b/src/berack96/lib/graph/view/GraphicalView.java @@ -1,4 +1,4 @@ -package berack96.sim.util.graph.view; +package berack96.lib.graph.view; import java.awt.*; diff --git a/src/berack96/sim/util/graph/view/VisitListener.java b/src/berack96/lib/graph/view/VisitListener.java similarity index 91% rename from src/berack96/sim/util/graph/view/VisitListener.java rename to src/berack96/lib/graph/view/VisitListener.java index 9dd40a3..fb28d7e 100644 --- a/src/berack96/sim/util/graph/view/VisitListener.java +++ b/src/berack96/lib/graph/view/VisitListener.java @@ -1,9 +1,9 @@ -package berack96.sim.util.graph.view; +package berack96.lib.graph.view; -import berack96.sim.util.graph.Graph; -import berack96.sim.util.graph.view.vertex.VertexComponent; -import berack96.sim.util.graph.visit.VisitInfo; -import berack96.sim.util.graph.visit.VisitStrategy; +import berack96.lib.graph.Graph; +import berack96.lib.graph.view.vertex.VertexComponent; +import berack96.lib.graph.visit.VisitStrategy; +import berack96.lib.graph.visit.impl.VisitInfo; import javax.swing.*; import java.awt.event.KeyEvent; diff --git a/src/berack96/sim/util/graph/view/edge/EdgeComponent.java b/src/berack96/lib/graph/view/edge/EdgeComponent.java similarity index 80% rename from src/berack96/sim/util/graph/view/edge/EdgeComponent.java rename to src/berack96/lib/graph/view/edge/EdgeComponent.java index cd52048..a50da8c 100644 --- a/src/berack96/sim/util/graph/view/edge/EdgeComponent.java +++ b/src/berack96/lib/graph/view/edge/EdgeComponent.java @@ -1,7 +1,7 @@ -package berack96.sim.util.graph.view.edge; +package berack96.lib.graph.view.edge; -import berack96.sim.util.graph.Edge; -import berack96.sim.util.graph.view.vertex.VertexComponent; +import berack96.lib.graph.Edge; +import berack96.lib.graph.view.vertex.VertexComponent; import java.awt.*; diff --git a/src/berack96/sim/util/graph/view/edge/EdgeIntListener.java b/src/berack96/lib/graph/view/edge/EdgeIntListener.java similarity index 79% rename from src/berack96/sim/util/graph/view/edge/EdgeIntListener.java rename to src/berack96/lib/graph/view/edge/EdgeIntListener.java index 03c61e1..a2fa3eb 100644 --- a/src/berack96/sim/util/graph/view/edge/EdgeIntListener.java +++ b/src/berack96/lib/graph/view/edge/EdgeIntListener.java @@ -1,7 +1,7 @@ -package berack96.sim.util.graph.view.edge; +package berack96.lib.graph.view.edge; -import berack96.sim.util.graph.Vertex; -import berack96.sim.util.graph.view.GraphPanel; +import berack96.lib.graph.Vertex; +import berack96.lib.graph.view.GraphPanel; public class EdgeIntListener extends EdgeListener { diff --git a/src/berack96/sim/util/graph/view/edge/EdgeListener.java b/src/berack96/lib/graph/view/edge/EdgeListener.java similarity index 93% rename from src/berack96/sim/util/graph/view/edge/EdgeListener.java rename to src/berack96/lib/graph/view/edge/EdgeListener.java index eb7609e..52f5095 100644 --- a/src/berack96/sim/util/graph/view/edge/EdgeListener.java +++ b/src/berack96/lib/graph/view/edge/EdgeListener.java @@ -1,9 +1,9 @@ -package berack96.sim.util.graph.view.edge; +package berack96.lib.graph.view.edge; -import berack96.sim.util.graph.Vertex; -import berack96.sim.util.graph.view.GraphListener; -import berack96.sim.util.graph.view.GraphPanel; -import berack96.sim.util.graph.view.vertex.VertexComponent; +import berack96.lib.graph.Vertex; +import berack96.lib.graph.view.GraphListener; +import berack96.lib.graph.view.GraphPanel; +import berack96.lib.graph.view.vertex.VertexComponent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; diff --git a/src/berack96/sim/util/graph/view/edge/EdgeView.java b/src/berack96/lib/graph/view/edge/EdgeView.java similarity index 97% rename from src/berack96/sim/util/graph/view/edge/EdgeView.java rename to src/berack96/lib/graph/view/edge/EdgeView.java index 0c1fbf0..90135d5 100644 --- a/src/berack96/sim/util/graph/view/edge/EdgeView.java +++ b/src/berack96/lib/graph/view/edge/EdgeView.java @@ -1,12 +1,12 @@ -package berack96.sim.util.graph.view.edge; - -import berack96.sim.util.graph.view.GraphicalView; -import berack96.sim.util.graph.view.stuff.Arrow; +package berack96.lib.graph.view.edge; import java.awt.*; import java.awt.geom.Point2D; import java.util.Collection; +import berack96.lib.graph.view.GraphicalView; +import berack96.lib.graph.view.stuff.Arrow; + public class EdgeView implements GraphicalView> { private static final Font FONT = new Font("Papyrus", Font.BOLD, 14); diff --git a/src/berack96/sim/util/graph/view/stuff/Arrow.java b/src/berack96/lib/graph/view/stuff/Arrow.java similarity index 98% rename from src/berack96/sim/util/graph/view/stuff/Arrow.java rename to src/berack96/lib/graph/view/stuff/Arrow.java index 92b9ab7..c9f337d 100644 --- a/src/berack96/sim/util/graph/view/stuff/Arrow.java +++ b/src/berack96/lib/graph/view/stuff/Arrow.java @@ -1,4 +1,4 @@ -package berack96.sim.util.graph.view.stuff; +package berack96.lib.graph.view.stuff; import java.awt.*; diff --git a/src/berack96/sim/util/graph/view/vertex/VertexComponent.java b/src/berack96/lib/graph/view/vertex/VertexComponent.java similarity index 88% rename from src/berack96/sim/util/graph/view/vertex/VertexComponent.java rename to src/berack96/lib/graph/view/vertex/VertexComponent.java index 96213bd..10195e6 100644 --- a/src/berack96/sim/util/graph/view/vertex/VertexComponent.java +++ b/src/berack96/lib/graph/view/vertex/VertexComponent.java @@ -1,9 +1,9 @@ -package berack96.sim.util.graph.view.vertex; - -import berack96.sim.util.graph.Vertex; +package berack96.lib.graph.view.vertex; import java.awt.*; +import berack96.lib.graph.Vertex; + public class VertexComponent extends Component { private static final long serialVersionUID = 1L; diff --git a/src/berack96/sim/util/graph/view/vertex/VertexIntListener.java b/src/berack96/lib/graph/view/vertex/VertexIntListener.java similarity index 82% rename from src/berack96/sim/util/graph/view/vertex/VertexIntListener.java rename to src/berack96/lib/graph/view/vertex/VertexIntListener.java index 680115e..37d8ee7 100644 --- a/src/berack96/sim/util/graph/view/vertex/VertexIntListener.java +++ b/src/berack96/lib/graph/view/vertex/VertexIntListener.java @@ -1,9 +1,9 @@ -package berack96.sim.util.graph.view.vertex; +package berack96.lib.graph.view.vertex; import java.util.Arrays; -import berack96.sim.util.graph.Graph; -import berack96.sim.util.graph.view.GraphPanel; +import berack96.lib.graph.Graph; +import berack96.lib.graph.view.GraphPanel; public class VertexIntListener extends VertexListener { diff --git a/src/berack96/sim/util/graph/view/vertex/VertexListener.java b/src/berack96/lib/graph/view/vertex/VertexListener.java similarity index 92% rename from src/berack96/sim/util/graph/view/vertex/VertexListener.java rename to src/berack96/lib/graph/view/vertex/VertexListener.java index 9d3fad2..895c555 100644 --- a/src/berack96/sim/util/graph/view/vertex/VertexListener.java +++ b/src/berack96/lib/graph/view/vertex/VertexListener.java @@ -1,8 +1,8 @@ -package berack96.sim.util.graph.view.vertex; +package berack96.lib.graph.view.vertex; -import berack96.sim.util.graph.Graph; -import berack96.sim.util.graph.view.GraphListener; -import berack96.sim.util.graph.view.GraphPanel; +import berack96.lib.graph.Graph; +import berack96.lib.graph.view.GraphListener; +import berack96.lib.graph.view.GraphPanel; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; diff --git a/src/berack96/sim/util/graph/view/vertex/VertexView.java b/src/berack96/lib/graph/view/vertex/VertexView.java similarity index 94% rename from src/berack96/sim/util/graph/view/vertex/VertexView.java rename to src/berack96/lib/graph/view/vertex/VertexView.java index a5b6803..2b6aca0 100644 --- a/src/berack96/sim/util/graph/view/vertex/VertexView.java +++ b/src/berack96/lib/graph/view/vertex/VertexView.java @@ -1,9 +1,9 @@ -package berack96.sim.util.graph.view.vertex; - -import berack96.sim.util.graph.view.GraphicalView; +package berack96.lib.graph.view.vertex; import java.awt.*; +import berack96.lib.graph.view.GraphicalView; + public class VertexView implements GraphicalView> { private static final Font FONT = new Font("Comic Sans MS", Font.BOLD, 17); diff --git a/src/berack96/sim/util/graph/visit/VisitDistSourceDest.java b/src/berack96/lib/graph/visit/VisitDistSourceDest.java similarity index 89% rename from src/berack96/sim/util/graph/visit/VisitDistSourceDest.java rename to src/berack96/lib/graph/visit/VisitDistSourceDest.java index df7a4b4..fb1dccd 100644 --- a/src/berack96/sim/util/graph/visit/VisitDistSourceDest.java +++ b/src/berack96/lib/graph/visit/VisitDistSourceDest.java @@ -1,10 +1,10 @@ -package berack96.sim.util.graph.visit; - -import berack96.sim.util.graph.Edge; -import berack96.sim.util.graph.Graph; +package berack96.lib.graph.visit; import java.util.List; +import berack96.lib.graph.Edge; +import berack96.lib.graph.Graph; + /** * Interface that is helpful for implements visit that needs to retrieve the distance between a vertex to all the others * diff --git a/src/berack96/sim/util/graph/visit/VisitDistance.java b/src/berack96/lib/graph/visit/VisitDistance.java similarity index 93% rename from src/berack96/sim/util/graph/visit/VisitDistance.java rename to src/berack96/lib/graph/visit/VisitDistance.java index 02eff96..0a690a9 100644 --- a/src/berack96/sim/util/graph/visit/VisitDistance.java +++ b/src/berack96/lib/graph/visit/VisitDistance.java @@ -1,10 +1,10 @@ -package berack96.sim.util.graph.visit; - -import berack96.sim.util.graph.Edge; +package berack96.lib.graph.visit; import java.util.List; import java.util.Map; +import berack96.lib.graph.Edge; + /** * Interface that is helpful for implements visit that needs to retrieve the distance between a vertex to all the others * diff --git a/src/berack96/sim/util/graph/visit/VisitSCC.java b/src/berack96/lib/graph/visit/VisitSCC.java similarity index 92% rename from src/berack96/sim/util/graph/visit/VisitSCC.java rename to src/berack96/lib/graph/visit/VisitSCC.java index 0579049..fbcfccc 100644 --- a/src/berack96/sim/util/graph/visit/VisitSCC.java +++ b/src/berack96/lib/graph/visit/VisitSCC.java @@ -1,4 +1,4 @@ -package berack96.sim.util.graph.visit; +package berack96.lib.graph.visit; import java.util.Collection; diff --git a/src/berack96/sim/util/graph/visit/VisitStrategy.java b/src/berack96/lib/graph/visit/VisitStrategy.java similarity index 90% rename from src/berack96/sim/util/graph/visit/VisitStrategy.java rename to src/berack96/lib/graph/visit/VisitStrategy.java index abde231..22f9c2b 100644 --- a/src/berack96/sim/util/graph/visit/VisitStrategy.java +++ b/src/berack96/lib/graph/visit/VisitStrategy.java @@ -1,9 +1,10 @@ -package berack96.sim.util.graph.visit; - -import berack96.sim.util.graph.Graph; +package berack96.lib.graph.visit; import java.util.function.Consumer; +import berack96.lib.graph.Graph; +import berack96.lib.graph.visit.impl.VisitInfo; + /** * This class is used for define some strategy for the visit of a graph. * diff --git a/src/berack96/sim/util/graph/visit/VisitTopological.java b/src/berack96/lib/graph/visit/VisitTopological.java similarity index 94% rename from src/berack96/sim/util/graph/visit/VisitTopological.java rename to src/berack96/lib/graph/visit/VisitTopological.java index 978b41c..2ece307 100644 --- a/src/berack96/sim/util/graph/visit/VisitTopological.java +++ b/src/berack96/lib/graph/visit/VisitTopological.java @@ -1,4 +1,4 @@ -package berack96.sim.util.graph.visit; +package berack96.lib.graph.visit; import java.util.List; diff --git a/src/berack96/sim/util/graph/visit/BFS.java b/src/berack96/lib/graph/visit/impl/BFS.java similarity index 91% rename from src/berack96/sim/util/graph/visit/BFS.java rename to src/berack96/lib/graph/visit/impl/BFS.java index 39048b1..c11db04 100644 --- a/src/berack96/sim/util/graph/visit/BFS.java +++ b/src/berack96/lib/graph/visit/impl/BFS.java @@ -1,10 +1,11 @@ -package berack96.sim.util.graph.visit; - -import berack96.sim.util.graph.Graph; +package berack96.lib.graph.visit.impl; import java.util.LinkedList; import java.util.function.Consumer; +import berack96.lib.graph.Graph; +import berack96.lib.graph.visit.VisitStrategy; + /** * Breadth-first search
* The algorithm starts at the root node and explores all of the neighbor nodes at the present depth prior to moving on to the nodes at the next depth level. diff --git a/src/berack96/sim/util/graph/visit/DFS.java b/src/berack96/lib/graph/visit/impl/DFS.java similarity index 92% rename from src/berack96/sim/util/graph/visit/DFS.java rename to src/berack96/lib/graph/visit/impl/DFS.java index 35c6274..14586c1 100644 --- a/src/berack96/sim/util/graph/visit/DFS.java +++ b/src/berack96/lib/graph/visit/impl/DFS.java @@ -1,11 +1,12 @@ -package berack96.sim.util.graph.visit; - -import berack96.sim.util.graph.Graph; +package berack96.lib.graph.visit.impl; import java.util.Iterator; import java.util.Stack; import java.util.function.Consumer; +import berack96.lib.graph.Graph; +import berack96.lib.graph.visit.VisitStrategy; + /** * Depth-first search
* The algorithm starts at the root node and explores as far as possible along each branch before backtracking. diff --git a/src/berack96/sim/util/graph/visit/Dijkstra.java b/src/berack96/lib/graph/visit/impl/Dijkstra.java similarity index 95% rename from src/berack96/sim/util/graph/visit/Dijkstra.java rename to src/berack96/lib/graph/visit/impl/Dijkstra.java index ced62d1..97bd084 100644 --- a/src/berack96/sim/util/graph/visit/Dijkstra.java +++ b/src/berack96/lib/graph/visit/impl/Dijkstra.java @@ -1,11 +1,12 @@ -package berack96.sim.util.graph.visit; - -import berack96.sim.util.graph.Edge; -import berack96.sim.util.graph.Graph; +package berack96.lib.graph.visit.impl; import java.util.*; import java.util.function.Consumer; +import berack96.lib.graph.Edge; +import berack96.lib.graph.Graph; +import berack96.lib.graph.visit.VisitDistance; + /** * Class that implements the Dijkstra algorithm and uses it for getting all the distance from a source * diff --git a/src/berack96/sim/util/graph/visit/Tarjan.java b/src/berack96/lib/graph/visit/impl/Tarjan.java similarity index 95% rename from src/berack96/sim/util/graph/visit/Tarjan.java rename to src/berack96/lib/graph/visit/impl/Tarjan.java index ef8c428..c9960b8 100644 --- a/src/berack96/sim/util/graph/visit/Tarjan.java +++ b/src/berack96/lib/graph/visit/impl/Tarjan.java @@ -1,10 +1,12 @@ -package berack96.sim.util.graph.visit; - -import berack96.sim.util.graph.Graph; +package berack96.lib.graph.visit.impl; import java.util.*; import java.util.function.Consumer; +import berack96.lib.graph.Graph; +import berack96.lib.graph.visit.VisitSCC; +import berack96.lib.graph.visit.VisitTopological; + /** * Class that implements the Tarjan algorithm and uses it for getting the SCC and the topological sort * diff --git a/src/berack96/sim/util/graph/visit/VisitInfo.java b/src/berack96/lib/graph/visit/impl/VisitInfo.java similarity index 99% rename from src/berack96/sim/util/graph/visit/VisitInfo.java rename to src/berack96/lib/graph/visit/impl/VisitInfo.java index b919748..5fa189f 100644 --- a/src/berack96/sim/util/graph/visit/VisitInfo.java +++ b/src/berack96/lib/graph/visit/impl/VisitInfo.java @@ -1,8 +1,10 @@ -package berack96.sim.util.graph.visit; +package berack96.lib.graph.visit.impl; import java.util.*; import java.util.function.Consumer; +import berack96.lib.graph.visit.VisitStrategy; + /** * The class used for getting the info of the visit.
* It could be used with the algorithm of the visit for set some useful data. diff --git a/test/berack96/test/sim/TestGraph.java b/test/berack96/test/lib/TestGraph.java similarity index 98% rename from test/berack96/test/sim/TestGraph.java rename to test/berack96/test/lib/TestGraph.java index aaef118..7795dea 100644 --- a/test/berack96/test/sim/TestGraph.java +++ b/test/berack96/test/lib/TestGraph.java @@ -1,4 +1,4 @@ -package berack96.test.sim; +package berack96.test.lib; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -27,17 +27,20 @@ import org.junit.Test; import com.google.gson.JsonSyntaxException; -import berack96.sim.util.graph.Edge; -import berack96.sim.util.graph.Graph; -import berack96.sim.util.graph.MapGraph; -import berack96.sim.util.graph.Vertex; -import berack96.sim.util.graph.visit.BFS; -import berack96.sim.util.graph.visit.DFS; -import berack96.sim.util.graph.visit.VisitInfo; +import berack96.lib.graph.Edge; +import berack96.lib.graph.Graph; +import berack96.lib.graph.Vertex; +import berack96.lib.graph.impl.AdjGraph; +import berack96.lib.graph.impl.MapGraph; +import berack96.lib.graph.impl.MatrixGraph; +import berack96.lib.graph.visit.impl.BFS; +import berack96.lib.graph.visit.impl.DFS; +import berack96.lib.graph.visit.impl.VisitInfo; @SuppressWarnings("deprecation") public class TestGraph { + /* We only try this for sake of simplicity */ private Graph graph; private final ByteArrayOutputStream bytes = new ByteArrayOutputStream(); @@ -52,6 +55,8 @@ public class TestGraph { public void before() { // Change here the instance for changing all the test for that particular class graph = new MapGraph<>(); +// graph = new MatrixGraph<>(); +// graph = new AdjGraph<>(); PrintStream p = null; try { @@ -557,6 +562,14 @@ public class TestGraph { graph.addEdge("8", "7", 8); Set vertices = new HashSet<>(); + + Iterator iter = graph.iterator(); + assertTrue("This should not be null!", iter != null); + while (iter.hasNext()) + vertices.add(iter.next()); + shouldContain(vertices, "1", "2", "3", "4", "5", "6", "7", "8"); + vertices.clear(); + for (String vertex : graph) vertices.add(vertex); shouldContain(vertices, "1", "2", "3", "4", "5", "6", "7", "8"); @@ -564,13 +577,6 @@ public class TestGraph { vertices.clear(); graph.forEach(vertices::add); shouldContain(vertices, "1", "2", "3", "4", "5", "6", "7", "8"); - - vertices.clear(); - Iterator iter = graph.iterator(); - while (iter.hasNext()) - vertices.add(iter.next()); - - shouldContain(vertices, "1", "2", "3", "4", "5", "6", "7", "8"); } @Test @@ -746,6 +752,7 @@ public class TestGraph { graph.addEdge("7", "8", 8); Graph transposed = graph.transpose(); + assertTrue("This should not be null!", transposed != null); DFS dfs = new DFS<>(); VisitInfo visitDFS = transposed.visit("6", dfs, null); @@ -838,6 +845,7 @@ public class TestGraph { graph.addEdge("7", "8", 8); List> distance = graph.distance("1", "6"); + assertTrue("This should not be null!", distance != null); int sum = distance.stream().mapToInt(Edge::getWeight).sum(); assertEquals(13, sum); shouldContainInOrder(distance, @@ -897,6 +905,7 @@ public class TestGraph { graph.addEdge("7", "8", 8); Map>> distance = graph.distance("1"); + assertTrue("This should not be null!", distance != null); assertNull(distance.get("1")); shouldContainInOrder(distance.get("2"), new Edge<>("1", "2", 1)); @@ -1112,6 +1121,7 @@ public class TestGraph { graph.mark("4", "z"); Graph sub = graph.subGraph("1", -541); + assertTrue("This should not be null!", sub != null); shouldContain(sub.vertices(), "1"); shouldContain(sub.edges()); @@ -1425,6 +1435,7 @@ public class TestGraph { private void shouldContain(Collection actual, Object... expected) { + assertTrue("You should pass me a collection!", actual != null); assertEquals("They have not the same number of elements\nActual: " + actual, expected.length, actual.size()); for (Object obj : expected) @@ -1432,6 +1443,7 @@ public class TestGraph { } private void shouldContainInOrder(List actual, Object... expected) { + assertTrue("You should pass me a list!", actual != null); assertEquals("They have not the same number of elements\nActual: " + actual, expected.length, actual.size()); for (int i = 0; i < actual.size(); i++)