Lines Matching refs:self
8 def _test_graph(self, graph, expected):
18 self.assertEqual(list(static_order_with_groups(ts)), list(expected))
27 self.assertEqual(set(group), tsgroup)
29 def _assert_cycle(self, graph, cycle):
37 self.assertIn(" ".join(map(str, cycle)), " ".join(map(str, seq * 2)))
41 def test_simple_cases(self):
42 self._test_graph(
47 self._test_graph({1: {}}, [(1,)])
49 self._test_graph(
53 self._test_graph(
58 self._test_graph(
74 self._test_graph({0: [1, 2], 1: [], 2: [3], 3: []}, [(1, 3), (2,), (0,)])
76 self._test_graph(
81 def test_no_dependencies(self):
82 self._test_graph({1: {2}, 3: {4}, 5: {6}}, [(2, 4, 6), (1, 3, 5)])
84 self._test_graph({1: set(), 3: set(), 5: set()}, [(1, 3, 5)])
86 def test_the_node_multiple_times(self):
88 self._test_graph({1: {2}, 3: {4}, 0: [2, 4, 4, 4, 4, 4]}, [(2, 4), (0, 1, 3)])
95 self.assertEqual([*ts.static_order()], [2, 1])
97 def test_graph_with_iterables(self):
100 self.assertEqual(list(ts.static_order()), [1, 3, 5, 7, 9, 0])
102 def test_add_dependencies_for_same_node_incrementally(self):
111 self.assertEqual([*ts.static_order()], [*ts2.static_order()])
113 def test_empty(self):
114 self._test_graph({}, [])
116 def test_cycle(self):
118 self._assert_cycle({1: {1}}, [1, 1])
120 self._assert_cycle({1: {2}, 2: {1}}, [1, 2, 1])
122 self._assert_cycle({1: {2}, 2: {3}, 3: {1}}, [1, 3, 2, 1])
124 self._assert_cycle({1: {2}, 2: {3}, 3: {1}, 5: {4}, 4: {6}}, [1, 3, 2, 1])
126 self._assert_cycle({1: {2}, 2: {1}, 3: {4}, 4: {5}, 6: {7}, 7: {6}}, [1, 2, 1])
128 self._assert_cycle({1: {2}, 2: {3}, 3: {2, 4}, 4: {5}}, [3, 2])
130 def test_calls_before_prepare(self):
133 with self.assertRaisesRegex(ValueError, r"prepare\(\) must be called first"):
135 with self.assertRaisesRegex(ValueError, r"prepare\(\) must be called first"):
137 with self.assertRaisesRegex(ValueError, r"prepare\(\) must be called first"):
140 def test_prepare_multiple_times(self):
143 with self.assertRaisesRegex(ValueError, r"cannot prepare\(\) more than once"):
146 def test_invalid_nodes_in_done(self):
153 with self.assertRaisesRegex(ValueError, "node 2 was not passed out"):
155 with self.assertRaisesRegex(ValueError, r"node 24 was not added using add\(\)"):
158 def test_done(self):
164 self.assertEqual(ts.get_ready(), (3, 4))
166 self.assertEqual(ts.get_ready(), ())
169 self.assertEqual(ts.get_ready(), (2,))
170 self.assertEqual(ts.get_ready(), ())
174 self.assertEqual(ts.get_ready(), (1,))
175 self.assertEqual(ts.get_ready(), ())
177 self.assertEqual(ts.get_ready(), ())
178 self.assertFalse(ts.is_active())
180 def test_is_active(self):
185 self.assertTrue(ts.is_active())
186 self.assertEqual(ts.get_ready(), (2,))
187 self.assertTrue(ts.is_active())
189 self.assertTrue(ts.is_active())
190 self.assertEqual(ts.get_ready(), (1,))
191 self.assertTrue(ts.is_active())
193 self.assertFalse(ts.is_active())
195 def test_not_hashable_nodes(self):
197 self.assertRaises(TypeError, ts.add, dict(), 1)
198 self.assertRaises(TypeError, ts.add, 1, dict())
199 self.assertRaises(TypeError, ts.add, dict(), dict())
201 def test_order_of_insertion_does_not_matter_between_groups(self):
223 self.assertEqual(list(get_groups(ts)), list(get_groups(ts2)))
225 def test_static_order_does_not_change_with_the_hash_seed(self):
247 self.assertNotEqual(run1, "")
248 self.assertNotEqual(run2, "")
249 self.assertEqual(run1, run2)