52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
import pytest
|
|
from cidades import SearchProblem, SearchTree, cidades_portugal
|
|
|
|
@pytest.fixture
|
|
def braga_faro():
|
|
return SearchProblem(cidades_portugal,'Braga','Faro')
|
|
|
|
def test_exercicio1(braga_faro):
|
|
t = SearchTree(braga_faro,'depth')
|
|
|
|
assert t.search() == ['Braga', 'Porto', 'Agueda', 'Aveiro', 'Coimbra', 'Leiria', 'Castelo Branco', 'Santarem', 'Lisboa', 'Evora', 'Beja', 'Faro']
|
|
|
|
def test_exercicio2(braga_faro):
|
|
t = SearchTree(braga_faro, 'depth')
|
|
|
|
assert t.open_nodes[-1].depth == 0
|
|
t.search()
|
|
assert t.solution.depth == 11
|
|
|
|
def test_exercicio3(braga_faro):
|
|
t = SearchTree(braga_faro, 'depth')
|
|
|
|
t.search()
|
|
|
|
assert t.length == 11
|
|
|
|
def test_exercicio4(braga_faro):
|
|
t = SearchTree(braga_faro, 'depth')
|
|
|
|
assert t.search(limit=9) == ['Braga', 'Porto', 'Agueda', 'Aveiro', 'Coimbra', 'Leiria', 'Santarem', 'Lisboa', 'Beja', 'Faro']
|
|
|
|
assert t.length <= 9
|
|
|
|
def test_exercicio5(braga_faro):
|
|
t = SearchTree(braga_faro, 'depth')
|
|
|
|
assert t.search() == ['Braga', 'Porto', 'Agueda', 'Aveiro', 'Coimbra', 'Leiria', 'Castelo Branco', 'Santarem', 'Lisboa', 'Evora', 'Beja', 'Faro']
|
|
assert t.terminals == 19
|
|
assert t.non_terminals == 11
|
|
|
|
t = SearchTree(braga_faro, 'depth')
|
|
|
|
assert t.search(limit=9) == ['Braga', 'Porto', 'Agueda', 'Aveiro', 'Coimbra', 'Leiria', 'Santarem', 'Lisboa', 'Beja', 'Faro']
|
|
assert t.terminals == 12
|
|
assert t.non_terminals == 58
|
|
|
|
def test_exercicio6(braga_faro):
|
|
t = SearchTree(braga_faro, 'depth')
|
|
|
|
assert t.search() == ['Braga', 'Porto', 'Agueda', 'Aveiro', 'Coimbra', 'Leiria', 'Castelo Branco', 'Santarem', 'Lisboa', 'Evora', 'Beja', 'Faro']
|
|
assert round(t.avg_branching,2) == round((19+11-1)/11,2)
|