fenfire-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ff-cvs] fenfire/org/fenfire/util/lava Traversals.java T...


From: Tuukka Hastrup
Subject: [ff-cvs] fenfire/org/fenfire/util/lava Traversals.java T...
Date: Sat, 16 Aug 2003 07:45:39 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Tuukka Hastrup <address@hidden> 03/08/16 07:45:39

Modified files:
        org/fenfire/util/lava: Traversals.java Traversals.test 

Log message:
        caller gives start nodes to getComponents

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/lava/Traversals.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/lava/Traversals.test.diff?tr1=1.2&tr2=1.3&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/util/lava/Traversals.java
diff -u fenfire/org/fenfire/util/lava/Traversals.java:1.3 
fenfire/org/fenfire/util/lava/Traversals.java:1.4
--- fenfire/org/fenfire/util/lava/Traversals.java:1.3   Fri Aug 15 20:11:30 2003
+++ fenfire/org/fenfire/util/lava/Traversals.java       Sat Aug 16 07:45:38 2003
@@ -113,14 +113,14 @@
        }
     }
 
-    /** Finds components disconnected along a given non-directed property, 
+    /** From given nodes, finds components disconnected along a given 
+     *  non-directed property, 
      *  and for each component returns the node of highest degree as a 
      *  representative.
      *  @return set of representatives, one for each component
      */
-    public static Set findComponents(Object property, ConstGraph g) {
-       // XXX "Iterator nodes" could be a parameter
-       Iterator nodes = g.findN_XAA_Iter(); // FIXME doesn't find objects
+    public static Set findComponents(Iterator nodes, Object property, 
+                                    ConstGraph g) {
        Set visited = new HashSet();
        Set components = new HashSet();
        while(nodes.hasNext()) {
Index: fenfire/org/fenfire/util/lava/Traversals.test
diff -u fenfire/org/fenfire/util/lava/Traversals.test:1.2 
fenfire/org/fenfire/util/lava/Traversals.test:1.3
--- fenfire/org/fenfire/util/lava/Traversals.test:1.2   Fri Aug 15 20:11:30 2003
+++ fenfire/org/fenfire/util/lava/Traversals.test       Sat Aug 16 07:45:39 2003
@@ -52,6 +52,9 @@
 
 
 def testfindComponents():
+    def getNodes(fen):
+        return fen.constgraph.findN_XAA_Iter() # not realistic!
+
     fen = ff.test.fen.newFen()
     p = ff.swamp.Nodes.N()
     q = ff.swamp.Nodes.N()
@@ -65,27 +68,22 @@
     fen.graph.add(a,q,b)
     fen.graph.add(c,q,d)
 
-    ## no XAA problem if all nodes are subjects
-    # fen.graph.add(b,q,c)
-    # fen.graph.add(d,q,a)
-
-    result = Traversals.findComponents(p, fen.constgraph)
-    nodes = fen.constgraph.findN_XAA_Iter()
-    print "XAA doesn't find objects:"
-    while nodes.hasNext():
-        print nodes.next()
-    print result
+    # no XAA problem in getNodes if all nodes are subjects
+    fen.graph.add(b,q,c)
+    fen.graph.add(d,q,a)
+
+    result = Traversals.findComponents(getNodes(fen), p, fen.constgraph)
     for x in a, b, c, d:          # all single nodes are components
         assert result.contains(x)
 
     fen.graph.add(a,p,b)
 
-    result = Traversals.findComponents(p, fen.constgraph)
+    result = Traversals.findComponents(getNodes(fen), p, fen.constgraph)
     assert result.contains(a) != result.contains(b) # Either is representative
 
     fen.graph.add(a,p,c)
 
-    result = Traversals.findComponents(p, fen.constgraph)
+    result = Traversals.findComponents(getNodes(fen), p, fen.constgraph)
     assert result.contains(a)     # a has higher degree than b or c
     assert not result.contains(b)
     assert not result.contains(c)
@@ -93,7 +91,7 @@
     fen.graph.add(c,p,b)
     fen.graph.add(d,p,b)
 
-    result = Traversals.findComponents(p, fen.constgraph)
+    result = Traversals.findComponents(getNodes(fen), p, fen.constgraph)
     assert result.contains(b)         # b has highest degree
     for x in a, c, d:
         assert not result.contains(x)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]