Spaces:
Running
Running
| import lib | |
| def test_taxonomiclookup_empty(): | |
| lookup = lib.TaxonomicTree() | |
| assert lookup.size == 0 | |
| def test_taxonomiclookup_kingdom_size(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add(("Animalia",)) | |
| assert lookup.size == 1 | |
| def test_taxonomiclookup_genus_size(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Accipitriformes", | |
| "Accipitridae", | |
| "Halieaeetus", | |
| ) | |
| ) | |
| assert lookup.size == 6 | |
| def test_taxonomictree_kingdom_children(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Accipitriformes", | |
| "Accipitridae", | |
| "Halieaeetus", | |
| ) | |
| ) | |
| expected = set([("Animalia", 0)]) | |
| actual = lookup.children() | |
| assert actual == expected | |
| def test_taxonomiclookup_children_of_animal_only_birds(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Accipitriformes", | |
| "Accipitridae", | |
| "Halieaeetus", | |
| "leucocephalus", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Strigiformes", | |
| "Strigidae", | |
| "Ninox", | |
| "scutulata", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Strigiformes", | |
| "Strigidae", | |
| "Ninox", | |
| "plesseni", | |
| ) | |
| ) | |
| actual = lookup.children(("Animalia",)) | |
| expected = set([("Chordata", 1)]) | |
| assert actual == expected | |
| def test_taxonomiclookup_children_of_animal(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Accipitriformes", | |
| "Accipitridae", | |
| "Halieaeetus", | |
| "leucocephalus", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Strigiformes", | |
| "Strigidae", | |
| "Ninox", | |
| "scutulata", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Strigiformes", | |
| "Strigidae", | |
| "Ninox", | |
| "plesseni", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Mammalia", | |
| "Primates", | |
| "Hominidae", | |
| "Gorilla", | |
| "gorilla", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Arthropoda", | |
| "Insecta", | |
| "Hymenoptera", | |
| "Apidae", | |
| "Bombus", | |
| "balteatus", | |
| ) | |
| ) | |
| actual = lookup.children(("Animalia",)) | |
| expected = set([("Chordata", 1), ("Arthropoda", 17)]) | |
| assert actual == expected | |
| def test_taxonomiclookup_children_of_chordata(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Accipitriformes", | |
| "Accipitridae", | |
| "Halieaeetus", | |
| "leucocephalus", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Strigiformes", | |
| "Strigidae", | |
| "Ninox", | |
| "scutulata", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Strigiformes", | |
| "Strigidae", | |
| "Ninox", | |
| "plesseni", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Mammalia", | |
| "Primates", | |
| "Hominidae", | |
| "Gorilla", | |
| "gorilla", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Arthropoda", | |
| "Insecta", | |
| "Hymenoptera", | |
| "Apidae", | |
| "Bombus", | |
| "balteatus", | |
| ) | |
| ) | |
| actual = lookup.children(("Animalia", "Chordata")) | |
| expected = set([("Aves", 2), ("Mammalia", 12)]) | |
| assert actual == expected | |
| def test_taxonomiclookup_children_of_strigiformes(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Accipitriformes", | |
| "Accipitridae", | |
| "Halieaeetus", | |
| "leucocephalus", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Strigiformes", | |
| "Strigidae", | |
| "Ninox", | |
| "scutulata", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Strigiformes", | |
| "Strigidae", | |
| "Ninox", | |
| "plesseni", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Mammalia", | |
| "Primates", | |
| "Hominidae", | |
| "Gorilla", | |
| "gorilla", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Arthropoda", | |
| "Insecta", | |
| "Hymenoptera", | |
| "Apidae", | |
| "Bombus", | |
| "balteatus", | |
| ) | |
| ) | |
| actual = lookup.children(("Animalia", "Chordata", "Aves", "Strigiformes")) | |
| expected = set([("Strigidae", 8)]) | |
| assert actual == expected | |
| def test_taxonomiclookup_children_of_ninox(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Accipitriformes", | |
| "Accipitridae", | |
| "Halieaeetus", | |
| "leucocephalus", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Strigiformes", | |
| "Strigidae", | |
| "Ninox", | |
| "scutulata", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Strigiformes", | |
| "Strigidae", | |
| "Ninox", | |
| "plesseni", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Mammalia", | |
| "Primates", | |
| "Hominidae", | |
| "Gorilla", | |
| "gorilla", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Arthropoda", | |
| "Insecta", | |
| "Hymenoptera", | |
| "Apidae", | |
| "Bombus", | |
| "balteatus", | |
| ) | |
| ) | |
| actual = lookup.children( | |
| ("Animalia", "Chordata", "Aves", "Strigiformes", "Strigidae", "Ninox") | |
| ) | |
| expected = set([("scutulata", 10), ("plesseni", 11)]) | |
| assert actual == expected | |
| def test_taxonomiclookup_children_of_gorilla(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Accipitriformes", | |
| "Accipitridae", | |
| "Halieaeetus", | |
| "leucocephalus", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Strigiformes", | |
| "Strigidae", | |
| "Ninox", | |
| "scutulata", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Aves", | |
| "Strigiformes", | |
| "Strigidae", | |
| "Ninox", | |
| "plesseni", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Mammalia", | |
| "Primates", | |
| "Hominidae", | |
| "Gorilla", | |
| "gorilla", | |
| ) | |
| ) | |
| lookup.add( | |
| ( | |
| "Animalia", | |
| "Arthropoda", | |
| "Insecta", | |
| "Hymenoptera", | |
| "Apidae", | |
| "Bombus", | |
| "balteatus", | |
| ) | |
| ) | |
| actual = lookup.children( | |
| ( | |
| "Animalia", | |
| "Chordata", | |
| "Mammalia", | |
| "Primates", | |
| "Hominidae", | |
| "Gorilla", | |
| "gorilla", | |
| ) | |
| ) | |
| expected = set() | |
| assert actual == expected | |
| def test_taxonomictree_descendants_last(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add(("A", "B", "C", "D", "E", "F", "G")) | |
| actual = list(lookup.descendants(("A", "B", "C", "D", "E", "F", "G"))) | |
| expected = [ | |
| (("A", "B", "C", "D", "E", "F", "G"), 6), | |
| ] | |
| assert actual == expected | |
| def test_taxonomictree_descendants_entire_tree(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add(("A", "B")) | |
| actual = list(lookup.descendants()) | |
| expected = [ | |
| (("A",), 0), | |
| (("A", "B"), 1), | |
| ] | |
| assert actual == expected | |
| def test_taxonomictree_descendants_entire_tree_with_prefix(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add(("A", "B")) | |
| actual = list(lookup.descendants(prefix=("A",))) | |
| expected = [ | |
| (("A",), 0), | |
| (("A", "B"), 1), | |
| ] | |
| assert actual == expected | |
| def test_taxonomictree_descendants_general(): | |
| lookup = lib.TaxonomicTree() | |
| lookup.add(("A", "B", "C", "D", "E", "F", "G")) | |
| actual = list(lookup.descendants(("A", "B", "C", "D"))) | |
| expected = [ | |
| (("A", "B", "C", "D"), 3), | |
| (("A", "B", "C", "D", "E"), 4), | |
| (("A", "B", "C", "D", "E", "F"), 5), | |
| (("A", "B", "C", "D", "E", "F", "G"), 6), | |
| ] | |
| assert actual == expected | |