[Top][All Lists]
[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)