Els exemples que compten per la nota són només els que van seguits de ``# doctesttag: +TAG`` >>> import networkx as nx >>> def crea_graf(n): ... l1 = 'ABCDEF' ... t1 = [2 for x,_ in enumerate(l1)] ... l2 = 'GHIJKL' ... t2 = [4+x for x,_ in enumerate(l2)] ... l3 = 'MNOPQ' ... t3 = [8 for x,_ in enumerate(l3)] ... l4 = 'NIDX' ... t4 = [16-x for x,_ in enumerate(l4)] ... l5 = 'RBHNS' ... t5 = [32 for x,_ in enumerate(l5)] ... l6 = 'DJPTU' ... t6 = [20-x for x,_ in enumerate(l6)] ... g = nx.Graph() ... tmps = [t1, t2, t3, t4, t5, t6] ... linies = [l1, l2, l3, l4, l5, l6] ... for i, lp in enumerate(linies[:n]): ... for j in range(len(lp)-1): ... g.add_edge(lp[j], lp[j+1], linia='R'+str(i+1), temps=tmps[i][j]) ... return g Tests per a assignar_temps -------------------------- >>> from metro3 import assignar_temps >>> g = crea_graf(4) >>> assignar_temps(g, 'R1', 10) >>> sorted(e for e in g.edges(data=True)) # doctesttag: +TAG=1_assignar_temps [('A', 'B', {'linia': 'R1', 'temps': 10}), ('B', 'C', {'linia': 'R1', 'temps': 10}), ('C', 'D', {'linia': 'R1', 'temps': 10}), ('D', 'E', {'linia': 'R1', 'temps': 10}), ('D', 'I', {'linia': 'R4', 'temps': 15}), ('D', 'X', {'linia': 'R4', 'temps': 14}), ('E', 'F', {'linia': 'R1', 'temps': 10}), ('G', 'H', {'linia': 'R2', 'temps': 4}), ('H', 'I', {'linia': 'R2', 'temps': 5}), ('I', 'J', {'linia': 'R2', 'temps': 6}), ('I', 'N', {'linia': 'R4', 'temps': 16}), ('J', 'K', {'linia': 'R2', 'temps': 7}), ('K', 'L', {'linia': 'R2', 'temps': 8}), ('M', 'N', {'linia': 'R3', 'temps': 8}), ('N', 'O', {'linia': 'R3', 'temps': 8}), ('O', 'P', {'linia': 'R3', 'temps': 8}), ('P', 'Q', {'linia': 'R3', 'temps': 8})] >>> g = crea_graf(5) >>> assignar_temps(g, 'R2', 20) >>> sorted(e for e in g.edges(data=True)) # doctesttag: +TAG=1_assignar_temps [('A', 'B', {'linia': 'R1', 'temps': 2}), ('B', 'C', {'linia': 'R1', 'temps': 2}), ('B', 'H', {'linia': 'R5', 'temps': 32}), ('B', 'R', {'linia': 'R5', 'temps': 32}), ('C', 'D', {'linia': 'R1', 'temps': 2}), ('D', 'E', {'linia': 'R1', 'temps': 2}), ('D', 'I', {'linia': 'R4', 'temps': 15}), ('D', 'X', {'linia': 'R4', 'temps': 14}), ('E', 'F', {'linia': 'R1', 'temps': 2}), ('G', 'H', {'linia': 'R2', 'temps': 20}), ('H', 'I', {'linia': 'R2', 'temps': 20}), ('H', 'N', {'linia': 'R5', 'temps': 32}), ('I', 'J', {'linia': 'R2', 'temps': 20}), ('I', 'N', {'linia': 'R4', 'temps': 16}), ('J', 'K', {'linia': 'R2', 'temps': 20}), ('K', 'L', {'linia': 'R2', 'temps': 20}), ('M', 'N', {'linia': 'R3', 'temps': 8}), ('N', 'O', {'linia': 'R3', 'temps': 8}), ('N', 'S', {'linia': 'R5', 'temps': 32}), ('O', 'P', {'linia': 'R3', 'temps': 8}), ('P', 'Q', {'linia': 'R3', 'temps': 8})] >>> g = crea_graf(6) >>> assignar_temps(g, 'R3', 30) >>> sorted(e for e in g.edges(data=True)) # doctesttag: +TAG=1_assignar_temps [('A', 'B', {'linia': 'R1', 'temps': 2}), ('B', 'C', {'linia': 'R1', 'temps': 2}), ('B', 'H', {'linia': 'R5', 'temps': 32}), ('B', 'R', {'linia': 'R5', 'temps': 32}), ('C', 'D', {'linia': 'R1', 'temps': 2}), ('D', 'E', {'linia': 'R1', 'temps': 2}), ('D', 'I', {'linia': 'R4', 'temps': 15}), ('D', 'J', {'linia': 'R6', 'temps': 20}), ('D', 'X', {'linia': 'R4', 'temps': 14}), ('E', 'F', {'linia': 'R1', 'temps': 2}), ('G', 'H', {'linia': 'R2', 'temps': 4}), ('H', 'I', {'linia': 'R2', 'temps': 5}), ('H', 'N', {'linia': 'R5', 'temps': 32}), ('I', 'J', {'linia': 'R2', 'temps': 6}), ('I', 'N', {'linia': 'R4', 'temps': 16}), ('J', 'K', {'linia': 'R2', 'temps': 7}), ('J', 'P', {'linia': 'R6', 'temps': 19}), ('K', 'L', {'linia': 'R2', 'temps': 8}), ('M', 'N', {'linia': 'R3', 'temps': 30}), ('N', 'O', {'linia': 'R3', 'temps': 30}), ('N', 'S', {'linia': 'R5', 'temps': 32}), ('O', 'P', {'linia': 'R3', 'temps': 30}), ('P', 'Q', {'linia': 'R3', 'temps': 30}), ('P', 'T', {'linia': 'R6', 'temps': 18}), ('T', 'U', {'linia': 'R6', 'temps': 17})] >>> assignar_temps(g, 'R4', 40) >>> sorted(e for e in g.edges(data=True)) # doctesttag: +TAG=1_assignar_temps [('A', 'B', {'linia': 'R1', 'temps': 2}), ('B', 'C', {'linia': 'R1', 'temps': 2}), ('B', 'H', {'linia': 'R5', 'temps': 32}), ('B', 'R', {'linia': 'R5', 'temps': 32}), ('C', 'D', {'linia': 'R1', 'temps': 2}), ('D', 'E', {'linia': 'R1', 'temps': 2}), ('D', 'I', {'linia': 'R4', 'temps': 40}), ('D', 'J', {'linia': 'R6', 'temps': 20}), ('D', 'X', {'linia': 'R4', 'temps': 40}), ('E', 'F', {'linia': 'R1', 'temps': 2}), ('G', 'H', {'linia': 'R2', 'temps': 4}), ('H', 'I', {'linia': 'R2', 'temps': 5}), ('H', 'N', {'linia': 'R5', 'temps': 32}), ('I', 'J', {'linia': 'R2', 'temps': 6}), ('I', 'N', {'linia': 'R4', 'temps': 40}), ('J', 'K', {'linia': 'R2', 'temps': 7}), ('J', 'P', {'linia': 'R6', 'temps': 19}), ('K', 'L', {'linia': 'R2', 'temps': 8}), ('M', 'N', {'linia': 'R3', 'temps': 30}), ('N', 'O', {'linia': 'R3', 'temps': 30}), ('N', 'S', {'linia': 'R5', 'temps': 32}), ('O', 'P', {'linia': 'R3', 'temps': 30}), ('P', 'Q', {'linia': 'R3', 'temps': 30}), ('P', 'T', {'linia': 'R6', 'temps': 18}), ('T', 'U', {'linia': 'R6', 'temps': 17})] >>> assignar_temps(g, 'R5', 40) >>> sorted(e for e in g.edges(data=True)) # doctesttag: +TAG=1_assignar_temps [('A', 'B', {'linia': 'R1', 'temps': 2}), ('B', 'C', {'linia': 'R1', 'temps': 2}), ('B', 'H', {'linia': 'R5', 'temps': 40}), ('B', 'R', {'linia': 'R5', 'temps': 40}), ('C', 'D', {'linia': 'R1', 'temps': 2}), ('D', 'E', {'linia': 'R1', 'temps': 2}), ('D', 'I', {'linia': 'R4', 'temps': 40}), ('D', 'J', {'linia': 'R6', 'temps': 20}), ('D', 'X', {'linia': 'R4', 'temps': 40}), ('E', 'F', {'linia': 'R1', 'temps': 2}), ('G', 'H', {'linia': 'R2', 'temps': 4}), ('H', 'I', {'linia': 'R2', 'temps': 5}), ('H', 'N', {'linia': 'R5', 'temps': 40}), ('I', 'J', {'linia': 'R2', 'temps': 6}), ('I', 'N', {'linia': 'R4', 'temps': 40}), ('J', 'K', {'linia': 'R2', 'temps': 7}), ('J', 'P', {'linia': 'R6', 'temps': 19}), ('K', 'L', {'linia': 'R2', 'temps': 8}), ('M', 'N', {'linia': 'R3', 'temps': 30}), ('N', 'O', {'linia': 'R3', 'temps': 30}), ('N', 'S', {'linia': 'R5', 'temps': 40}), ('O', 'P', {'linia': 'R3', 'temps': 30}), ('P', 'Q', {'linia': 'R3', 'temps': 30}), ('P', 'T', {'linia': 'R6', 'temps': 18}), ('T', 'U', {'linia': 'R6', 'temps': 17})] Tests per a parada_mes_llunyana ------------------------------- >>> from metro3 import parada_mes_llunyana >>> g1 = crea_graf(4) >>> g2 = crea_graf(5) >>> g3 = crea_graf(6) >>> parada_mes_llunyana(g1, 'A') # doctesttag: +TAG=1_parada_mes_llunyana ('Q', 61) >>> parada_mes_llunyana(g1, 'B') # doctesttag: +TAG=1_parada_mes_llunyana ('Q', 59) >>> parada_mes_llunyana(g1, 'M') # doctesttag: +TAG=1_parada_mes_llunyana ('X', 53) >>> parada_mes_llunyana(g2, 'G') # doctesttag: +TAG=1_parada_mes_llunyana ('R', 60) >>> parada_mes_llunyana(g2, 'M') # doctesttag: +TAG=1_parada_mes_llunyana ('R', 75) >>> parada_mes_llunyana(g3, 'X') # doctesttag: +TAG=1_parada_mes_llunyana ('U', 88) >>> parada_mes_llunyana(g3, 'S') # doctesttag: +TAG=1_parada_mes_llunyana ('R', 99) >>> for p in g1.nodes(): # doctesttag: +TAG=1_parada_mes_llunyana ... print(parada_mes_llunyana(g1, p)) ('Q', 61) ('Q', 59) ('Q', 57) ('Q', 55) ('Q', 57) ('Q', 59) ('Q', 49) ('Q', 45) ('Q', 40) ('Q', 46) ('Q', 53) ('Q', 61) ('X', 53) ('X', 45) ('X', 53) ('X', 61) ('X', 69) ('Q', 69) >>> for p in g2.nodes(): # doctesttag: +TAG=1_parada_mes_llunyana ... print(parada_mes_llunyana(g2, p)) ('S', 69) ('S', 67) ('S', 65) ('S', 63) ('S', 65) ('S', 67) ('R', 60) ('R', 56) ('R', 51) ('R', 57) ('R', 64) ('R', 72) ('R', 75) ('R', 67) ('R', 75) ('R', 83) ('R', 91) ('S', 77) ('S', 99) ('R', 99) >>> for p in g3.nodes(): # doctesttag: +TAG=1_parada_mes_llunyana ... print(parada_mes_llunyana(g3, p)) ('U', 80) ('U', 78) ('U', 76) ('U', 74) ('U', 76) ('U', 78) ('U', 69) ('U', 65) ('U', 60) ('R', 56) ('R', 63) ('R', 71) ('R', 75) ('R', 67) ('R', 75) ('R', 75) ('R', 83) ('U', 88) ('U', 110) ('R', 99) ('R', 93) ('R', 110) Tests per a cjt_substrings -------------------------- >>> from substrings import cjt_strings >>> cjt_strings('abcdefgh', 25) # doctesttag: +TAG=2_cjt_strings set() >>> cjt_strings('abcdefghijklmnopqrstuvxyz', 7) # doctesttag: +TAG=2_cjt_strings set() >>> cjt_strings('aaaaaaaaaaaaaaaaaaaaaa', 6) # doctesttag: +TAG=2_cjt_strings {'aaaaaa'} >>> cjt_strings('piiip', 5) # doctesttag: +TAG=2_cjt_strings {'piiip'} >>> cjt_strings('aabbccddeeffgghh', 2) == {'bb', 'ee', 'gg', 'hh', 'cc', 'ff', 'dd', 'aa'} # doctesttag: +TAG=2_cjt_strings True >>> cjt_strings('aabbccddeeffgghh' * 5, 2) == {'bb', 'ee', 'gg', 'hh', 'cc', 'ff', 'dd', 'aa'} # doctesttag: +TAG=2_cjt_strings True >>> cjt_strings('AMANIDACATALANA', 3) == {'AMA', 'ACA', 'ANA', 'ALA', 'ATA'} # doctesttag: +TAG=2_cjt_strings True >>> cjt_strings('AMANIDACATALANA', 5) == {'ALANA', 'ANIDA', 'ACATA', 'ATALA'} # doctesttag: +TAG=2_cjt_strings True >>> cjt_strings('AMANIDACATALANA' * 2, 8) == {'ALANAAMA', 'AAMANIDA', 'ATALANAA'} # doctesttag: +TAG=2_cjt_strings True >>> cjt_strings('claclecliclocluc' * 3, 4) == {'licl', 'lacl', 'cluc', 'locl', 'lecl', 'clec', 'clac', 'cloc', 'clic'} # doctesttag: +TAG=2_cjt_strings True Test per a gran_arbre --------------------- >>> import pandas as pd >>> from bd_arbres import gran_arbre >>> df = pd.read_csv('arbres_tst.csv', index_col='Tree_ID') >>> dfcl = df.dropna() >>> df2 = dfcl[1000:3000] >>> nomc, diam, alt = gran_arbre(dfcl, 'Santry', 'Dead') >>> print(nomc, '---', diam, '---', alt) # doctesttag: +TAG=3_gran_arbre Myrobalan (Purple) Plum --- 28.0 --- 5.1-10 >>> nomc, diam, alt = gran_arbre(dfcl, 'Santry', 'Fair') >>> print(nomc, '---', diam, '---', alt) # doctesttag: +TAG=3_gran_arbre Horse Chestnut --- 94.0 --- > 20.1 >>> nomc, diam, alt = gran_arbre(df2, 'Howth', 'Fair') >>> print(nomc, '---', diam, '---', alt) # doctesttag: +TAG=3_gran_arbre Elm --- 42.0 --- 15.1-20 >>> nomc, diam, alt = gran_arbre(dfcl, 'Mulhuddart', 'Poor') >>> print(nomc, '---', diam, '---', alt) # doctesttag: +TAG=3_gran_arbre Common Beech --- 118.0 --- 5.1-10 >>> nomc, diam, alt = gran_arbre(df2, 'Howth', 'Dead') >>> print(nomc, '---', diam, '---', alt) # doctesttag: +TAG=3_gran_arbre Stump --- 10.0 --- Up to 5 >>> dfaux = df2[df2.Town == 'Clonsilla'] >>> for e in sorted(dfaux.Condition.unique()): ... nomc, diam, alt = gran_arbre(df2, 'Clonsilla', e) ... print(nomc, '---', diam, '---', alt) # doctesttag: +TAG=3_gran_arbre Common Ash --- 58.0 --- 15.1-20 Norway Maple --- 22.0 --- 5.1-10 >>> dfaux = df2[df2.Town == 'Skerries'] >>> for e in sorted(dfaux.Condition.unique()): ... nomc, diam, alt = gran_arbre(df2, 'Skerries', e) ... print(nomc, '---', diam, '---', alt) # doctesttag: +TAG=3_gran_arbre Norway Maple --- 30.0 --- 5.1-10 Common Ash --- 18.0 --- 5.1-10 Sycamore --- 33.0 --- 10.1- 15 London Plane --- 38.0 --- 5.1-10 Whitebeam --- 28.0 --- 5.1-10 >>> dfaux = dfcl[dfcl.Town == 'Malahide'] >>> for e in sorted(dfaux.Condition.unique()): ... nomc, diam, alt = gran_arbre(dfcl, 'Malahide', e) ... print(nomc, '---', diam, '---', alt) # doctesttag: +TAG=3_gran_arbre Common Ash --- 65.0 --- 5.1-10 Maple --- 65.0 --- 10.1- 15 Lime --- 71.0 --- Up to 5 Eucalyptus --- 69.0 --- 10.1- 15 Oak --- 65.0 --- > 20.1 Oak --- 66.0 --- > 20.1 >>> dfaux = dfcl[dfcl.Condition == 'Poor'] >>> for t in sorted(dfaux.Town.unique()): ... nomc, diam, alt = gran_arbre(dfcl, t, 'Poor') ... print(nomc, '---', diam, '---', alt) # doctesttag: +TAG=3_gran_arbre Cherry --- 14.0 --- 5.1-10 Common Ash --- 9.0 --- Up to 5 Common Beech --- 119.0 --- > 20.1 Rowan (Mountain Ash) --- 13.0 --- Up to 5 Horse Chestnut --- 42.0 --- 10.1- 15 Pedunculate (English) Oak --- 65.0 --- 10.1- 15 Horse Chestnut --- 81.0 --- 10.1- 15 Sycamore --- 82.0 --- 15.1-20 Norway Maple --- 36.0 --- Up to 5 Rowan (Mountain Ash) --- 37.0 --- 5.1-10 Pedunculate (English) Oak --- 73.0 --- 10.1- 15 Maple --- 29.0 --- 5.1-10 Oak --- 66.0 --- > 20.1 Common Beech --- 118.0 --- 5.1-10 Japanese Cherry --- 15.0 --- 5.1-10 Norway Maple --- 33.0 --- 10.1- 15 Norway Maple --- 7.0 --- Up to 5 Common Beech --- 88.0 --- 5.1-10 Norway Maple --- 29.0 --- 5.1-10 Sycamore --- 41.0 --- 5.1-10 Silver Birch --- 38.0 --- 10.1- 15 Unknown Conifer --- 36.0 --- Up to 5 Black Poplar --- 54.0 --- 15.1-20 Norway Maple --- 35.0 --- 10.1- 15 Common Beech --- 100.0 --- 10.1- 15 >>> dfaux = dfcl[dfcl.Condition == 'Fair'] >>> for t in sorted(dfaux.Town.dropna().unique()): ... nomc, diam, alt = gran_arbre(dfcl, t, 'Fair') ... print(nomc, '---', diam, '---', alt) # doctesttag: +TAG=3_gran_arbre Common Ash --- 30.0 --- 5.1-10 Norway Maple --- 116.0 --- 5.1-10 Sycamore --- 61.0 --- 15.1-20 Norway Maple --- 50.0 --- 15.1-20 Common Beech --- 82.0 --- > 20.1 White Willow --- 161.0 --- 15.1-20 Common Lime --- 77.0 --- > 20.1 Elm --- 54.0 --- 15.1-20 Leyland Cypress --- 45.0 --- 15.1-20 Horse Chestnut --- 61.0 --- 10.1- 15 Norway Maple --- 34.0 --- 10.1- 15 Maple --- 65.0 --- 10.1- 15 Common Lime --- 159.0 --- > 20.1 Japanese Cherry --- 42.0 --- 5.1-10 Norway Maple --- 21.0 --- Up to 5 Horse Chestnut --- 94.0 --- > 20.1 Norway Maple --- 42.0 --- 5.1-10 Sycamore --- 35.0 --- 10.1- 15 Sycamore --- 45.0 --- 10.1- 15 Holm Oak --- 57.0 --- 10.1- 15 Japanese Cherry --- 1402.0 --- 5.1-10 Norway Maple --- 44.0 --- 10.1- 15 Common Lime --- 65.0 --- > 20.1 Tests per a noms_comuns ----------------------- >>> from bd_arbres import noms_comuns >>> df = pd.read_csv('arbres_tst.csv', index_col='Tree_ID') >>> dfcl = df.dropna() >>> df2 = dfcl[1000:3000] >>> cjt = noms_comuns(df.iloc[:2]) >>> cjt == {"Acer platanoides 'Globosum'": 'Mop-Head Maple', 'Carpinus betulus': 'Hornbeam'} # doctesttag: +TAG=3_noms_comuns True >>> cjt = noms_comuns(df.iloc[2:10]) >>> cjt == {'Acer platanoides': 'Norway Maple', 'Fraxinus excelsior': 'Common Ash', 'Tilia cordata': 'Small-Leafed Lime', 'Carpinus betulus': 'Hornbeam'} # doctesttag: +TAG=3_noms_comuns True >>> cjt = noms_comuns(df2[df2.Species_Desc.str.startswith('S')]) >>> cjt == {'Sorbus intermedia': 'Swedish Whitebeam', 'Sorbus aria': 'Whitebeam', 'Sorbus aucuparia': 'Rowan (Mountain Ash)', 'Sorbus x thuringiaca': 'Bastard Service Tree', 'Stump': 'Stump', "Sorbus aria 'Lutescens'": 'Whitebeam', "Sorbus x thuringiaca 'Fastigiata'": 'Bastard Service Tree', 'Salix caprea': 'Goat Willow'} # doctesttag: +TAG=3_noms_comuns True >>> cjt = noms_comuns(df2.iloc[123456:]) >>> cjt == {} # doctesttag: +TAG=3_noms_comuns True >>> cjt = noms_comuns(dfcl[dfcl.Species_Desc.str.startswith('Prunus')]) >>> cjt == {'Prunus serrulata': 'Japanese Cherry', "Prunus cerasifera 'Nigra'": 'Myrobalan (Purple) Plum', 'Prunus spp.': 'Cherry', 'Prunus serrula': 'Tibetan cherry', 'Prunus cerasifera': 'Myrobalan Plum', 'Prunus avium': 'Gean (Wild Cherry)', 'Prunus spinosa': 'Blackthorn', 'Prunus laurocerasus': 'Cherry Laurel'} # doctesttag: +TAG=3_noms_comuns True >>> cjt = noms_comuns(df.iloc[100:200]) >>> cjt == {'Acer platanoides': 'Norway Maple', 'Platanus x acerifolia': 'London Plane', 'Tilia spp.': 'Lime', 'Alnus glutinosa': 'Common Alder', 'Fraxinus ornus': 'Manna Ash', 'Acer pseudoplatanus': 'Sycamore', 'Sorbus aucuparia': 'Rowan (Mountain Ash)', 'Fagus sylvatica': 'Common Beech', "Acer platanoides 'Crimson Sentry'": 'Norway Maple', 'Tilia cordata': 'Small-Leafed Lime', "Acer platanoides 'Crimson King'": 'Norway Maple', 'Betula pendula': 'Silver Birch', 'Carpinus betulus': 'Hornbeam', 'Fraxinus excelsior': 'Common Ash', 'Populus nigra': 'Black Poplar', 'Prunus serrula': 'Tibetan cherry', 'Alnus incana': 'Grey Alder', 'Prunus serrulata': 'Japanese Cherry', 'Sorbus intermedia': 'Swedish Whitebeam', 'Ulmus spp.': 'Elm', 'Pyrus spp.': 'Pear', 'Platanus x hispanica': 'London Plane', 'Cercis siliquastrum': 'Judas Tree', "Carpinus betulus 'Fastigiata'": 'Hornbeam', 'Tilia x europaea': 'Common Lime', 'Acer pseudoplatanus f. purpureum': 'Sycamore', 'Sorbus aria': 'Whitebeam', 'Acer saccharinum': 'Silver Maple', "Crat. oxyacanthoides 'Paul's Scarlet'": 'Midland Thorn', 'Acer campestre "Queen Elizabeth"': 'Field Maple'} # doctesttag: +TAG=3_noms_comuns True >>> cjt = noms_comuns(df.iloc[3000::1000]) >>> cjt == {'Tilia cordata': 'Small-Leafed Lime', 'Prunus spp.': 'Cherry', 'Sorbus intermedia': 'Swedish Whitebeam', 'Acer platanoides': 'Norway Maple', 'Acer pseudoplatanus': 'Sycamore', "Prunus cerasifera 'Nigra'": 'Myrobalan (Purple) Plum', 'Prunus serrulata': 'Japanese Cherry', 'Alnus glutinosa': 'Common Alder', 'Tilia spp.': 'Lime', 'Sorbus aucuparia': 'Rowan (Mountain Ash)', 'Acer campestre': 'Field Maple', 'Sorbus x thuringiaca': 'Bastard Service Tree'} # doctesttag: +TAG=3_noms_comuns True >>> cjt = noms_comuns(df2.iloc[-10:]) >>> cjt == {'Acer platanoides': 'Norway Maple', 'Acer pseudoplatanus f. purpureum': 'Sycamore', 'Larix kaempferi': 'Japanese Larch', 'Tilia spp.': 'Lime', 'Acer campestre': 'Field Maple', 'Corylus colorna': 'Turkish hazel'} # doctesttag: +TAG=3_noms_comuns True >>> cjt = noms_comuns(dfcl[dfcl.Common_Name.str.endswith('Lime')]) >>> cjt == {'Tilia spp.': 'Lime', 'Tilia x europaea': 'Common Lime', 'Tilia cordata': 'Small-Leafed Lime', 'Tilia euchlora': 'Caucasian Lime', "Tilia cordata 'Greenspire'": 'Small-Leafed Lime', "Tilia platyphyllos 'Rubra'": 'Large-Leafed Lime', 'Tilia cordata "Street Wise"': 'Small-Leafed Lime'} # doctesttag: +TAG=3_noms_comuns True >>> cjt = noms_comuns(df) >>> cjt == {"Acer platanoides 'Globosum'": 'Mop-Head Maple', 'Carpinus betulus': 'Hornbeam', 'Acer platanoides': 'Norway Maple', 'Fraxinus excelsior': 'Common Ash', 'Tilia cordata': 'Small-Leafed Lime', 'Betula jacquemontii': 'Kashmir Birch', "Acer platanoides 'Drummondii'": 'Harlequin Maple', 'Alnus incana': 'Grey Alder', 'Betula pendula': 'Silver Birch', 'Platanus x acerifolia': 'London Plane', 'Prunus serrulata': 'Japanese Cherry', 'Populus spp.': 'Poplar', 'Sorbus aria': 'Whitebeam', 'Tilia spp.': 'Lime', 'Ulmus spp.': 'Elm', 'Sorbus aucuparia': 'Rowan (Mountain Ash)', 'Acer pseudoplatanus': 'Sycamore', "Prunus cerasifera 'Nigra'": 'Myrobalan (Purple) Plum', 'Crataegus monogyna': 'Hawthorn', 'Sorbus intermedia': 'Swedish Whitebeam', 'Fagus sylvatica': 'Common Beech', 'Tilia x europaea': 'Common Lime', "Acer platanoides 'Crimson Sentry'": 'Norway Maple', 'Acer spp.': 'Maple', 'Prunus spp.': 'Cherry', 'Acer campestre': 'Field Maple', 'Sorbus x thuringiaca': 'Bastard Service Tree', 'Acer saccharinum': 'Silver Maple', 'Alnus glutinosa': 'Common Alder', 'Fraxinus ornus': 'Manna Ash', "Acer platanoides 'Crimson King'": 'Norway Maple', 'Populus nigra': 'Black Poplar', 'Prunus serrula': 'Tibetan cherry', 'Pyrus spp.': 'Pear', 'Platanus x hispanica': 'London Plane', 'Cercis siliquastrum': 'Judas Tree', "Carpinus betulus 'Fastigiata'": 'Hornbeam', 'Acer pseudoplatanus f. purpureum': 'Sycamore', "Crat. oxyacanthoides 'Paul's Scarlet'": 'Midland Thorn', 'Acer campestre "Queen Elizabeth"': 'Field Maple', 'Stump': 'Stump', 'Prunus cerasifera': 'Myrobalan Plum', 'Malus spp.': 'Crab apple', 'Quercus ilex': 'Holm Oak', "Sorbus x thuringiaca 'Fastigiata'": 'Bastard Service Tree', 'Corylus spp.': 'Common Hazel', 'Malus floribunda': 'Japanese Crab', 'Corylus colorna': 'Turkish hazel', 'Aesculus hippocastanum': 'Horse Chestnut', 'Salix fragilis': 'Crack willow', 'Pyrus calleryana': 'Pear', 'Prunus avium': 'Gean (Wild Cherry)', 'Pinus nigra var nigra': 'Austrian Pine', 'Prunus persica': 'Peach', 'Fraxinus spp.': 'Common Ash', 'x Cupressocyparis leylandii': 'Leyland Cypress', 'Salix spp.': 'Willow', 'Amelanchier lamarchii': 'Serviceberry', 'Acer campestre "Streetwise"': 'Field Maple', 'Cupressus macrocarpa': 'Monterey Cypress', 'Morus nigra': 'Black Mulberry', 'Pinus sylvestris': 'Scots Pine', 'Salix caprea': 'Goat Willow', "Sorbus aria 'Lutescens'": 'Whitebeam', 'Alnus spp.': 'Common Alder', 'Betula spp.': 'Birch', 'Tilia euchlora': 'Caucasian Lime', 'Quercus spp.': 'Oak', 'Betula papyrifera': 'Paper-Bark Birch (Canoe birch)', "Tilia cordata 'Greenspire'": 'Small-Leafed Lime', "Tilia platyphyllos 'Rubra'": 'Large-Leafed Lime', "Acer pseudoplatanus 'Leopoldii'": 'Sycamore', 'Larix kaempferi': 'Japanese Larch', 'Acer buergerianum': 'Trident maple', 'Prunus dulcis': 'Almond', 'Alnus cordata': 'Italian alder', 'Cordyline australis': 'Cabbage Palm', 'Liquidamber styraciflua': 'Sweet Gum', 'Populus alba': 'White Poplar', 'Robinia pseudocacia': 'Locust Tree (False Acacia)', "Gleditsia triacanthos 'Skyline'": 'Honey-Locust', "Gleditsia triancanthos 'sunburst'": 'Honey-Locust', 'Crataegus crus-galli': 'Cockspur Thorn', 'Crataegus spp.': 'Hawthorn', "Populus nigra 'Italica'": 'Lombardy Poplar', "Abies pinsapo 'Glauca'": 'Spanish Fir (Hedgehog fir)', 'Fagus sylvatica f. purpurea': 'Copper Beech', 'Sambucus nigra': 'Elder', "Populus x candicans 'Aurora'": 'Ontario Poplar', 'Eucalyptus spp.': 'Eucalyptus', 'Taxus baccata': 'Common Yew', 'Laburnum x watereri': 'Laburnum', 'Acer negundo': 'Box elder', 'Chamaecyparis lawsoniana': 'Lawson Cypress', "Tilia cordata 'Erecta'": 'Small-Leafed Lime', "Acer pseudoplatanus 'Atropurpureum'": 'Sycamore', 'Unknown Broadleaf': 'Unknown Broadleaf', 'Quercus robur': 'Pedunculate (English) Oak', "Salix 'Chrysocoma'": 'Weeping willow', 'Acer rubrum': 'Red Maple', 'Unknown Conifer': 'Unknown Conifer', 'Fraxinus angustifolia': 'Narrow-Leafed Ash', 'Cedrus deodara': 'Deodar', "Acer pseudoplatanus 'Negenia'": 'Sycamore', 'Ulmus glabra': 'Wych Elm', 'Amelanchier alniflora': 'Serviceberry', 'Abis numidica x homolepsis': 'Algerian Fir', 'Morus alba': 'White Mulberry', 'Castanea sativa': 'Sweet (Spanish) Chestnut', 'Betula nigra': 'Black Birch (River Birch)', 'Acer palmatum': 'Smooth Japanese Maple', 'Thuja spp.': 'Cypress', 'Amelanchier arborea': 'Serviceberry', 'Euonymus europaeus': 'Spindle bush', 'Prunus spinosa': 'Blackthorn', 'Robinia pseudocacia "Bessoniana"': 'Locust Tree (False Acacia)', 'Tilia cordata "Street Wise"': 'Small-Leafed Lime', 'Abies cephalonica': 'Grecian Fir', 'Crataegus oxyacanthoides': 'Midland Hawthorn', "Malus x zumi 'Golden Hornet'": 'Crab apple', 'Cotoneaster spp.': 'Cotoneaster', 'Liriodendron tulipifera': 'Tulip Tree', 'Juglans regia': 'Common Walnut', 'Prunus laurocerasus': 'Cherry Laurel', 'Quercus cerris': 'Turkey oak', 'Abies pinsapo': 'Spanish Fir (Hedgehog fir)', 'Ilex aquifolium': 'Holly', 'Pinus radiata': 'Monterey Pine', 'Ulmus procera': 'English Elm', 'Salix alba': 'White Willow', 'Ginko biloba': 'Maidenhair Tree', 'Quercus petraea': 'Sessile (Durmast) Oak', 'Betula albosinensis var septentrionalis': 'Chinese red-barked birch', 'Abies nordmanianna': 'Caucasian Fir', "Carpinus fastigiata 'Frans Fontaine'": 'Hornbeam', "Laburnum alpinum 'Autumnale'": 'Laburnum', 'Pyracantha coccinia': 'Firethorn', "Pyrus salicifolia'Pendula'": 'Weeping willow leafed pear', 'Juniperus spp.': 'Common Juniper', 'Populus tremula': 'Aspen', 'Eucalyptus gunnii': 'Cider gum', 'Pinus spp.': 'Pine', "Laburnum x watereri 'Vossii'": "Voss's Laburnum", 'Sequoiadendron giganteum': 'Wellingtonia', "Picea glauca 'Albertiana'": 'Dwarf Alberta Spruce', 'Cedrus atlantica Glauca': 'Blue Atlas Cedar', 'Acacia dealbata': 'Mimosa (Silver Wattle)'} # doctesttag: +TAG=3_noms_comuns True