Exemple #1
0
def test_TSP__brute_force_algorithm_four_vertices():
    g = G(grafo=np.array([[0, 1, 5, 4], [1, 0, 2, 6], [5, 2, 0, 3],
                          [4, 6, 3, 0]]))
    tsp = TSP(g=g, origem=0)
    path, cost, steps = tsp._TSP__brute_force_algorithm()
    assert np.allclose(path, np.array([0, 1, 2, 3, 0
                                       ])) and cost == 10 and steps == 6
Exemple #2
0
def test_TSP__nearest_neighbour_heuristic_four_vertices():
    g = G(grafo=np.array([[0, 1, 5, 4], [1, 0, 2, 6], [5, 2, 0, 3],
                          [4, 6, 3, 0]]))
    tsp = TSP(g=g, origem=0)
    path, cost, steps = tsp._TSP__nearest_neighbour_heuristic()
    assert np.allclose(path, np.array([0, 1, 2, 3, 0
                                       ])) and cost == 10 and steps == 3
Exemple #3
0
def test_set_dicionario_G():
    dicionario_distancias = {
        0: [(1, 1), (2, 1), (3, 1), (4, 1)],
        1: [(0, 1), (2, 1), (3, 1), (4, 1)],
        2: [(0, 1), (1, 1), (3, 1), (4, 1)],
        3: [(0, 1), (1, 1), (2, 1), (4, 1)],
        4: [(0, 1), (1, 1), (2, 1), (3, 1)],
    }
    matriz_distancias = np.ones((5, 5))
    for i in range(5):
        matriz_distancias[i][i] = 0
    g = G(grafo=dicionario_distancias)
    assert np.allclose(g.adjacencias, matriz_distancias)
Exemple #4
0
def test_G():
    assert G()
Exemple #5
0
def test_TSP_two_vertices():
    g = G(grafo=np.array([[0, 2], [2, 0]]))
    tsp = TSP(g=g, origem=0)
    path, cost, steps = tsp.solve()
    assert np.allclose(path, np.array([0, 1, 0])) and cost == 4 and steps == 1
Exemple #6
0
def test_vertices_G():
    g = G(grafo=np.array([[0, 1, 5, 4], [1, 0, 2, 6], [5, 2, 0, 3],
                          [4, 6, 3, 0]]))
    assert np.allclose(g.vertices, np.arange(4))
Exemple #7
0
def test_excecao_grafo_invalido():
    with pytest.raises(Exception) as excinfo:
        g = G(grafo=13)
    assert 'Tipo de grafo Inválido. O grafo deve ser um array numpy, um dicionario, um grafo TSPLIB95 ou None' in excinfo.value.args
Exemple #8
0
def test_tsplib95_G():
    grafo = tsplib95.load('tsp_files/si535.tsp')
    matriz_distancias = adjacency_matrix(grafo.get_graph()).toarray()
    g = G(grafo=grafo)
    assert np.allclose(g.adjacencias, matriz_distancias)
Exemple #9
0
def test_set_matriz_G():
    matriz_distancias = np.ones((5, 5))
    for i in range(5):
        matriz_distancias[i][i] = 0
    g = G(grafo=matriz_distancias)
    assert np.allclose(g.adjacencias, matriz_distancias)
Exemple #10
0
def test_G_2_vertices():
    g = G(v=2)
    assert np.allclose(g.adjacencias, np.zeros((2, 2)))
Exemple #11
0
def test_G_sem_vertices():
    g = G()
    assert np.allclose(g.adjacencias, np.array([]))