Ejemplo n.º 1
0
def test_lexicographic_product_size():
    K5 = nx.complete_graph(5)
    P5 = nx.path_graph(5)
    K3 = nx.complete_graph(3)
    G = nx.lexicographic_product(P5, K3)
    assert_equal(nx.number_of_nodes(G), 5 * 3)
    G = nx.lexicographic_product(K3, K5)
    assert_equal(nx.number_of_nodes(G), 3 * 5)
Ejemplo n.º 2
0
def test_lexicographic_product_size():
    K5=nx.complete_graph(5)
    P5=nx.path_graph(5)
    K3=nx.complete_graph(3)
    G=lexicographic_product(P5,K3)
    assert_equal(nx.number_of_nodes(G),5*3)
    G=lexicographic_product(K3,K5)
    assert_equal(nx.number_of_nodes(G),3*5)
Ejemplo n.º 3
0
def test_lexicographic_product_combinations():
    P5 = nx.path_graph(5)
    K3 = nx.complete_graph(3)
    G = nx.lexicographic_product(P5, K3)
    assert_equal(nx.number_of_nodes(G), 5 * 3)
    G = nx.lexicographic_product(nx.MultiGraph(P5), K3)
    assert_equal(nx.number_of_nodes(G), 5 * 3)
    G = nx.lexicographic_product(P5, nx.MultiGraph(K3))
    assert_equal(nx.number_of_nodes(G), 5 * 3)
    G = nx.lexicographic_product(nx.MultiGraph(P5), nx.MultiGraph(K3))
    assert_equal(nx.number_of_nodes(G), 5 * 3)
Ejemplo n.º 4
0
def test_lexicographic_product_combinations():
    P5 = nx.path_graph(5)
    K3 = nx.complete_graph(3)
    G = lexicographic_product(P5, K3)
    assert_equal(nx.number_of_nodes(G), 5 * 3)
    G = lexicographic_product(nx.MultiGraph(P5), K3)
    assert_equal(nx.number_of_nodes(G), 5 * 3)
    G = lexicographic_product(P5, nx.MultiGraph(K3))
    assert_equal(nx.number_of_nodes(G), 5 * 3)
    G = lexicographic_product(nx.MultiGraph(P5), nx.MultiGraph(K3))
    assert_equal(nx.number_of_nodes(G), 5 * 3)
Ejemplo n.º 5
0
def test_lexicographic_product_random():
    G = nx.erdos_renyi_graph(10, 2 / 10.)
    H = nx.erdos_renyi_graph(10, 2 / 10.)
    GH = nx.lexicographic_product(G, H)

    for (u_G, u_H) in GH.nodes():
        for (v_G, v_H) in GH.nodes():
            if G.has_edge(u_G, v_G) or (u_G == v_G and H.has_edge(u_H, v_H)):
                assert_true(GH.has_edge((u_G, u_H), (v_G, v_H)))
            else:
                assert_true(not GH.has_edge((u_G, u_H), (v_G, v_H)))
Ejemplo n.º 6
0
def test_lexicographic_product_random():
    G = nx.erdos_renyi_graph(10,2/10.)
    H = nx.erdos_renyi_graph(10,2/10.)
    GH = lexicographic_product(G,H)

    for (u_G,u_H) in GH.nodes_iter():
        for (v_G,v_H) in GH.nodes_iter():
            if G.has_edge(u_G,v_G) or (u_G==v_G and H.has_edge(u_H,v_H)):
                assert_true(GH.has_edge((u_G,u_H),(v_G,v_H)))
            else:
                assert_true(not GH.has_edge((u_G,u_H),(v_G,v_H)))
Ejemplo n.º 7
0
def vector_product(request):
    """Function for calculating a vector product of 2 graphs

    This function is getting 2 graphs and return their vector
    product
    """
    raw_data = request.GET.dict()
    first_graph = raw_data["first_graph"]
    sec_graph_data = Graph.objects.get(id=int(raw_data["second_graph"]))
    with open(sec_graph_data.path_to_graph) as file:
        second_graph = json.load(file)
    second_graph = json.loads(second_graph["graph"])
    first_graph = json.loads(first_graph)
    first_matrix = np.matrix(cn.to_matrix(first_graph))
    second_matrix = np.matrix(cn.to_matrix(second_graph))
    first_graph_nx = create_graph(first_matrix, first_graph)
    second_graph_nx = create_graph(second_matrix, second_graph)
    product = nx.lexicographic_product(first_graph_nx, second_graph_nx)
    data = cn.to_json(nx.to_numpy_matrix(product).tolist(), first_graph)
    return JsonResponse(data)
Ejemplo n.º 8
0
def test_lexicographic_product_null():
    null = nx.null_graph()
    empty10 = nx.empty_graph(10)
    K3 = nx.complete_graph(3)
    K10 = nx.complete_graph(10)
    P3 = nx.path_graph(3)
    P10 = nx.path_graph(10)
    # null graph
    G = nx.lexicographic_product(null, null)
    assert_true(nx.is_isomorphic(G, null))
    # null_graph X anything = null_graph and v.v.
    G = nx.lexicographic_product(null, empty10)
    assert_true(nx.is_isomorphic(G, null))
    G = nx.lexicographic_product(null, K3)
    assert_true(nx.is_isomorphic(G, null))
    G = nx.lexicographic_product(null, K10)
    assert_true(nx.is_isomorphic(G, null))
    G = nx.lexicographic_product(null, P3)
    assert_true(nx.is_isomorphic(G, null))
    G = nx.lexicographic_product(null, P10)
    assert_true(nx.is_isomorphic(G, null))
    G = nx.lexicographic_product(empty10, null)
    assert_true(nx.is_isomorphic(G, null))
    G = nx.lexicographic_product(K3, null)
    assert_true(nx.is_isomorphic(G, null))
    G = nx.lexicographic_product(K10, null)
    assert_true(nx.is_isomorphic(G, null))
    G = nx.lexicographic_product(P3, null)
    assert_true(nx.is_isomorphic(G, null))
    G = nx.lexicographic_product(P10, null)
    assert_true(nx.is_isomorphic(G, null))
Ejemplo n.º 9
0
def test_lexicographic_product_raises():
    P = nx.lexicographic_product(nx.DiGraph(), nx.Graph())
Ejemplo n.º 10
0
def test_lexicographic_product_null():
    null=nx.null_graph()
    empty10=nx.empty_graph(10)
    K3=nx.complete_graph(3)
    K10=nx.complete_graph(10)
    P3=nx.path_graph(3)
    P10=nx.path_graph(10)
    # null graph
    G=lexicographic_product(null,null)
    assert_true(nx.is_isomorphic(G,null))
    # null_graph X anything = null_graph and v.v.
    G=lexicographic_product(null,empty10)
    assert_true(nx.is_isomorphic(G,null))
    G=lexicographic_product(null,K3)
    assert_true(nx.is_isomorphic(G,null))
    G=lexicographic_product(null,K10)
    assert_true(nx.is_isomorphic(G,null))
    G=lexicographic_product(null,P3)
    assert_true(nx.is_isomorphic(G,null))
    G=lexicographic_product(null,P10)
    assert_true(nx.is_isomorphic(G,null))
    G=lexicographic_product(empty10,null)
    assert_true(nx.is_isomorphic(G,null))
    G=lexicographic_product(K3,null)
    assert_true(nx.is_isomorphic(G,null))
    G=lexicographic_product(K10,null)
    assert_true(nx.is_isomorphic(G,null))
    G=lexicographic_product(P3,null)
    assert_true(nx.is_isomorphic(G,null))
    G=lexicographic_product(P10,null)
    assert_true(nx.is_isomorphic(G,null))
Ejemplo n.º 11
0
def test_lexicographic_product_raises():
    P = lexicographic_product(nx.DiGraph(), nx.Graph())
Ejemplo n.º 12
0
def test_lexicographic_product_raises():
    with pytest.raises(nx.NetworkXError):
        P = nx.lexicographic_product(nx.DiGraph(), nx.Graph())