Пример #1
0
def test_add_edge_as_object_w_cases(jelm_pair_case: NetwokCaseTemplate):
    def add_edge_as_obj(el: Jelm):

        el.add_object({"type": "edge", "source": "n1", "target": "n2"})
        return el

    def assert_edge_as_obj_added(el: Jelm):

        n = el.get_node("n1")

        assert "n2" in n.neighbors.keys()
        assert "n1" in el.get_node("n2").neighbors
        assert "n2" in n.target_neighbors.keys()

    def catch_edge_as_obj_add(el: Jelm, e):

        assert isinstance(e, KeyError)

        assert ("n1" not in el.nodes.keys()) or ("n2" not in el.nodes.keys())

    jelm_pair_case.evaluate_fun(
        altering_function=add_edge_as_obj,
        assert_alteration=assert_edge_as_obj_added,
        catch_alteration_exception=catch_edge_as_obj_add,
    )
Пример #2
0
def test_attribute_filter2(jelm_pair_case: NetwokCaseTemplate):
    def filter_none(el: Jelm):

        el.attribute_filter(lambda x: True)
        return el

    jelm_pair_case.evaluate_fun(non_altering_function=filter_none)
Пример #3
0
def test_add_edge_jelm_object_w_cases(jelm_pair_case: NetwokCaseTemplate):
    def add_edge_jelm_obj(el: Jelm):

        el.add_object(Edge(source="n1", target="n2", id="fing"))
        return el

    def assert_edge_jelm_obj_added(el: Jelm):

        n = el.get_node("n1")

        assert "n2" in n.neighbors.keys()
        assert "n1" in el.get_node("n2").neighbors
        assert "n2" in n.target_neighbors.keys()

        edge_ids = [e.id for e in n.neighbors["n2"]]

        assert "fing" in edge_ids

    def catch_edge_jelm_obj_add(el: Jelm, e):

        assert isinstance(e, KeyError)

        assert ("n1" not in el.nodes.keys()) or ("n2" not in el.nodes.keys())

    jelm_pair_case.evaluate_fun(
        altering_function=add_edge_jelm_obj,
        assert_alteration=assert_edge_jelm_obj_added,
        catch_alteration_exception=catch_edge_jelm_obj_add,
    )
Пример #4
0
def test_json_reads_dumps_w_cases(jelm_pair_case: NetwokCaseTemplate):
    def io_fun(_el: Jelm):

        _dump = _el.json_dumps()

        return reads_json(_dump)

    jelm_pair_case.evaluate_fun(non_altering_function=io_fun)
Пример #5
0
def test_neighborhood_w_cases(jelm_pair_case: NetwokCaseTemplate):
    def get_whole_graph(el: Jelm):

        return el.get_neighborhood(el.nodes.keys())

    jelm_pair_case.evaluate_fun(non_altering_function=get_whole_graph)

    def check_drop(el: Jelm):

        nel = el.get_neighborhood(["n1", "n2"])
Пример #6
0
def test_init_w_cases(jelm_pair_case: NetwokCaseTemplate):
    def transform_init(el):

        el_from_nodes = Jelm(metadata=el.metadata, nodes=el.nodes)

        assert el_from_nodes == el

        return el_from_nodes

    jelm_pair_case.evaluate_fun(non_altering_function=transform_init)
Пример #7
0
def test_jelm_repr(jelm_pair_case: NetwokCaseTemplate):
    def repr_check(el: Jelm):

        repr_string = el.__repr__()

        assert "jelm" in repr_string
        assert str(len(el.nodes.keys())) in repr_string

        return el

    jelm_pair_case.evaluate_fun(non_altering_function=repr_check)
Пример #8
0
def test_json_read_dump_w_cases(tmp_path, jelm_pair_case: NetwokCaseTemplate):
    d = tmp_path / "sub3"
    d.mkdir()
    p = d / "fing3.jelm"
    fp = os.fspath(p)

    def io_fun(_el: Jelm):
        _el.json_dump(fp)

        return read_json(fp)

    jelm_pair_case.evaluate_fun(non_altering_function=io_fun)
Пример #9
0
def test_neighbors(jelm_pair_case: NetwokCaseTemplate):
    def neighbor_check(el: Jelm):

        for nid, n in el.nodes.items():

            for nid2 in n.neighbors.keys():

                assert nid in el.get_node(nid2).neighbors.keys()

            for nid3 in n.target_neighbors.keys():

                assert nid in el.get_node(nid3).source_neighbors.keys()

        return el

    jelm_pair_case.evaluate_fun(non_altering_function=neighbor_check)
Пример #10
0
def test_add_node_as_object_w_cases(jelm_pair_case: NetwokCaseTemplate):
    def add_node_as_obj(el: Jelm):

        el.add_object({"type": "node", "id": "n10"})
        return el

    def assert_node_as_obj_added(el: Jelm):
        assert isinstance(el.get_node("n10"), Node)

    def catch_node_as_obj_add(el: Jelm, e):

        assert isinstance(e, ValueError)
        assert isinstance(el.get_node("n10"), Node)

    jelm_pair_case.evaluate_fun(
        altering_function=add_node_as_obj,
        assert_alteration=assert_node_as_obj_added,
        catch_alteration_exception=catch_node_as_obj_add,
    )
Пример #11
0
def test_eq(jelm_pair_case: NetwokCaseTemplate):

    jelm_pair_case.evaluate_fun(non_altering_function=lambda x: x)

    assert not (10 == Jelm())
    assert not ("fing" == Jelm())