示例#1
0
def test_eq():
    s1 = Skeleton("s1")
    s1.add_nodes(["1", "2", "3", "4", "5", "6"])
    s1.add_edge("1", "2")
    s1.add_edge("3", "4")
    s1.add_edge("5", "6")
    s1.add_symmetry("3", "6")

    # Make a copy check that they are equal
    s2 = copy.deepcopy(s1)
    assert s1.matches(s2)

    # Add an edge, check that they are not equal
    s2 = copy.deepcopy(s1)
    s2.add_edge("5", "1")
    assert not s1.matches(s2)

    # Add a symmetry edge, not equal
    s2 = copy.deepcopy(s1)
    s2.add_symmetry("5", "1")
    assert not s1.matches(s2)

    # Delete a node
    s2 = copy.deepcopy(s1)
    s2.delete_node("5")
    assert not s1.matches(s2)

    # Delete and edge, not equal
    s2 = copy.deepcopy(s1)
    s2.delete_edge("1", "2")
    assert not s1.matches(s2)
示例#2
0
文件: skeletons.py 项目: rlinus/sleap
def skeleton():

    # Create a simple skeleton object
    skeleton = Skeleton("Fly")
    skeleton.add_node("head")
    skeleton.add_node("thorax")
    skeleton.add_node("abdomen")
    skeleton.add_node("left-wing")
    skeleton.add_node("right-wing")
    skeleton.add_edge(source="head", destination="thorax")
    skeleton.add_edge(source="thorax", destination="abdomen")
    skeleton.add_edge(source="thorax", destination="left-wing")
    skeleton.add_edge(source="thorax", destination="right-wing")
    skeleton.add_symmetry(node1="left-wing", node2="right-wing")

    return skeleton
示例#3
0
文件: skeletons.py 项目: rlinus/sleap
def stickman():

    # Make a skeleton with a space in its name to test things.
    stickman = Skeleton("Stick man")
    stickman.add_nodes(
        ["head", "neck", "body", "right-arm", "left-arm", "right-leg", "left-leg"]
    )
    stickman.add_edge("neck", "head")
    stickman.add_edge("body", "neck")
    stickman.add_edge("body", "right-arm")
    stickman.add_edge("body", "left-arm")
    stickman.add_edge("body", "right-leg")
    stickman.add_edge("body", "left-leg")
    stickman.add_symmetry(node1="left-arm", node2="right-arm")
    stickman.add_symmetry(node1="left-leg", node2="right-leg")

    return stickman
示例#4
0
def test_symmetry():
    s1 = Skeleton("s1")
    s1.add_nodes(["1", "2", "3", "4", "5", "6"])
    s1.add_edge("1", "2")
    s1.add_edge("3", "4")
    s1.add_edge("5", "6")
    s1.add_symmetry("1", "5")
    s1.add_symmetry("3", "6")

    assert s1.get_symmetry("1").name == "5"
    assert s1.get_symmetry("5").name == "1"

    assert s1.get_symmetry("3").name == "6"

    # Cannot add more than one symmetry to a node
    with pytest.raises(ValueError):
        s1.add_symmetry("1", "6")
    with pytest.raises(ValueError):
        s1.add_symmetry("6", "1")

    s1.delete_symmetry("1", "5")
    assert s1.get_symmetry("1") is None

    with pytest.raises(ValueError):
        s1.delete_symmetry("1", "5")
示例#5
0
def test_symmetry():
    s1 = Skeleton("s1")
    s1.add_nodes(["1", "2", "3", "4", "5", "6"])
    s1.add_edge("1", "2")
    s1.add_edge("3", "4")
    s1.add_edge("5", "6")
    s1.add_symmetry("1", "5")
    s1.add_symmetry("3", "6")

    assert (s1.nodes[0], s1.nodes[4]) in s1.symmetries
    assert (s1.nodes[2], s1.nodes[5]) in s1.symmetries
    assert len(s1.symmetries) == 2

    assert (0, 4) in s1.symmetric_inds
    assert (2, 5) in s1.symmetric_inds
    assert len(s1.symmetric_inds) == 2

    assert s1.get_symmetry("1").name == "5"
    assert s1.get_symmetry("5").name == "1"

    assert s1.get_symmetry("3").name == "6"

    # Cannot add more than one symmetry to a node
    with pytest.raises(ValueError):
        s1.add_symmetry("1", "6")
    with pytest.raises(ValueError):
        s1.add_symmetry("6", "1")

    s1.delete_symmetry("1", "5")
    assert s1.get_symmetry("1") is None

    with pytest.raises(ValueError):
        s1.delete_symmetry("1", "5")