Iteradors: seleccio ------------------- >>> from seleccio import seleccio_valor >>> it1 = iter(['pa', 'oli', 'vi', 'hola', 'hola', 'adeu', 'butxaca']) >>> it2 = iter([0, 5, 1, 3]) >>> it3 = seleccio_valor(it1, it2) >>> next(it3), next(it3), next(it3) # doctesttag: +TAG=1_seleccio ('p', 'i', 'a') >>> it1 = iter(['pollastre', 'patates', 'enciam', 'hola', 'hola', 'adeu', 'butxaca', 'amor', 'pare']) >>> it2 = iter([5, 5, 3, 6, 5, 0, 10, 20]) # doctesttag: +TAG=1_seleccio >>> list(seleccio_valor(it1, it2)) ['s', 'e', 'i', 'a'] >>> it1 = iter(['croissant', 'pessic', 'vinagre', 'bon', 'dia', 'ningú', 'ho', 'ha', 'demanat', 'però', 'us', 'dic', 'bon', 'dia']) >>> it2 = iter([0, 1, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]) >>> list(seleccio_valor(it1, it2)) # doctesttag: +TAG=1_seleccio ['c', 'e', 'g', 'b', 'i', 'n', 'd', 'e', 'd'] >>> it1 = iter(['croissant', 'pessic', 'vinagre']) >>> it2 = iter([100, 200, 300]) >>> list(seleccio_valor(it1, it2)) # doctesttag: +TAG=1_seleccio [] >>> it1 = iter(['croissant', 'pessic', 'vinagre']) >>> it2 = iter([3, 200, 1]) >>> list(seleccio_valor(it1, it2)) # doctesttag: +TAG=1_seleccio ['i', 'i'] Classes: autonoms ----------------- >>> from autonoms import Autonom >>> b1 = Autonom('SA43', 8.0) >>> b1.id, b1.vel # doctesttag: +TAG=2_autonoms ('SA43', 8.0) >>> str(b1) # doctesttag: +TAG=2_autonoms 'Vehicle SA43' >>> b1.durada(69.9) # doctesttag: +TAG=2_autonoms datetime.timedelta(seconds=31455) >>> b1.durada(245.2) # doctesttag: +TAG=2_autonoms datetime.timedelta(days=1, seconds=23940) >>> b2 = Autonom('XM68', 5.5) >>> str(b2) # doctesttag: +TAG=2_autonoms 'Vehicle XM68' >>> b2.id, b2.vel # doctesttag: +TAG=2_autonoms ('XM68', 5.5) >>> b2.durada(878.5) # doctesttag: +TAG=2_autonoms datetime.timedelta(days=6, seconds=56618, microseconds=181818) >>> b3 = Autonom('HH22', 30) >>> b3.id, b3.vel # doctesttag: +TAG=2_autonoms ('HH22', 30) >>> str(b3) # doctesttag: +TAG=2_autonoms 'Vehicle HH22' >>> b3.durada(100) # doctesttag: +TAG=2_autonoms datetime.timedelta(seconds=12000) Classes: flota -------------- >>> from datetime import datetime >>> from vehicles import Flota >>> from autonoms import Autonom >>> m = Flota('Eltour') >>> m.afeg_vehicle(Autonom('B05', 9.5)) >>> m.afeg_vehicle(Autonom('T73', 18.1)) >>> len(m) # doctesttag: +TAG=2_flota 2 >>> m[0].id, m[0].vel # doctesttag: +TAG=2_flota ('B05', 9.5) >>> m.afeg_vehicle(Autonom('AD56', 8.2)) >>> len(m) # doctesttag: +TAG=2_flota 3 >>> m[2].id, m[2].vel # doctesttag: +TAG=2_flota ('AD56', 8.2) >>> m.afeg_vehicle(Autonom('AD56', 7.9)) >>> m[2].id, m[2].vel # doctesttag: +TAG=2_flota ('AD56', 7.9) >>> len(m) # doctesttag: +TAG=2_flota 3 >>> m.afeg_vehicle(Autonom('TT34', 2.9)) >>> len(m) # doctesttag: +TAG=2_flota 4 >>> m[3].vel # doctesttag: +TAG=2_flota 2.9 >>> m.afeg_vehicle(Autonom('JT56', 0)) >>> len(m) # doctesttag: +TAG=2_flota 5 >>> m[4].vel # doctesttag: +TAG=2_flota 0 >>> m.afeg_vehicle(Autonom('JT56', 15)) >>> len(m) # doctesttag: +TAG=2_flota 5 >>> m[4].vel # doctesttag: +TAG=2_flota 15 Classes: AutonomsTop -------------------- >>> from autonomstop import AutonomTop >>> b1 = AutonomTop('MN67', 30, 100, 3) >>> b1.id, b1.vel, b1.tmax, b1.trepos # doctesttag: +TAG=2_autonomstop ('MN67', 30, 100, 3) >>> b1.durada(100) # doctesttag: +TAG=2_autonomstop datetime.timedelta(seconds=12000) >>> b2 = AutonomTop('HR45', 22, 3, 4) >>> b2.id, b2.vel, b2.tmax, b2.trepos # doctesttag: +TAG=2_autonomstop ('HR45', 22, 3, 4) >>> b2.durada(100) # doctesttag: +TAG=2_autonomstop datetime.timedelta(seconds=30763, microseconds=636364) >>> b2.durada(2111) # doctesttag: +TAG=2_autonomstop datetime.timedelta(days=9, seconds=14236, microseconds=363636) >>> b2.durada(101) # doctesttag: +TAG=2_autonomstop datetime.timedelta(seconds=30927, microseconds=272727) >>> b2.durada(111) # doctesttag: +TAG=2_autonomstop datetime.timedelta(seconds=32563, microseconds=636364) >>> b3 = AutonomTop('JW12', 15, 2, 1) >>> b3.id, b3.vel, b3.tmax, b3.trepos # doctesttag: +TAG=2_autonomstop ('JW12', 15, 2, 1) >>> b3.durada(100) # doctesttag: +TAG=2_autonomstop datetime.timedelta(seconds=34800) >>> b3.durada(2111) # doctesttag: +TAG=2_autonomstop datetime.timedelta(days=8, seconds=67440) >>> b3.durada(2000) # doctesttag: +TAG=2_autonomstop datetime.timedelta(days=8, seconds=26400) >>> b3.durada(111) # doctesttag: +TAG=2_autonomstop datetime.timedelta(seconds=37440) Grafs ------ Els exemples que compten per la nota són només els que van seguits de ``# doctesttag: +TAG`` >>> import networkx as nx >>> def crea_xarxa_metro(n=10): ... g = nx.Graph() ... linies = [ ... ['AA', 'a1', '12', 'a2', 'a3', '14', 'a4'] , ... ['BB', 'b1', '12', 'b2', 'b3', 'b4', '14', 'b5'] , ... ['CC', 'c1', '14', 'c2', '12', 'c3'] , ... ['DD', 'd1', 'a2', '12', 'd2', 'd3', 'd4'] , ... ['L1', '10', '11', '12', '13', '14', '15'] , ... ['L2', '20', '11', '22', '23', '24', '26', '27', '14', '28'] , ... ['L3', '30', '11', '32', '33', '13', '35', '36', '37'] , ... ['L4', '40', '11', '44', '45', '46', '13', '48'] , ... ['L5', '50', '14', '51', '52', '53', '54', '55', '56', '11', '57', '58'] , ... ['XX', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6'] , ... ] ... for lin in linies[:n]: ... nx.add_path(g, lin[1:], linia=lin[0]) ... return g >>> from mes_metro import trajecte_alternatiu >>> g = crea_xarxa_metro() >>> trajecte_alternatiu(g, 'a2', 'a3') # doctesttag: +TAG=3_trajecte_alternatiu ['a2', '12', 'c2', '14', 'a3'] >>> g = crea_xarxa_metro() >>> trajecte_alternatiu(g, '14', 'a4') # doctesttag: +TAG=3_trajecte_alternatiu [] >>> g = crea_xarxa_metro() >>> trajecte_alternatiu(g, 'b2', '12') # doctesttag: +TAG=3_trajecte_alternatiu ['b2', 'b3', 'b4', '14', 'c2', '12'] >>> g = crea_xarxa_metro() >>> trajecte_alternatiu(g, 'c2', '12') # doctesttag: +TAG=3_trajecte_alternatiu ['c2', '14', '13', '12'] >>> g = crea_xarxa_metro() >>> trajecte_alternatiu(g, 'a2', '12') # doctesttag: +TAG=3_trajecte_alternatiu ['a2', 'a3', '14', 'c2', '12'] >>> trajecte_alternatiu(g, '12', '11') # doctesttag: +TAG=3_trajecte_alternatiu ['12', '13', '33', '32', '11'] >>> trajecte_alternatiu(g, '27', '14') # doctesttag: +TAG=3_trajecte_alternatiu ['27', '26', '24', '23', '22', '11', '12', 'c2', '14'] >>> trajecte_alternatiu(g, '33', '13') # doctesttag: +TAG=3_trajecte_alternatiu ['33', '32', '11', '12', '13'] >>> trajecte_alternatiu(g, '52', '51') # doctesttag: +TAG=3_trajecte_alternatiu ['52', '53', '54', '55', '56', '11', '12', 'c2', '14', '51'] >>> trajecte_alternatiu(g, '14', '51') # doctesttag: +TAG=3_trajecte_alternatiu ['14', 'c2', '12', '11', '56', '55', '54', '53', '52', '51'] Recursivitat: verificacio ------------------------- >>> import datetime >>> from date_checking import verificacio >>> l = [] >>> verificacio(l) # doctesttag: +TAG=4_verificacio (-1, -1) >>> l = [] >>> l.append((datetime.date (2023, 1, 20), datetime.date (2023, 1, 25))) >>> verificacio(l) # doctesttag: +TAG=4_verificacio (-1, -1) >>> l = [] >>> l.append((datetime.date (2023, 1, 20), datetime.date (2023, 1, 25))) >>> l.append((datetime.date (2023, 1, 20), datetime.date (2023, 1, 20))) >>> verificacio(l) # doctesttag: +TAG=4_verificacio (-1, -1) >>> l = [] >>> l.append((datetime.date (2023, 1, 20), datetime.date (2023, 1, 25))) >>> l.append((datetime.date (2023, 1, 20), datetime.date (2023, 1, 20))) >>> l.append((datetime.date (2023, 1, 20), datetime.date (2023, 1, 19))) >>> verificacio(l) # doctesttag: +TAG=4_verificacio (2, -1) >>> l = [] >>> l.append((datetime.date (2023, 1, 20), datetime.date (2023, 1, 25))) >>> l.append((datetime.date (2023, 1, 20), datetime.date (2023, 1, 20))) >>> l.append((datetime.date (2023, 1, 20), datetime.date (2023, 1, 19))) >>> l.append((datetime.date (2023, 1, 20), datetime.date (2023, 1, 15))) >>> verificacio(l) # doctesttag: +TAG=4_verificacio (2, -1) >>> l = [] >>> l.append((datetime.date (2023, 1, 20), datetime.date (2023, 1, 25))) >>> l.append((datetime.date (2023, 1, 25), datetime.date (2023, 1, 30))) >>> l.append((datetime.date (2023, 1, 20), datetime.date (2023, 1, 20))) >>> l.append((datetime.date (2023, 1, 30), datetime.date (2023, 2, 1))) >>> l.append((datetime.date (2023, 1, 30), datetime.date (2023, 2, 25))) >>> verificacio(l) # doctesttag: +TAG=4_verificacio (-1, -1) Pandas: electro1 ---------------- >>> import pandas as pd >>> from electro import electro1 >>> df = pd.read_csv('consum_elect.csv', dtype = {'Codi_Postal': str}) >>> electro1(df, 'Residencial', '0-6') # doctesttag: +TAG=5_electro_1 ('2022-02-18', '08008', 8934) >>> electro1(df, 'Residencial', '6-12') # doctesttag: +TAG=5_electro_1 ('2022-01-01', '08008', 10246) >>> electro1(df, 'Residencial', '12-18') # doctesttag: +TAG=5_electro_1 ('2022-01-01', '08008', 12108) >>> electro1(df, 'Indústria', '0-6') # doctesttag: +TAG=5_electro_1 ('2022-03-30', '08001', 659) >>> electro1(df, 'Indústria', '6-12') # doctesttag: +TAG=5_electro_1 ('2022-01-01', '08016', 842) >>> electro1(df, 'Indústria', '18-24') # doctesttag: +TAG=5_electro_1 ('2022-01-01', '08011', 930) >>> electro1(df, 'Serveis', '0-6') # doctesttag: +TAG=5_electro_1 ('2022-03-27', '08009', 13436) >>> electro1(df, 'Serveis', '6-12') # doctesttag: +TAG=5_electro_1 ('2022-01-01', '08012', 16644) >>> electro1(df, 'Serveis', '12-18') # doctesttag: +TAG=5_electro_1 ('2022-03-27', '08009', 19521) >>> electro1(df, 'No especificat', '6-12') # doctesttag: +TAG=5_electro_1 ('2022-03-20', '08015', 11) >>> electro1(df, 'No especificat', '12-18') # doctesttag: +TAG=5_electro_1 ('2022-03-13', '08015', 10) >>> electro1(df, 'No especificat', '18-24') # doctesttag: +TAG=5_electro_1 ('2022-03-06', '08015', 10) Pandas: electro2 ---------------- >>> from electro import electro2 >>> df = pd.read_csv('consum_elect.csv', dtype = {'Codi_Postal': str}) >>> se1 = electro2(df, 1) >>> type(se1) # doctesttag: +TAG=5_electro_2 >>> se1 = se1.apply(int).sort_values(ascending= False) >>> se1 # doctesttag: +TAG=5_electro_2 Sector_Economic Serveis 53 Residencial 41 Indústria 5 No especificat 0 Name: Valor, dtype: int64 >>> se2 = electro2(df, 2).sort_values(ascending= False) >>> se2 = se2.apply(int) >>> se2 # doctesttag: +TAG=5_electro_2 Sector_Economic Serveis 55 Residencial 38 Indústria 5 No especificat 0 Name: Valor, dtype: int64 >>> df1 = df[df['Tram_Horari'] == '12-18'] >>> se3 = electro2(df1, 1) >>> se3 = se3.apply(lambda x: round(x, 2)) >>> se3 # doctesttag: +TAG=5_electro_2 Sector_Economic Serveis 54.99 Residencial 39.88 Indústria 5.04 No especificat 0.09 Name: Valor, dtype: float64 >>> se4 = electro2(df1, 2) >>> se4 = se4.apply(lambda x: round(x, 2)) >>> se4 # doctesttag: +TAG=5_electro_2 Sector_Economic Serveis 57.98 Residencial 36.54 Indústria 5.38 No especificat 0.10 Name: Valor, dtype: float64 >>> se5 = electro2(df1, 3) >>> se5 = se5.apply(lambda x: round(x, 2)) >>> se5 # doctesttag: +TAG=5_electro_2 Sector_Economic Serveis 58.31 Residencial 36.18 Indústria 5.40 No especificat 0.11 Name: Valor, dtype: float64