简单有向无环图,带cicle检测器和拓扑排序工具。
py_sdag2的Python项目详细描述
#python简单有向无环图的python简单有向无环图具有cicle检测器和拓扑排序工具。
tsort.py
从标准输入:
``bash
echo-e'c a\na b\nb d\nc d'tsort.py
````
>来自另一个文件的源:
``bash
echo-e'c a\na b\nb d\nc d'>;TICS.BR/>‘BRH/BR/> T.T.BR/>‘BR/>< BR> > BASH
TSOR.PY-帮助< BR/>用法:To.pY[Oft] [文件[OutOxFiel] ]
BR/>选项:
-H,帮助显示此帮助消息,并退出
F文件,文件=文件,无文件,或文件为,真读取标准输入。
-o out_file,--out file=out_file
将结果写入out_file,默认为标准输出。
-s sep,--sep=sep
items separator,默认为regex。
-q quit_seq,--quit sequence=quit_seq
停止读取文件,其中第行等于quit_seq,默认值为
:quit。
`````
````tests
``tests
``python
import unittest
from sdag2 import dag,循环检测异常
class dagtest(unittest.testcase):
def test_simple(self):
'
按以下顺序测试垂直设备:
'
dag=dag()
a=dag.add(“a”)
b=dag.add(“b”)
c=dag.add(“c”)
d=dag.add(“d”)
dag.add_edge(c,a)
dag.add_edge(a,b)
dag.add_edge(b,d)
dag.add_edge(c,d)
rs=dag.topologicaly()
self.asserttrue(rs.index(“c”)<;rs.index(“a”))
self.asserttrue(rs.index(“a”)<;rs.index(“b”))
self.asserttrue(rs.index(“b”)<;rs.index(“d”)
self.asserttrue(rs.index(“c”)<;rs.index(“d”))
def test_cicle_detect(self):
'
按以下顺序测试垂直设备:
'
>dag=dag=dag()
>a=dag.a d d(“a”)
>b=dag.add(“b”)
>c=dag.add(“c”)
>d=dag.add(“d”)
>dag.add边缘(c,a)
>dag.add边缘(a,b)
>dag.add边缘(b,d)
>dag.add边缘(c,d)
>
>
#在a-->;c-->;a
dag处添加cicle。添加边缘(a,c)
引发异常(“未检测到循环”)
除了循环检测异常:pass
def main():
unittest.main()
```
tsort.py
从标准输入:
``bash
echo-e'c a\na b\nb d\nc d'tsort.py
````
>来自另一个文件的源:
``bash
echo-e'c a\na b\nb d\nc d'>;TICS.BR/>‘BRH/BR/> T.T.BR/>‘BR/>< BR> > BASH
TSOR.PY-帮助< BR/>用法:To.pY[Oft] [文件[OutOxFiel] ]
BR/>选项:
-H,帮助显示此帮助消息,并退出
F文件,文件=文件,无文件,或文件为,真读取标准输入。
-o out_file,--out file=out_file
将结果写入out_file,默认为标准输出。
-s sep,--sep=sep
items separator,默认为regex。
-q quit_seq,--quit sequence=quit_seq
停止读取文件,其中第行等于quit_seq,默认值为
:quit。
`````
````tests
``tests
``python
import unittest
from sdag2 import dag,循环检测异常
class dagtest(unittest.testcase):
def test_simple(self):
'
按以下顺序测试垂直设备:
dag=dag()
a=dag.add(“a”)
b=dag.add(“b”)
c=dag.add(“c”)
d=dag.add(“d”)
dag.add_edge(c,a)
dag.add_edge(a,b)
dag.add_edge(b,d)
dag.add_edge(c,d)
rs=dag.topologicaly()
self.asserttrue(rs.index(“c”)<;rs.index(“a”))
self.asserttrue(rs.index(“a”)<;rs.index(“b”))
self.asserttrue(rs.index(“b”)<;rs.index(“d”)
self.asserttrue(rs.index(“c”)<;rs.index(“d”))
def test_cicle_detect(self):
'
按以下顺序测试垂直设备:
>dag=dag=dag()
>a=dag.a d d(“a”)
>b=dag.add(“b”)
>c=dag.add(“c”)
>d=dag.add(“d”)
>dag.add边缘(c,a)
>dag.add边缘(a,b)
>dag.add边缘(b,d)
>dag.add边缘(c,d)
>
>
#在a-->;c-->;a
dag处添加cicle。添加边缘(a,c)
引发异常(“未检测到循环”)
除了循环检测异常:pass
def main():
unittest.main()
```