Removed InterfaceRestriction. Now introduced a friendlier API in
[utils] / system / general / src / test / java / org / wamblee / system / graph / GraphTest.java
index 305765f90670da4abb60d599083d5f62bba6edbf..7a5a87971204255aa1c945af36b5b972fc826a04 100644 (file)
@@ -99,6 +99,32 @@ public class GraphTest extends TestCase {
         assertEquals(12, edges.size()); // 2 outgoing and 2 incoming nodes.
     }
     
+    public void testApplyFilter() { 
+        Graph graph = new Graph(); 
+        graph.addNode(new DefaultNode("x"));
+        graph.addNode(new DefaultNode("y"));
+        graph.addNode(new DefaultNode("z"));
+        graph.addEdge(new DefaultEdge(graph.findNode("x"), graph.findNode("y")));
+        graph.addEdge(new DefaultEdge(graph.findNode("y"), graph.findNode("z")));
+        graph.addEdge(new DefaultEdge(graph.findNode("z"), graph.findNode("x")));
+        
+        assertEquals(3, graph.getEdges().size());
+        
+        graph.applyFilter(new EdgeFilter() { 
+            @Override
+            public boolean isViolated(Edge aEdge) {
+                if (aEdge.getFrom().getName().equals("x")) { 
+                    return false; 
+                }
+                return true; 
+            }
+        }); 
+        
+        assertEquals(1, graph.getEdges().size());
+        assertEquals("x", graph.getEdges().get(0).getFrom().getName());
+           
+    }
+    
     public void testFindIncomingOutgoing() { 
         Graph graph = new Graph();
         Node x = new DefaultNode("x");