Els exemples que compten per la nota són només els que van seguits de ``# doctesttag: +TAG=`` Doctests EquipsONG ------------------ >>> from ong import EquipsONG >>> e = EquipsONG() >>> e.projectes # doctesttag: +TAG=1_EquipsONG {} >>> len(e) # doctesttag: +TAG=1_EquipsONG 0 >>> e['X'] # doctesttag: +TAG=1_EquipsONG [] >>> e.assigna('P1', 'Alice') >>> e.projectes.keys() == {'P1'} # doctesttag: +TAG=1_EquipsONG True >>> e.projectes['P1'] == {'Alice'} # doctesttag: +TAG=1_EquipsONG True >>> len(e) # doctesttag: +TAG=1_EquipsONG 1 >>> e['P1'] # doctesttag: +TAG=1_EquipsONG ['Alice'] >>> e.assigna('P1', 'Bob') >>> e.projectes['P1'] == {'Alice', 'Bob'} # doctesttag: +TAG=1_EquipsONG True >>> len(e) # doctesttag: +TAG=1_EquipsONG 1 >>> e['P1'] # doctesttag: +TAG=1_EquipsONG ['Alice', 'Bob'] >>> e.assigna('P2', 'Alice') >>> e['P2'] # doctesttag: +TAG=1_EquipsONG [] >>> e.desassigna('P1', 'Bob') >>> e.projectes.keys() == {'P1'} # doctesttag: +TAG=1_EquipsONG True >>> e.projectes['P1'] == {'Alice'} # doctesttag: +TAG=1_EquipsONG True >>> len(e) # doctesttag: +TAG=1_EquipsONG 1 >>> e['P1'] # doctesttag: +TAG=1_EquipsONG ['Alice'] >>> e.desassigna('P2', 'Alice') >>> e.projectes.keys() == {'P1'} # doctesttag: +TAG=1_EquipsONG True >>> e.projectes['P1'] == {'Alice'} # doctesttag: +TAG=1_EquipsONG True >>> len(e) 1 >>> e.desassigna('P1', 'NoExisteix') >>> e.projectes.keys() == {'P1'} # doctesttag: +TAG=1_EquipsONG True >>> e.projectes['P1'] == {'Alice'} # doctesttag: +TAG=1_EquipsONG True >>> len(e) # doctesttag: +TAG=1_EquipsONG 1 >>> e.desassigna('P1', 'Alice') >>> e.projectes # doctesttag: +TAG=1_EquipsONG {} >>> len(e) # doctesttag: +TAG=1_EquipsONG 0 >>> e['P1'] # doctesttag: +TAG=1_EquipsONG [] >>> e.assigna('P3', 'Clara') >>> e.assigna('P3', 'David') >>> len(e) # doctesttag: +TAG=1_EquipsONG 1 >>> e.projectes.keys() == {'P3'} # doctesttag: +TAG=1_EquipsONG True >>> e.projectes['P3'] == {'Clara', 'David'} # doctesttag: +TAG=1_EquipsONG True >>> e.esborra_projecte('P3') >>> e.projectes # doctesttag: +TAG=1_EquipsONG {} >>> len(e) # doctesttag: +TAG=1_EquipsONG 0 >>> e['P3'] # doctesttag: +TAG=1_EquipsONG [] >>> e.assigna('P4', 'Eva') >>> e.projectes.keys() == {'P4'} # doctesttag: +TAG=1_EquipsONG True >>> e.projectes['P4'] == {'Eva'} # doctesttag: +TAG=1_EquipsONG True >>> len(e) # doctesttag: +TAG=1_EquipsONG 1 >>> e.esborra_projecte('PNoActiu') >>> e.projectes.keys() == {'P4'} # doctesttag: +TAG=1_EquipsONG True >>> e.projectes['P4'] == {'Eva'} # doctesttag: +TAG=1_EquipsONG True >>> len(e) 1 >>> e = EquipsONG() >>> e.assigna('PB', 'Ben') >>> e.assigna('PA', 'Ann') >>> e.assigna('PA', 'Cara') >>> e.conjunt_persones() == {'Ann', 'Ben', 'Cara'} # doctesttag: +TAG=1_EquipsONG True >>> len(e) # doctesttag: +TAG=1_EquipsONG 2 >>> e = EquipsONG() >>> e.assigna('P', 'Zoe') >>> e.assigna('P', 'Ana') >>> e.assigna('P', 'Marta') >>> e['P'] # doctesttag: +TAG=1_EquipsONG ['Ana', 'Marta', 'Zoe'] >>> e = EquipsONG() >>> e.assigna('P1', 'Lia') >>> e.assigna('P1', 'Lia') >>> e.projectes['P1'] == {'Lia'} # doctesttag: +TAG=1_EquipsONG True >>> e['P1'] # doctesttag: +TAG=1_EquipsONG ['Lia'] >>> len(e) # doctesttag: +TAG=1_EquipsONG 1 >>> e = EquipsONG() >>> e.assigna('P1', 'A') >>> e.assigna('P1', 'B') >>> e.assigna('P2', 'C') >>> (len(e), e['P1'], e['P2']) # doctesttag: +TAG=1_EquipsONG (2, ['A', 'B'], ['C']) >>> e.desassigna('P1', 'A') >>> (len(e), e['P1'], e['P2'], e.conjunt_persones() == {'B','C'}) # doctesttag: +TAG=1_EquipsONG (2, ['B'], ['C'], True) >>> e.esborra_projecte('P2') >>> (len(e), e['P2'], e.conjunt_persones() == {'B'}) # doctesttag: +TAG=1_EquipsONG (1, [], True) >>> e = EquipsONG() >>> e.assigna('P1','A'); e.assigna('P1','B'); e.assigna('P1','C') >>> e.assigna('P2','D'); e.assigna('P2','E'); e.assigna('P2','F'); e.assigna('P2','G') >>> e.assigna('P3','H'); e.assigna('P3','I') >>> e.assigna('P4','J') >>> e.assigna('P5','K'); e.assigna('P5','L') >>> # Tots els projectes estan actius: 5 projectes actius >>> len(e) # doctesttag: +TAG=1_EquipsONG 5 >>> e.projectes.keys() == {'P1','P2','P3','P4','P5'} # doctesttag: +TAG=1_EquipsONG True >>> e['P1'], e['P2'], e['P3'], e['P4'], e['P5'] # doctesttag: +TAG=1_EquipsONG (['A', 'B', 'C'], ['D', 'E', 'F', 'G'], ['H', 'I'], ['J'], ['K', 'L']) >>> e.conjunt_persones() == {'A','B','C','D','E','F','G','H','I','J','K','L'} # doctesttag: +TAG=1_EquipsONG True >>> e.desassigna('P2','D') >>> e.desassigna('P2','G') >>> len(e) # doctesttag: +TAG=1_EquipsONG 5 >>> e['P2'] # doctesttag: +TAG=1_EquipsONG ['E', 'F'] >>> e.conjunt_persones() == {'A','B','C','E','F','H','I','J','K','L'} # doctesttag: +TAG=1_EquipsONG True >>> e.desassigna('P2','E') >>> e.desassigna('P2','F') >>> len(e) # doctesttag: +TAG=1_EquipsONG 4 >>> e.projectes.keys() == {'P1','P3','P4','P5'} # doctesttag: +TAG=1_EquipsONG True >>> e['P2'] # doctesttag: +TAG=1_EquipsONG [] >>> e.esborra_projecte('P1') >>> len(e) # doctesttag: +TAG=1_EquipsONG 3 >>> e.projectes.keys() == {'P3','P4','P5'} # doctesttag: +TAG=1_EquipsONG True >>> e['P1'] # doctesttag: +TAG=1_EquipsONG [] >>> e.conjunt_persones() == {'H','I','J','K','L'} # doctesttag: +TAG=1_EquipsONG True >>> e = EquipsONG() >>> e.assigna('P1','A') >>> e.assigna('P2','B') >>> e.assigna('P2','A') >>> e.projectes.keys() == {'P1','P2'} # doctesttag: +TAG=1_EquipsONG True >>> e['P1'] # doctesttag: +TAG=1_EquipsONG ['A'] >>> e['P2'] # doctesttag: +TAG=1_EquipsONG ['B'] >>> len(e) # doctesttag: +TAG=1_EquipsONG 2 >>> e.conjunt_persones() == {'A','B'} # doctesttag: +TAG=1_EquipsONG True >>> e = EquipsONG() >>> e.assigna('P1','A') >>> e.esborra_projecte('P1') >>> len(e) # doctesttag: +TAG=1_EquipsONG 0 >>> e.desassigna('P1','A') >>> len(e) # doctesttag: +TAG=1_EquipsONG 0 >>> e['P1'] # doctesttag: +TAG=1_EquipsONG [] >>> e = EquipsONG() >>> e.assigna('P1','C') >>> e.assigna('P1','A') >>> e.assigna('P1','B') >>> e['P1'] # doctesttag: +TAG=1_EquipsONG ['A', 'B', 'C'] >>> e.desassigna('P1','B') >>> e['P1'] # doctesttag: +TAG=1_EquipsONG ['A', 'C'] Doctests per a estats_segons_canvi ---------------------------------- >>> import networkx as nx >>> import npc >>> g = nx.DiGraph() >>> npc.estats_segons_canvi(g, "qualsevol") # doctesttag: +TAG=2_canvi ([], []) >>> g = nx.DiGraph() >>> g.add_edge("A", "B", canvi="x") >>> npc.estats_segons_canvi(g, "x") # doctesttag: +TAG=2_canvi (['A'], ['B']) >>> g = nx.DiGraph() >>> g.add_edge("A", "B", canvi="x") >>> g.add_edge("C", "D", canvi="x") >>> npc.estats_segons_canvi(g, "x") # doctesttag: +TAG=2_canvi (['A', 'C'], ['B', 'D']) >>> g = nx.DiGraph() >>> g.add_edge("A", "B", canvi="x") >>> g.add_edge("A", "C", canvi="x") >>> npc.estats_segons_canvi(g, "x") # doctesttag: +TAG=2_canvi (['A'], ['B', 'C']) >>> g = nx.DiGraph() >>> g.add_edge("A", "B", canvi="x") >>> g.add_edge("C", "B", canvi="x") >>> npc.estats_segons_canvi(g, "x") # doctesttag: +TAG=2_canvi (['A', 'C'], ['B']) >>> g = nx.DiGraph() >>> g.add_edge("A", "B", canvi="x") >>> g.add_edge("A", "C", canvi="x") >>> g.add_edge("D", "B", canvi="x") >>> npc.estats_segons_canvi(g, "x") # doctesttag: +TAG=2_canvi (['A', 'D'], ['B', 'C']) >>> g = nx.DiGraph() >>> g.add_edge("A", "B", canvi="x") >>> g.add_edge("B", "A", canvi="altre") >>> npc.estats_segons_canvi(g, "x") # doctesttag: +TAG=2_canvi (['A'], ['B']) >>> npc.estats_segons_canvi(g, "altre") # doctesttag: +TAG=2_canvi (['B'], ['A']) >>> g = nx.DiGraph() >>> g.add_edge("A", "B", canvi="x") >>> g.add_edge("B", "C", canvi="y") >>> npc.estats_segons_canvi(g, "z") # doctesttag: +TAG=2_canvi ([], []) >>> import networkx as nx >>> g = nx.DiGraph() >>> g.add_edge("A", "B", canvi="c1") >>> g.add_edge("A", "C", canvi="c2") >>> g.add_edge("D", "B", canvi="c1") >>> npc.estats_segons_canvi(g, "c2") # doctesttag: +TAG=2_canvi (['A'], ['C']) >>> npc.estats_segons_canvi(g, "c1") # doctesttag: +TAG=2_canvi (['A', 'D'], ['B']) >>> g = nx.DiGraph() >>> g.add_edge("B", "Z", canvi="x") >>> g.add_edge("A", "Y", canvi="x") >>> npc.estats_segons_canvi(g, "x") # doctesttag: +TAG=2_canvi (['A', 'B'], ['Y', 'Z']) >>> import networkx as nx >>> g = nx.DiGraph() >>> g.add_edge("estat1", "estat2", canvi="x") >>> npc.estats_segons_canvi(g, "x") # doctesttag: +TAG=2_canvi (['estat1'], ['estat2']) >>> import networkx as nx >>> g = nx.DiGraph() >>> g.add_edge("c", "e", canvi="full") >>> g.add_edge("a", "b", canvi="full") >>> g.add_edge("a", "d", canvi="full") >>> g.add_edge("c", "b", canvi="full") >>> g.add_edge("b", "c", canvi="treball") >>> g.add_edge("d", "e", canvi="treball") >>> npc.estats_segons_canvi(g, "full") # doctesttag: +TAG=2_canvi (['a', 'c'], ['b', 'd', 'e']) >>> npc.estats_segons_canvi(g, "treball") # doctesttag: +TAG=2_canvi (['b', 'd'], ['c', 'e']) >>> import networkx as nx >>> g = nx.DiGraph() >>> g.add_edge("A", "B", canvi="w") >>> g.add_edge("B", "C", canvi="x") >>> npc.estats_segons_canvi(g, "x") # doctesttag: +TAG=2_canvi (['B'], ['C']) >>> npc.estats_segons_canvi(g, "qualsevol") # doctesttag: +TAG=2_canvi ([], []) Doctests per a camins_de_retorn ------------------------------- >>> g = nx.DiGraph() >>> nx.add_path(g, "ABCDEFG", canvi="m") >>> npc.camins_de_retorn(g, "A") # doctesttag: +TAG=2_retorn [] >>> g = nx.DiGraph() >>> g.add_edge("A","B", canvi="x") >>> g.add_edge("B","A", canvi="x") >>> cicles = npc.camins_de_retorn(g, "A") >>> sorted(cicles) # doctesttag: +TAG=2_retorn [['A', 'B', 'A']] >>> g = nx.DiGraph() >>> g.add_edge("A","B", canvi="x") >>> g.add_edge("B","C", canvi="x") >>> g.add_edge("C","A", canvi="x") >>> nx.add_path(g, "ADEFG", canvi="m") >>> cicles = npc.camins_de_retorn(g, "A") >>> sorted(cicles) # doctesttag: +TAG=2_retorn [['A', 'B', 'C', 'A']] >>> g = nx.DiGraph() >>> g.add_edge("A","B", canvi="x") >>> g.add_edge("B","A", canvi="x") >>> g.add_edge("A","C", canvi="x") >>> g.add_edge("C","A", canvi="x") >>> cicles = npc.camins_de_retorn(g, "A") >>> sorted(cicles) # doctesttag: +TAG=2_retorn [['A', 'B', 'A'], ['A', 'C', 'A']] >>> g = nx.DiGraph() >>> g.add_edge("A","B", canvi="x") >>> g.add_edge("B","C", canvi="x") >>> g.add_edge("C","D", canvi="x") >>> g.add_edge("D","A", canvi="x") >>> g.add_edge("B","A", canvi="x") >>> cicles = npc.camins_de_retorn(g, "A") >>> esperats = {("A","B","A"), ("A","B","C","A")} >>> sorted(cicles) # doctesttag: +TAG=2_retorn [['A', 'B', 'A'], ['A', 'B', 'C', 'D', 'A']] >>> g = nx.DiGraph() >>> g.add_edge("A","B", canvi="x") >>> g.add_edge("B","A", canvi="x") # A-B-A >>> g.add_edge("A","C", canvi="x") >>> g.add_edge("C","D", canvi="x") >>> g.add_edge("D","A", canvi="x") # A-C-D-A >>> g.add_edge("B","C", canvi="x") # A-B-C-D-A >>> cicles = npc.camins_de_retorn(g, "A") >>> sorted(cicles) # doctesttag: +TAG=2_retorn [['A', 'B', 'A'], ['A', 'B', 'C', 'D', 'A'], ['A', 'C', 'D', 'A']] >>> g = nx.DiGraph() >>> g.add_edge("A","B", canvi="x") >>> g.add_edge("A","C", canvi="x") >>> g.add_edge("B","D", canvi="x") >>> g.add_edge("C","D", canvi="x") >>> g.add_edge("D","A", canvi="x") >>> g.add_edge("B","C", canvi="x") >>> cicles = npc.camins_de_retorn(g, "A") >>> sorted(cicles) # doctesttag: +TAG=2_retorn [['A', 'B', 'C', 'D', 'A'], ['A', 'B', 'D', 'A'], ['A', 'C', 'D', 'A']] >>> g = nx.DiGraph() >>> g.add_edge("A","B", canvi="x") >>> g.add_edge("B","A", canvi="x") # A-B-A >>> g.add_edge("B","C", canvi="p") >>> g.add_edge("C","A", canvi="x") # A-B-C-A >>> g.add_edge("A","D", canvi="p") >>> g.add_edge("D","A", canvi="x") # A-D-A >>> cicles = npc.camins_de_retorn(g, "A") >>> sorted(cicles) # doctesttag: +TAG=2_retorn [['A', 'B', 'A'], ['A', 'B', 'C', 'A'], ['A', 'D', 'A']] >>> g.add_edge("D","E", canvi="n") >>> g.add_edge("E","D", canvi="x") >>> g.add_edge("A","E", canvi="n") >>> g.add_edge("E","A", canvi="x") >>> cicles = npc.camins_de_retorn(g, "A") >>> sorted(cicles) # doctesttag: +TAG=2_retorn [['A', 'B', 'A'], ['A', 'B', 'C', 'A'], ['A', 'D', 'A'], ['A', 'D', 'E', 'A'], ['A', 'E', 'A'], ['A', 'E', 'D', 'A']] >>> cicles = npc.camins_de_retorn(g, "B") >>> sorted(cicles) # doctesttag: +TAG=2_retorn [['B', 'A', 'B'], ['B', 'C', 'A', 'B']] Doctests per a mesos_sense_compra --------------------------------- >>> import pandas as pd >>> import restaurant >>> df = pd.read_csv("restaurant-test1.csv") >>> lm = restaurant.mesos_sense_compra(df, "NoExisteix") >>> lm # doctesttag: +TAG=3_mesos ['gener', 'febrer', 'març', 'abril', 'maig', 'juny', 'juliol', 'agost', 'setembre', 'octubre', 'novembre', 'desembre'] >>> lm = restaurant.mesos_sense_compra(df, "Vinagre de Xerès") >>> lm # doctesttag: +TAG=3_mesos ['gener', 'febrer', 'març', 'maig', 'juliol', 'agost', 'octubre', 'novembre'] >>> lm = restaurant.mesos_sense_compra(df, "Mató") >>> lm # doctesttag: +TAG=3_mesos ['gener', 'febrer', 'març', 'abril', 'maig', 'juny', 'juliol', 'setembre', 'octubre', 'desembre'] >>> lm = restaurant.mesos_sense_compra(df, "Costella de porc") >>> lm # doctesttag: +TAG=3_mesos ['gener', 'març', 'abril', 'maig', 'juny', 'juliol', 'agost', 'setembre', 'novembre', 'desembre'] >>> lm = restaurant.mesos_sense_compra(df, "Pebre negre") >>> lm # doctesttag: +TAG=3_mesos ['gener', 'febrer', 'març', 'abril', 'maig', 'juny', 'juliol', 'setembre', 'desembre'] >>> df = pd.read_csv("restaurant-test2.csv") >>> lm = restaurant.mesos_sense_compra(df, "NoExisteix") >>> lm # doctesttag: +TAG=3_mesos ['gener', 'febrer', 'març', 'abril', 'maig', 'juny', 'juliol', 'agost', 'setembre', 'octubre', 'novembre', 'desembre'] >>> lm = restaurant.mesos_sense_compra(df, "Vinagre de Xerès") >>> lm # doctesttag: +TAG=3_mesos ['maig', 'desembre'] >>> lm = restaurant.mesos_sense_compra(df, "Mató") >>> lm # doctesttag: +TAG=3_mesos ['gener', 'abril', 'agost', 'setembre'] >>> lm = restaurant.mesos_sense_compra(df, "Costella de porc") >>> lm # doctesttag: +TAG=3_mesos ['gener', 'agost'] >>> lm = restaurant.mesos_sense_compra(df, "Pebre negre") >>> lm # doctesttag: +TAG=3_mesos ['juny', 'juliol', 'octubre', 'novembre'] Doctests per a millors_preus ---------------------------- >>> df = pd.read_csv("restaurant-test1.csv") >>> dp = restaurant.millors_preus(df, 'Condiments') >>> sorted(map(lambda t:(t[0], int(t[1])), dp.items())) # doctesttag: +TAG=3_preus [('Mostassa', 21), ("Oli d'oliva", 28), ('Pebre negre', 1), ('Sucre de canya', 2), ('Vinagre de Xerès', 19)] >>> dp = restaurant.millors_preus(df, 'Carns') >>> sorted(map(lambda t:(t[0], int(t[1])), dp.items())) # doctesttag: +TAG=3_preus [('Botifarra', 14), ('Conill', 12), ('Costella de porc', 6), ('Cuixa de pollastre', 3), ('Menuts', 14), ('Pit de pollastre', 10), ('Vedella tallada', 13)] >>> dp = restaurant.millors_preus(df, 'Pedres') >>> sorted(dp.items()) # doctesttag: +TAG=3_preus [] >>> dp = restaurant.millors_preus(df, 'Productes lactis') >>> sorted(map(lambda t:(t[0], int(t[1])), dp.items())) # doctesttag: +TAG=3_preus [('Emmental', 3), ('Formatge blau', 20), ('Formatge fresc', 22), ('Formatge parmesà', 5), ('Iogurts', 19), ('Mató', 3)] >>> dp = restaurant.millors_preus(df, 'Peix') >>> sorted(map(lambda t:(t[0], int(t[1])), dp.items())) # doctesttag: +TAG=3_preus [('Bacallà dessalat', 7), ('Gamba', 15), ('LLuç filets', 14), ('Rap', 12), ('Salmó', 12), ('Sardina fresca', 5), ('Tonyina en llauna', 4)] >>> df = pd.read_csv("restaurant-test2.csv") >>> dp = restaurant.millors_preus(df, 'Condiments') >>> sorted(dp.items()) # doctesttag: +TAG=3_preus [('Herbes provençals', 2), ('Mostassa', 0), ("Oli d'oliva", 0), ('Pebre negre', 4), ('Sal', 0), ('Salsa de soja', 2), ('Sucre de canya', 4), ('Vinagre de Xerès', 2)] >>> dp = restaurant.millors_preus(df, 'Verdures') >>> sorted(dp.items()) # doctesttag: +TAG=3_preus [('All tendre', 0), ('Carbassó', 1), ('Ceba', 0), ('Enciam romà', 0), ('Espinacs', 0), ('Mongeta verda', 0), ('Pastanaga', 0), ('Patata', 0), ('Tomàquet', 0)] >>> dp = restaurant.millors_preus(df, 'Peix') >>> sorted(dp.items()) # doctesttag: +TAG=3_preus [('Bacallà dessalat', 5), ('Calamar', 4), ('Gamba', 7), ('LLuç filets', 4), ('Rap', 6), ('Salmó', 4), ('Sardina fresca', 5), ('Tonyina en llauna', 6)] >>> dp = restaurant.millors_preus(df, 'Begudes') >>> sorted(dp.items()) # doctesttag: +TAG=3_preus [('Aigua 1.5L', 4), ('Cava', 1), ('Cervesa 33cl', 0), ('Gasosa', 0), ('Refresc llauna', 0), ('Sucs 1L', 0), ('Vermouth', 0), ('Vins (ampolla)', 1)] >>> dp = restaurant.millors_preus(df, 'Carns') >>> sorted(dp.items()) # doctesttag: +TAG=3_preus [('Botifarra', 4), ('Conill', 4), ('Costella de porc', 3), ('Cuixa de pollastre', 3), ("Gall d'indi", 4), ('Menuts', 4), ('Pit de pollastre', 3), ('Vedella tallada', 3)]