Exemplo n.º 1
0
def test_load_graph_copy(graphscope_session, arrow_property_graph):
    g = arrow_property_graph
    g2 = Graph(graphscope_session, g)
    assert g.key != g2.key
    assert g.vineyard_id != g2.vineyard_id
    assert str(g.schema) == str(g2.schema)
    assert np.all(g.to_numpy("v:v0.id") == g2.to_numpy("v:v0.id"))
    g2.unload()
    assert not g2.loaded()
    # test load from vineyard's graph
    g3 = Graph(graphscope_session, vineyard.ObjectID(g.vineyard_id))
    assert g3.loaded()
Exemplo n.º 2
0
def test_multi_src_dst_edge_loader(graphscope_session, student_group_e,
                                   teacher_group_e, student_v, teacher_v):
    graph = Graph(graphscope_session)
    graph = graph.add_vertices(student_v, "student",
                               ["name", "lesson_nums", "avg_score"],
                               "student_id")
    graph = graph.add_vertices(teacher_v, "teacher",
                               ["student_num", "score", "email", "tel"],
                               "teacher_id")
    graph = graph.add_edges(
        student_group_e,
        "group",
        ["group_id", "member_size"],
        src_label="student",
        dst_label="student",
        src_field="leader_student_id",
        dst_field="member_student_id",
    )
    graph = graph.add_edges(
        teacher_group_e,
        "group",
        ["group_id", "member_size"],
        src_label="teacher",
        dst_label="teacher",
        src_field="leader_teacher_id",
        dst_field="member_teacher_id",
    )
    assert graph.loaded()
Exemplo n.º 3
0
def test_unload(graphscope_session):
    graph = Graph(graphscope_session)
    prefix = os.path.expandvars("${GS_TEST_DIR}/property")
    graph = (Graph(graphscope_session).add_vertices(
        f"{prefix}/p2p-31_property_v_0",
        "person").add_edges(f"{prefix}/p2p-31_property_e_0", "knows"))
    assert graph.loaded()
    assert graph.vineyard_id is not None
    graph.unload()

    assert not graph.loaded()

    with pytest.raises(RuntimeError, match="The graph is not loaded"):
        graph.unload()

    with pytest.raises(RuntimeError, match="The graph is not loaded"):
        graph.project_to_simple(v_label="person", e_label="knows")
    with pytest.raises(AssertionError):
        g2 = Graph(graphscope_session, graph)
    with pytest.raises(RuntimeError, match="The graph is not loaded"):
        property_sssp(graph, src=6)
Exemplo n.º 4
0
def test_v_property_omitted_form_loader(graphscope_session, student_group_e,
                                        student_v):
    # properties for v can be omit, all columns will be load,
    # the first one used as vid by # default. default vlabel would be '_';
    graph = Graph(graphscope_session)
    graph = graph.add_vertices(student_v, "student")
    graph = graph.add_edges(
        student_group_e,
        "group",
        ["group_id", "member_size"],
        src_field="leader_student_id",
        dst_field="member_student_id",
    )
    assert graph.loaded()
Exemplo n.º 5
0
def test_vid_omitted_form_loader(graphscope_session, student_group_e,
                                 student_v):
    # vid can be omit, the first column will be used as vid;
    graph = Graph(graphscope_session)
    graph = graph.add_vertices(student_v, "student",
                               ["name", "lesson_nums", "avg_score"])
    graph = graph.add_edges(
        student_group_e,
        "group",
        ["group_id", "member_size"],
        src_label="student",
        dst_label="student",
        src_field="leader_student_id",
        dst_field="member_student_id",
    )
    assert graph.loaded()
Exemplo n.º 6
0
def test_complete_form_loader(graphscope_session, student_group_e, student_v):
    # a complete form for loading from ev files.
    # types are inferred from Loader.
    graph = Graph(graphscope_session)
    graph = graph.add_vertices(student_v, "student",
                               ["name", "lesson_nums", "avg_score"],
                               "student_id")
    graph = graph.add_edges(
        student_group_e,
        "group",
        ["group_id", "member_size"],
        src_label="student",
        dst_label="student",
        src_field="leader_student_id",
        dst_field="member_student_id",
    )
    assert graph.loaded()
Exemplo n.º 7
0
def test_error_on_remove_vertices_edges(graphscope_session):
    prefix = os.path.expandvars("${GS_TEST_DIR}/modern_graph")
    graph = Graph(graphscope_session)
    graph = graph.add_vertices(Loader(f"{prefix}/person.csv", delimiter="|"),
                               "person")
    graph = graph.add_edges(Loader(f"{prefix}/knows.csv", delimiter="|"),
                            "knows")

    graph = graph.add_vertices(Loader(f"{prefix}/software.csv", delimiter="|"),
                               "software")
    graph = graph.add_edges(
        Loader(f"{prefix}/created.csv", delimiter="|"),
        "created",
        src_label="person",
        dst_label="software",
    )

    with pytest.raises(ValueError,
                       match="Vertex software has usage in relation"):
        graph = graph.remove_vertices("software")

    with pytest.raises(ValueError, match="label xxx not in vertices"):
        graph = graph.remove_vertices("xxx")
    with pytest.raises(ValueError, match="label xxx not in edges"):
        graph = graph.remove_edges("xxx")
    with pytest.raises(ValueError, match="Cannot find edges to remove"):
        graph = graph.remove_edges("knows", src_label="xxx", dst_label="xxx")

    assert graph.loaded()
    with pytest.raises(
            ValueError,
            match="Remove vertices from a loaded graph doesn't supported yet"):
        graph = graph.remove_vertices("person")
    with pytest.raises(
            ValueError,
            match="Remove edges from a loaded graph doesn't supported yet"):
        graph = graph.remove_edges("knows")
Exemplo n.º 8
0
def test_load_from_pandas(graphscope_session, student_group_e_df,
                          student_v_df):
    graph = Graph(graphscope_session)
    graph = graph.add_vertices(student_v_df)
    graph = graph.add_edges(student_group_e_df)
    assert graph.loaded()
Exemplo n.º 9
0
def test_load_from_numpy(graphscope_session, student_group_e_array,
                         student_v_array):
    graph = Graph(graphscope_session)
    graph = graph.add_vertices(student_v_array)
    graph = graph.add_edges(student_group_e_array)
    assert graph.loaded()
Exemplo n.º 10
0
def test_multiple_e_all_omitted_form_loader(graphscope_session,
                                            student_group_e, friend_e):
    graph = Graph(graphscope_session)
    graph = graph.add_edges(student_group_e, "group")
    graph = graph.add_edges(friend_e, "friend")
    assert graph.loaded()
Exemplo n.º 11
0
def test_vertices_omitted_form_loader(graphscope_session, student_group_e):
    # vertices can be omit.
    graph = Graph(graphscope_session)
    graph = graph.add_edges(student_group_e)
    assert graph.loaded()