Exemplo n.º 1
0
def test_dict():
    A = {
        'name': 'tree', 
        'children': [
            {
                'name': 'child 1'
            },
            {
                'name': 'child 2'  
            }
            ]}
    B = {
        'name': 'tree', 
        'children': [
            {
                'name': 'child 1'
            },
            {
                'name': 'child Z'  
            }
            ]}
    dist = simple_distance(
        A,
        B,
        get_children=lambda x: x['children'] if 'children' in x else [],
        get_label=lambda x: x['name'],
        label_dist=lambda x,y: 1 if x!=y else 0
    )
    assert dist == 1
Exemplo n.º 2
0
def test_paper_tree():
    A = (
      Node("f")
        .addkid(Node("d")
          .addkid(Node("a"))
          .addkid(Node("c")
            .addkid(Node("b"))
          )
        )
        .addkid(Node("e"))
    )
    B = (
      Node("f")
        .addkid(Node("c")
          .addkid(Node("d")
            .addkid(Node("a"))
            .addkid(Node("b"))
          )
        )
        .addkid(Node("e"))
    )
    # print A
    # print
    # print B
    dist = simple_distance(A, B)
    sub_dist = A - B
    assert dist == 2
    assert dist == sub_dist
Exemplo n.º 3
0
def test_paper_tree():
    A = (
      Node("f")
        .addkid(Node("d")
          .addkid(Node("a"))
          .addkid(Node("c")
            .addkid(Node("b"))
          )
        )
        .addkid(Node("e"))
    )
    B = (
      Node("f")
        .addkid(Node("c")
          .addkid(Node("d")
            .addkid(Node("a"))
            .addkid(Node("b"))
          )
        )
        .addkid(Node("e"))
    )
    #print A
    #print
    #print B
    dist = simple_distance(A,B)
    assert dist == 2
Exemplo n.º 4
0
def test_dict():
    A = {
        'name': 'tree', 
        'children': [
            {
                'name': 'child 1'
            },
            {
                'name': 'child 2'  
            }
            ]}
    B = {
        'name': 'tree', 
        'children': [
            {
                'name': 'child 1'
            },
            {
                'name': 'child Z'  
            }
            ]}
    dist = simple_distance(
        A,
        B,
        get_children=lambda x: x['children'] if 'children' in x else [],
        get_label=lambda x: x['name'],
        label_dist=lambda x,y: 1 if x!=y else 0
    )
    assert dist == 1
Exemplo n.º 5
0
def test_wrong_removal():
    A = (
        Node('a')
          .addkid(Node('b'))
          .addkid(Node('c'))
    )
    B = Node("a")
    dist = simple_distance(A, B)
    assert dist == 2
Exemplo n.º 6
0
def test_wrong_removal():
    A = (
        Node('a')
          .addkid(Node('b'))
          .addkid(Node('c'))
    )
    B = Node("a")
    dist = simple_distance(A, B)
    assert dist == 2
Exemplo n.º 7
0
def test_simplelabelchange():
    A = (Node("f").addkid(
        Node("a").addkid(Node("h")).addkid(Node("c").addkid(
            Node("l")))).addkid(Node("e")))
    B = (Node("f").addkid(
        Node("a").addkid(Node("d")).addkid(Node("r").addkid(
            Node("b")))).addkid(Node("e")))
    dist = simple_distance(A, B)
    print(dist)
    assert dist == 3
Exemplo n.º 8
0
def test_incorrect_behavior_regression():
    A = (
     Node("a")
       .addkid(Node("b")
         .addkid(Node("x"))
         .addkid(Node("y"))
       )
     )
    B = (
     Node("a")
       .addkid(Node("x"))
       .addkid(Node("b")
         .addkid(Node("y"))
       )
     )
    dist = simple_distance(A, B)
    print(dist)
    assert dist == 2
Exemplo n.º 9
0
def test_simplelabelchange():
    A = (
        Node("f")
            .addkid(Node("a")
                .addkid(Node("h"))
                .addkid(Node("c")
                    .addkid(Node("l"))))
            .addkid(Node("e"))
        )
    B = (
        Node("f")
            .addkid(Node("a")
                .addkid(Node("d"))
                .addkid(Node("r")
                    .addkid(Node("b"))))
            .addkid(Node("e"))
        )
    dist = simple_distance(A,B)
    print(dist)
    assert dist == 3
Exemplo n.º 10
0
def test_incorrect_behavior_regression():
    A = (
     Node("a")
       .addkid(Node("b")
         .addkid(Node("x"))
         .addkid(Node("y"))
       )
     )
    B = (
     Node("a")
       .addkid(Node("x"))
       .addkid(Node("b")
         .addkid(Node("y"))
       )
     )
    dist = simple_distance(A, B)
    print(dist)
    sub_dist = A - B
    assert dist == 2
    assert dist == sub_dist
Exemplo n.º 11
0
def test_empty_tree_distance():
    assert simple_distance(Node(''), Node('')) == 0
    assert simple_distance(Node('a'), Node('')) == 1
    assert simple_distance(Node(''), Node('b')) == 1
Exemplo n.º 12
0
def test_empty_tree_distance():
    assert simple_distance(Node(''), Node('')) == 0
    assert simple_distance(Node('a'), Node('')) == 1
    assert simple_distance(Node(''), Node('b')) == 1