mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
Refs #30179 -- Moved topological sort functions to django.utils.
This commit is contained in:
parent
50f09264ae
commit
e04209e181
3 changed files with 30 additions and 3 deletions
24
tests/utils_tests/test_topological_sort.py
Normal file
24
tests/utils_tests/test_topological_sort.py
Normal file
|
@ -0,0 +1,24 @@
|
|||
from django.test import SimpleTestCase
|
||||
from django.utils.topological_sort import (
|
||||
CyclicDependencyError, stable_topological_sort, topological_sort_as_sets,
|
||||
)
|
||||
|
||||
|
||||
class TopologicalSortTests(SimpleTestCase):
|
||||
|
||||
def test_basic(self):
|
||||
dependency_graph = {
|
||||
1: {2, 3},
|
||||
2: set(),
|
||||
3: set(),
|
||||
4: {5, 6},
|
||||
5: set(),
|
||||
6: {5},
|
||||
}
|
||||
self.assertEqual(list(topological_sort_as_sets(dependency_graph)), [{2, 3, 5}, {1, 6}, {4}])
|
||||
self.assertEqual(stable_topological_sort([1, 2, 3, 4, 5, 6], dependency_graph), [2, 3, 5, 1, 6, 4])
|
||||
|
||||
def test_cyclic_dependency(self):
|
||||
msg = 'Cyclic dependency in graph: (1, {2}), (2, {1})'
|
||||
with self.assertRaisesMessage(CyclicDependencyError, msg):
|
||||
list(topological_sort_as_sets({1: {2}, 2: {1}}))
|
Loading…
Add table
Add a link
Reference in a new issue