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
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
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
def test_wrong_removal(): A = ( Node('a') .addkid(Node('b')) .addkid(Node('c')) ) B = Node("a") dist = simple_distance(A, B) assert dist == 2
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
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
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
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
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