Lines Matching +full:ts +full:- +full:node
9 def static_order_with_groups(ts): argument
10 ts.prepare()
11 while ts.is_active():
12 nodes = ts.get_ready()
13 for node in nodes:
14 ts.done(node)
17 ts = graphlib.TopologicalSorter(graph)
18 self.assertEqual(list(static_order_with_groups(ts)), list(expected))
20 ts = graphlib.TopologicalSorter(graph)
21 # need to be a bit careful comparing the result of ts.static_order and
24 it = iter(ts.static_order())
30 ts = graphlib.TopologicalSorter()
31 for node, dependson in graph.items():
32 ts.add(node, *dependson)
34 ts.prepare()
50 {x: {x + 1} for x in range(10)}, [(x,) for x in range(10, -1, -1)]
87 # Test same node multiple times in dependencies
91 ts = graphlib.TopologicalSorter()
92 ts.add(1, 2)
93 ts.add(1, 2)
94 ts.add(1, 2)
95 self.assertEqual([*ts.static_order()], [2, 1])
99 ts = graphlib.TopologicalSorter({0: dependson})
100 self.assertEqual(list(ts.static_order()), [1, 3, 5, 7, 9, 0])
103 # Test same node multiple times
104 ts = graphlib.TopologicalSorter()
105 ts.add(1, 2)
106 ts.add(1, 3)
107 ts.add(1, 4)
108 ts.add(1, 5)
111 self.assertEqual([*ts.static_order()], [*ts2.static_order()])
131 ts = graphlib.TopologicalSorter()
134 ts.get_ready()
136 ts.done(3)
138 ts.is_active()
141 ts = graphlib.TopologicalSorter()
142 ts.prepare()
144 ts.prepare()
147 ts = graphlib.TopologicalSorter()
148 ts.add(1, 2, 3, 4)
149 ts.add(2, 3, 4)
150 ts.prepare()
151 ts.get_ready()
153 with self.assertRaisesRegex(ValueError, "node 2 was not passed out"):
154 ts.done(2)
155 with self.assertRaisesRegex(ValueError, r"node 24 was not added using add\(\)"):
156 ts.done(24)
159 ts = graphlib.TopologicalSorter()
160 ts.add(1, 2, 3, 4)
161 ts.add(2, 3)
162 ts.prepare()
164 self.assertEqual(ts.get_ready(), (3, 4))
166 self.assertEqual(ts.get_ready(), ())
167 ts.done(3)
169 self.assertEqual(ts.get_ready(), (2,))
170 self.assertEqual(ts.get_ready(), ())
171 ts.done(4)
172 ts.done(2)
174 self.assertEqual(ts.get_ready(), (1,))
175 self.assertEqual(ts.get_ready(), ())
176 ts.done(1)
177 self.assertEqual(ts.get_ready(), ())
178 self.assertFalse(ts.is_active())
181 ts = graphlib.TopologicalSorter()
182 ts.add(1, 2)
183 ts.prepare()
185 self.assertTrue(ts.is_active())
186 self.assertEqual(ts.get_ready(), (2,))
187 self.assertTrue(ts.is_active())
188 ts.done(2)
189 self.assertTrue(ts.is_active())
190 self.assertEqual(ts.get_ready(), (1,))
191 self.assertTrue(ts.is_active())
192 ts.done(1)
193 self.assertFalse(ts.is_active())
196 ts = graphlib.TopologicalSorter()
197 self.assertRaises(TypeError, ts.add, dict(), 1)
198 self.assertRaises(TypeError, ts.add, 1, dict())
199 self.assertRaises(TypeError, ts.add, dict(), dict())
202 def get_groups(ts): argument
203 ts.prepare()
204 while ts.is_active():
205 nodes = ts.get_ready()
206 ts.done(*nodes)
209 ts = graphlib.TopologicalSorter()
210 ts.add(3, 2, 1)
211 ts.add(1, 0)
212 ts.add(4, 5)
213 ts.add(6, 7)
214 ts.add(4, 7)
223 self.assertEqual(list(get_groups(ts)), list(get_groups(ts2)))
229 ts = graphlib.TopologicalSorter()
230 ts.add('blech', 'bluch', 'hola')
231 ts.add('abcd', 'blech', 'bluch', 'a', 'b')
232 ts.add('a', 'a string', 'something', 'b')
233 ts.add('bluch', 'hola', 'abcde', 'a', 'b')
234 print(list(ts.static_order()))
241 out = assert_python_ok("-c", code, **env)