Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions src/python/dfs.py → src/dfs/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,3 @@ def dfs(self, start):
def __iter__(self):
start = list(self.adj_list.keys())[0]
return iter(self.dfs(start))
#пример
g = Graph()
g.add_edge('A', 'B')
g.add_edge('A', 'C')
g.add_edge('B', 'D')

print("Обход DFS:", g.dfs('A')) # ['A', 'C', 'B', 'D']


54 changes: 54 additions & 0 deletions src/dfs/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import pytest
from main import Graph

def test_simple_graph():
g = Graph()
g.add_edge('A', 'B')
g.add_edge('A', 'C')
g.add_edge('B', 'D')

result = g.dfs('A')

assert set(result) == {'A', 'B', 'C', 'D'}
assert result[0] == 'A'
assert 'A' == result[0]
assert 'C' in result[1:]
assert 'B' in result[1:]
assert result.index('D') > result.index('B')

def test_graph_with_disconnected_components():
g = Graph()
g.add_edge('A', 'B')
g.add_edge('C', 'D')

result = g.dfs('A')
assert 'A' in result
assert 'B' in result
assert 'C' not in result
assert 'D' not in result

def test_iteration_over_graph():
g = Graph()
g.add_edge('A', 'B')
g.add_edge('A', 'C')
g.add_edge('B', 'D')
nodes_in_iteration = list(iter(g))

assert set(nodes_in_iteration) == {'A', 'B', 'C', 'D'}
assert nodes_in_iteration[0] == list(g.adj_list.keys())[0]

def test_cycle_graph():
g = Graph()
g.add_edge('A', 'B')
g.add_edge('B', 'C')
g.add_edge('C', 'A')

result = g.dfs('A')
assert set(result) == {'A', 'B', 'C'}
assert result[0] == 'A'

def test_single_vertex():
g = Graph()
g.add_vertex('X')
result = g.dfs('X')
assert result == ['X']
Binary file removed src/python/Fibonacci of a large number.png
Binary file not shown.
76 changes: 0 additions & 76 deletions src/python/Heap_sort.py

This file was deleted.

12 changes: 0 additions & 12 deletions src/python/Hello World.py

This file was deleted.

48 changes: 0 additions & 48 deletions src/python/carrying.py

This file was deleted.

13 changes: 0 additions & 13 deletions src/python/coin_exchange.py

This file was deleted.

16 changes: 0 additions & 16 deletions src/python/do_eratosthenes.py

This file was deleted.

17 changes: 0 additions & 17 deletions src/python/extended_euclud.py

This file was deleted.

84 changes: 0 additions & 84 deletions src/python/haffman_code.py

This file was deleted.

28 changes: 0 additions & 28 deletions src/works_on_C/Lucky tickets.c

This file was deleted.

Loading