/[fenfire]/fenfire/org/fenfire/swamp/observablegraphtest.py
ViewVC logotype

Diff of /fenfire/org/fenfire/swamp/observablegraphtest.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by tjl, Mon Apr 14 12:21:20 2003 UTC revision 1.3 by tjl, Thu Apr 24 12:05:30 2003 UTC
# Line 1  Line 1 
1  # Tests which all ObservableGraph implementations must pass  # Tests which all ObservableGraph implementations must pass
2    
3    from __future__ import nested_scopes
4    
5  import org  import org
6  from org.fenfire.swamp import Nodes  from org.fenfire.swamp import Nodes, NodeFunction, CachedNodeFunction
7    
8  _uriMaker = org.fenfire.util.URN5Namespace()  _uriMaker = org.fenfire.util.URN5Namespace()
9  _node = [Nodes.get(_uriMaker.generateId()) for i in range(0,20)]  _node = [Nodes.get(_uriMaker.generateId()) for i in range(0,20)]
# Line 53  def test_ObservableGraph_ObsOnce(): Line 55  def test_ObservableGraph_ObsOnce():
55      assert o1.t == 2      assert o1.t == 2
56      assert o2.t == 2      assert o2.t == 2
57    
58    def test_ObservableGraph_Func():
59        node = _node
60        class Func(NodeFunction):
61            def f(self, g, x):
62                self.calls += 1
63                literal = g.find1_11X(x, node[0])
64                print "F: Got literal",literal
65                if literal == None: return None
66                return literal.getTextString()
67            
68        of = Func()
69        of.calls = 0
70        cf = CachedNodeFunction(3, graph, of)
71    
72        def doit(f):
73            print "F now:",f
74            assert f.f(graph, node[1]) == None
75            assert f.f(graph, node[2]) == None
76            assert f.f(graph, node[3]) == None
77            assert f.f(graph, node[4]) == None
78    
79            graph.set1_11X(node[4], node[0], Nodes.getStringLiteral("X"))
80    
81            assert f.f(graph, node[4]) == "X"
82            assert f.f(graph, node[1]) == None
83    
84            graph.set1_11X(node[4], node[0], Nodes.getStringLiteral("Y"))
85            graph.set1_11X(node[1], node[0], Nodes.getStringLiteral("Z"))
86            graph.set1_11X(node[3], node[0], Nodes.getStringLiteral("Q"))
87    
88            assert f.f(graph, node[4]) == "Y"
89            assert f.f(graph, node[1]) == "Z"
90            assert f.f(graph, node[2]) == None
91            assert f.f(graph, node[3]) == "Q"
92    
93            graph.rm_11A(node[3], node[0])
94    
95            assert f.f(graph, node[4]) == "Y"
96            assert f.f(graph, node[1]) == "Z"
97            assert f.f(graph, node[2]) == None
98            assert f.f(graph, node[3]) == None
99    
100            graph.rm_11A(node[4], node[0])
101            graph.rm_11A(node[1], node[0])
102    
103            assert f.f(graph, node[1]) == None
104            assert f.f(graph, node[2]) == None
105            assert f.f(graph, node[3]) == None
106            assert f.f(graph, node[4]) == None
107    
108        doit(of)
109        assert of.calls == 18
110        of.calls = 0
111        doit(cf)
112        assert of.calls < 16
113    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26