Skip to content

Commit e89460c

Browse files
authored
Fix Graph test
Python 2 does not support `nonlocal`, use array instead
1 parent d7f70a2 commit e89460c

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

cyaron/tests/graph_test.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,15 @@ def new_array(len, val=0):
3131
dfn = new_array(n, 0)
3232
stap = new_array(n)
3333
belong = new_array(n)
34-
cnt = bc = stop = 0
34+
var = [0, 0, 0] # cnt, bc, stop
35+
# cnt = bc = stop = 0
3536

3637
def dfs(cur):
37-
nonlocal cnt, bc, stop
38-
cnt += 1
39-
dfn[cur] = low[cur] = cnt
38+
var[0] += 1
39+
dfn[cur] = low[cur] = var[0]
4040
instack[cur] = True
41-
stap[stop] = cur
42-
stop += 1
41+
stap[var[2]] = cur
42+
var[2] += 1
4343

4444
for v in graph.edges[cur]:
4545
if dfn[v.end] == 0:
@@ -50,12 +50,12 @@ def dfs(cur):
5050

5151
if dfn[cur] == low[cur]:
5252
v = cur + 1 # set v != cur
53-
bc += 1
53+
var[1] += 1
5454
while v != cur:
55-
stop -= 1
56-
v = stap[stop]
55+
var[2] -= 1
56+
v = stap[var[2]]
5757
instack[v] = False
58-
belong[v] = bc
58+
belong[v] = var[1]
5959

6060
for i in range(n):
6161
if dfn[i+1] == 0:

0 commit comments

Comments
 (0)