Exemplo n.º 1
0
def test_delete_neighbour():
    nodes = Nodes(2)
    nodes.connect(0, 1)
    nodes[0].neighbors[0].delete_neighbour(0)
    nodes[0].delete_neighbour(1)
    assert [] == nodes[0].neighbors
    assert [] == nodes[1].neighbors
Exemplo n.º 2
0
def test_find_ways_one_way():
    nodes = Nodes(3)
    nodes.connect(0, 1)
    nodes.connect(1, 2)

    ways = nodes.find_ways(nodes[0])
    assert [[0, 1, 2]] == ways
Exemplo n.º 3
0
def test_visit_visited_node_should_throw_exception():
    nodes = Nodes(2)
    nodes.connect(0, 1)
    nodes[1].visit_node(nodes[0])

    assert [] == nodes[1].neighbors
    assert [] == nodes[0].neighbors

    with pytest.raises(VisitedNodeError):
        nodes[0].visit_node(nodes[1])
Exemplo n.º 4
0
def test_find_ways():
    nodes = Nodes(4)
    nodes.connect(0, 1)
    nodes.connect(1, 2)
    nodes.connect(1, 3)
    nodes.connect(2, 3)
    nodes.connect(3, 0)

    ways = nodes.find_ways(nodes[0])
    assert [0, 1, 2, 3, 0] in ways
    assert [0, 3, 2, 1, 0] in ways
Exemplo n.º 5
0
def test_good_run():
    nodes = Nodes(4)
    nodes.connect(0, 1)
    nodes.connect(1, 2)
    nodes.connect(1, 3)
    nodes.connect(2, 3)
    nodes.connect(3, 0)

    ways = nodes.get_good_ways()
    print(ways)

    assert 8 == len(ways)

    ways = nodes.find_ways(nodes[1])
    print(ways)
Exemplo n.º 6
0
def test_run():
    nodes = Nodes(3)
    nodes.connect(0, 1)
    nodes.connect(1, 2)
    nodes.connect(2, 0)

    assert 6 == len(nodes.run())
Exemplo n.º 7
0
def test_find_ways_1():
    nodes = Nodes(3)
    nodes.connect(0, 1)
    nodes.connect(1, 2)
    nodes.connect(2, 0)

    ways = nodes.find_ways(nodes[0])
    assert 2 == len(ways)
    assert [
        [0, 1, 2, 0],
        [0, 2, 1, 0],
    ] == ways
Exemplo n.º 8
0
def test_visit_node():
    nodes = Nodes(2)
    nodes.connect(0, 1)
    nodes[1].visit_node(nodes[0])
    assert True
Exemplo n.º 9
0
def test_visit_when_no_connection_should_throw_exception():
    nodes = Nodes(2)
    with pytest.raises(VisitedNodeError) as e:
        nodes[0].visit_node(nodes[1])
        assert e.message == 'Node is not in neighbours'
Exemplo n.º 10
0
def test_second_connection_should_be_not_allowed():
    nodes = Nodes(2)
    nodes.connect(0, 1)
    nodes.connect(1, 0)

    assert 1 == len(nodes[0].neighbors)
Exemplo n.º 11
0
def test_good_run_2():
    nodes = Nodes(5)
    nodes.connect(0, 4)
    nodes.connect(0, 1)
    nodes.connect(0, 2)
    nodes.connect(0, 3)

    nodes.connect(1, 2)

    nodes.connect(2, 3)

    assert 0 == len(nodes.get_good_ways())