Passed
Push — master ( 46e155...98f158 )
by Xianshun
01:20
created

create_flow_network()   A

Complexity

Conditions 1

Size

Total Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 19
rs 9.4285
1
from pyalgs.data_structures.graphs.graph import Graph, Digraph, EdgeWeightedGraph, Edge, EdgeWeightedGraph, \
2
    DirectedEdgeWeightedGraph, FlowNetwork, FlowEdge
3
4
5
def create_graph():
6
    g = Graph(6)
7
    g.add_edge(0, 5)
8
    g.add_edge(2, 4)
9
    g.add_edge(2, 3)
10
    g.add_edge(1, 2)
11
    g.add_edge(0, 1)
12
    g.add_edge(3, 4)
13
    g.add_edge(3, 5)
14
    g.add_edge(0, 2)
15
16
    return g
17
18
19
def create_graph_4_connected_components():
20
    g = Graph(13)
21
    g.add_edge(0, 5)
22
    g.add_edge(4, 3)
23
    g.add_edge(0, 1)
24
    g.add_edge(9, 12)
25
    g.add_edge(6, 4)
26
    g.add_edge(5, 4)
27
    g.add_edge(0, 2)
28
    g.add_edge(11, 12)
29
    g.add_edge(9, 10)
30
    g.add_edge(0, 6)
31
    g.add_edge(7, 8)
32
    g.add_edge(9, 11)
33
    g.add_edge(5, 3)
34
    return g
35
36
37 View Code Duplication
def create_digraph():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
38
    g = Digraph(13)
39
    g.add_edge(4, 2)
40
    g.add_edge(2, 3)
41
    g.add_edge(3, 2)
42
    g.add_edge(6, 0)
43
    g.add_edge(0, 1)
44
    g.add_edge(2, 0)
45
    g.add_edge(11, 12)
46
    g.add_edge(12, 9)
47
    g.add_edge(9, 10)
48
    g.add_edge(9, 11)
49
    g.add_edge(7, 9)
50
    g.add_edge(10, 12)
51
    g.add_edge(11, 4)
52
    g.add_edge(4, 3)
53
    g.add_edge(3, 5)
54
    g.add_edge(6, 8)
55
    g.add_edge(8, 6)
56
    g.add_edge(5, 4)
57
    g.add_edge(0, 5)
58
    g.add_edge(6, 4)
59
    g.add_edge(6, 9)
60
    g.add_edge(7, 6)
61
62
    return g
63
64
65
def create_dag():
66
    dag = Digraph(7)
67
68
    dag.add_edge(0, 5)
69
    dag.add_edge(0, 2)
70
    dag.add_edge(0, 1)
71
    dag.add_edge(3, 6)
72
    dag.add_edge(3, 5)
73
    dag.add_edge(3, 4)
74
    dag.add_edge(5, 4)
75
    dag.add_edge(6, 4)
76
    dag.add_edge(6, 0)
77
    dag.add_edge(3, 2)
78
    dag.add_edge(1, 4)
79
80
    return dag
81
82
83 View Code Duplication
def create_edge_weighted_graph():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
84
    g = EdgeWeightedGraph(8)
85
    g.add_edge(Edge(0, 7, 0.16))
86
    g.add_edge(Edge(2, 3, 0.17))
87
    g.add_edge(Edge(1, 7, 0.19))
88
    g.add_edge(Edge(0, 2, 0.26))
89
    g.add_edge(Edge(5, 7, 0.28))
90
    g.add_edge(Edge(1, 3, 0.29))
91
    g.add_edge(Edge(1, 5, 0.32))
92
    g.add_edge(Edge(2, 7, 0.34))
93
    g.add_edge(Edge(4, 5, 0.35))
94
    g.add_edge(Edge(1, 2, 0.36))
95
    g.add_edge(Edge(4, 7, 0.37))
96
    g.add_edge(Edge(0, 4, 0.38))
97
    g.add_edge(Edge(6, 2, 0.4))
98
    g.add_edge(Edge(3, 6, 0.52))
99
    g.add_edge(Edge(6, 0, 0.58))
100
    g.add_edge(Edge(6, 4, 0.93))
101
102
    return g
103
104
105 View Code Duplication
def create_edge_weighted_digraph():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
106
    g = DirectedEdgeWeightedGraph(8)
107
108
    g.add_edge(
109
        Edge(0, 1, 5.0))
110
    g.add_edge(
111
        Edge(0, 4, 9.0))
112
    g.add_edge(
113
        Edge(0, 7, 8.0))
114
    g.add_edge(
115
        Edge(1, 2, 12.0))
116
    g.add_edge(
117
        Edge(1, 3, 15.0))
118
    g.add_edge(
119
        Edge(1, 7, 4.0))
120
    g.add_edge(
121
        Edge(2, 3, 3.0))
122
    g.add_edge(
123
        Edge(2, 6, 11.0))
124
    g.add_edge(
125
        Edge(3, 6, 9.0))
126
    g.add_edge(
127
        Edge(4, 5, 5.0))
128
    g.add_edge(
129
        Edge(4, 6, 20.0))
130
    g.add_edge(
131
        Edge(4, 7, 5.0))
132
    g.add_edge(
133
        Edge(5, 2, 1.0))
134
    g.add_edge(
135
        Edge(5, 6, 13.0))
136
    g.add_edge(
137
        Edge(7, 5, 6.0))
138
    g.add_edge(
139
        Edge(7, 2, 7.0))
140
141
    return g
142
143
144 View Code Duplication
def create_digraph_4_strongly_connected_components():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
145
    graph = Digraph(13)
146
    graph.add_edge(4, 2)
147
    graph.add_edge(2, 3)
148
    graph.add_edge(3, 2)
149
    graph.add_edge(6, 0)
150
    graph.add_edge(0, 1)
151
    graph.add_edge(2, 0)
152
    graph.add_edge(11, 12)
153
    graph.add_edge(12, 9)
154
    graph.add_edge(9, 10)
155
    graph.add_edge(9, 11)
156
    graph.add_edge(8, 9)
157
    graph.add_edge(10, 12)
158
    graph.add_edge(11, 4)
159
    graph.add_edge(4, 3)
160
    graph.add_edge(3, 5)
161
    graph.add_edge(7, 8)
162
    graph.add_edge(8, 7)
163
    graph.add_edge(5, 4)
164
    graph.add_edge(0, 5)
165
    graph.add_edge(6, 4)
166
    graph.add_edge(6, 9)
167
    graph.add_edge(7, 6)
168
169
    return graph
170
171
172
def create_flow_network():
173
    g = FlowNetwork(8)
174
    g.add_edge(FlowEdge(0, 1, 10))
175
    g.add_edge(FlowEdge(0, 2, 5))
176
    g.add_edge(FlowEdge(0, 3, 15))
177
    g.add_edge(FlowEdge(1, 4, 9))
178
    g.add_edge(FlowEdge(1, 5, 15))
179
    g.add_edge(FlowEdge(1, 2, 4))
180
    g.add_edge(FlowEdge(2, 5, 8))
181
    g.add_edge(FlowEdge(2, 3, 4))
182
    g.add_edge(FlowEdge(3, 6, 16))
183
    g.add_edge(FlowEdge(4, 5, 15))
184
    g.add_edge(FlowEdge(4, 7, 10))
185
    g.add_edge(FlowEdge(5, 7, 10))
186
    g.add_edge(FlowEdge(5, 6, 15))
187
    g.add_edge(FlowEdge(6, 2, 6))
188
    g.add_edge(FlowEdge(6, 7, 10))
189
190
    return g
191