Tests per TrenExtra >>> from tren import Tren >>> from vago import Vago >>> from trenextra import TrenExtra >>> t = TrenExtra('XXX', 200) >>> t.nom # doctesttag:+TAG=1_trenextra-init 'XXX' >>> t.vmax # doctesttag:+TAG=1_trenextra-init 200 >>> t.quants_capacitat(30) # doctesttag:+TAG=1_trenextra-cap 0 >>> t.afegir_vago(Vago('v1', 8, 18)) >>> t.quants_capacitat(30) # doctesttag:+TAG=1_trenextra-cap 0 >>> t.quants_capacitat(20) # doctesttag:+TAG=1_trenextra-cap 1 >>> t.afegir_vago(Vago('v2', 2, 10)) >>> t.afegir_vago(Vago('v3', 14, 11)) >>> t.afegir_vago(Vago('v4', 15, 12)) >>> t.quants_capacitat(20) # doctesttag:+TAG=1_trenextra-cap 3 >>> t.quants_capacitat(25) # doctesttag:+TAG=1_trenextra-cap 3 >>> t.quants_capacitat(26) # doctesttag:+TAG=1_trenextra-cap 2 >>> t2 = TrenExtra('YYY', 130) >>> t2.nom # doctesttag:+TAG=1_trenextra-init 'YYY' >>> t2.vmax # doctesttag:+TAG=1_trenextra-init 130 >>> t2.quants_capacitat(30) # doctesttag:+TAG=1_trenextra-cap 0 >>> t2.afegir_vago(Vago('v11', 18, 18)) >>> t2.quants_capacitat(30) # doctesttag:+TAG=1_trenextra-cap 1 >>> t2.quants_capacitat(100) # doctesttag:+TAG=1_trenextra-cap 0 >>> t2.afegir_vago(Vago('v21', 2, 10)) >>> t2.quants_capacitat(30) # doctesttag:+TAG=1_trenextra-cap 1 >>> t2.quants_capacitat(10) # doctesttag:+TAG=1_trenextra-cap 2 >>> t2.afegir_vago(Vago('v31', 24, 11)) >>> t2.afegir_vago(Vago('v41', 25, 12)) >>> t2.quants_capacitat(20) # doctesttag:+TAG=1_trenextra-cap 3 >>> t2.quants_capacitat(10) # doctesttag:+TAG=1_trenextra-cap 4 >>> t2.quants_capacitat(35) # doctesttag:+TAG=1_trenextra-cap 3 >>> t2.quants_capacitat(36) # doctesttag:+TAG=1_trenextra-cap 2 >>> t2.quants_capacitat(37) # doctesttag:+TAG=1_trenextra-cap 1 Tests per puntrec >>> from punt2D import Punt2D >>> from puntrec import punt_mes_allunyat >>> llista = [] >>> punt = Punt2D(0, 0) >>> p1, p2, p3, p4, p5, p6 = Punt2D(3, 4), Punt2D(-3, -4), Punt2D(7, 7), Punt2D(0, 3), Punt2D(3, 0), Punt2D(8, 3) >>> llista = [p1] >>> punt_mes_allunyat(llista, punt) # doctesttag:+TAG=2_puntrec (3, 4) >>> llista == [p1] # doctesttag:+TAG=2_puntrec True >>> llista.append(p2) >>> punt_mes_allunyat(llista, punt) # doctesttag:+TAG=2_puntrec (3, 4) >>> llista == [p1, p2] # doctesttag:+TAG=2_puntrec True >>> llista.extend([p3, p4, p5, p6]) >>> punt_mes_allunyat(llista, punt) # doctesttag:+TAG=2_puntrec (7, 7) >>> llista = [Punt2D(1.5, 1.5), Punt2D(5.6, 8.9), Punt2D(100, 100), Punt2D(20, 30)] >>> punt_mes_allunyat(llista, Punt2D(-1, 3)) # doctesttag:+TAG=2_puntrec (100, 100) >>> punt_mes_allunyat(llista, Punt2D(100, 100)) # doctesttag:+TAG=2_puntrec (1.5, 1.5) >>> punt_mes_allunyat(llista, Punt2D(20, 30)) # doctesttag:+TAG=2_puntrec (100, 100) Tests per grafs: avis >>> import networkx as nx >>> from datetime import date >>> def afegir_persona(g, nom, data, mare, pare): ... g.add_node(nom, naix=data) ... if mare != '': ... g.add_edge(mare, nom) ... if pare != '': ... g.add_edge(pare, nom) >>> g = nx.DiGraph() >>> afegir_persona(g, 'A1', date(1911, 12, 1), '', '') >>> afegir_persona(g, 'A2', date(1911, 11, 3), '', '') >>> afegir_persona(g, 'A3', date(1912, 5, 21), '', '') >>> afegir_persona(g, 'A4', date(1912, 6, 22), '', '') >>> afegir_persona(g, 'A5', date(1913, 10, 21), '', '') >>> afegir_persona(g, 'A6', date(1915, 6, 10), '', '') >>> afegir_persona(g, 'E4', date(2022, 7, 10), 'D6', '') >>> afegir_persona(g, 'B1', date(1930, 8, 11), '', '') >>> afegir_persona(g, 'B2', date(1931, 1, 17), 'A1', 'A2') >>> afegir_persona(g, 'B3', date(1930, 3, 5), 'A1', 'A2') >>> afegir_persona(g, 'B4', date(1934, 2, 6), 'A3', 'A6') >>> afegir_persona(g, 'B5', date(1931, 7, 12), 'A4', 'A5') >>> afegir_persona(g, 'B6', date(1932, 4, 10), '', '') >>> afegir_persona(g, 'B7', date(1930, 1, 11), '', '') >>> afegir_persona(g, 'B8', date(1933, 9, 8), '', '') >>> afegir_persona(g, 'C1', date(1961, 7, 21), 'B1', 'B2') >>> afegir_persona(g, 'C2', date(1962, 8, 25), 'B7', 'B8') >>> afegir_persona(g, 'C3', date(1963, 2, 22), 'B3', 'B4') >>> afegir_persona(g, 'C4', date(1960, 3, 2), 'B5', 'B6') >>> afegir_persona(g, 'C5', date(1965, 11, 4 ), 'B5', 'B6') >>> afegir_persona(g, 'D1', date(1991, 10, 6), '', '') >>> afegir_persona(g, 'D2', date(1992, 12, 31), 'C1', 'C2') >>> afegir_persona(g, 'D3', date(1993, 10, 30), 'C1', 'C2') >>> afegir_persona(g, 'D4', date(1991, 11, 21), 'C3', '') >>> afegir_persona(g, 'D5', date(1990, 12, 2), 'C4', '') >>> afegir_persona(g, 'D6', date(1991, 2, 3), 'C4', '') >>> afegir_persona(g, 'E1', date(2020, 5, 29), 'D1', 'D2') >>> afegir_persona(g, 'E2', date(2021, 10, 17), 'D4', 'D5') >>> afegir_persona(g, 'E3', date(2022, 5, 8), 'D4', 'D5') >>> afegir_persona(g, 'E4', date(2022, 7, 10), 'D6', '') >>> from familiars import avis >>> avis(g, 'E2') # doctesttag: +TAG=3_familiars-avis [('C3', datetime.date(1963, 2, 22)), ('C4', datetime.date(1960, 3, 2))] >>> avis(g, 'E3') # doctesttag: +TAG=3_familiars-avis [('C3', datetime.date(1963, 2, 22)), ('C4', datetime.date(1960, 3, 2))] >>> avis(g, 'E4') # doctesttag: +TAG=3_familiars-avis [('C4', datetime.date(1960, 3, 2))] >>> avis(g, 'D2') # doctesttag: +TAG=3_familiars-avis [('B1', datetime.date(1930, 8, 11)), ('B2', datetime.date(1931, 1, 17)), ('B7', datetime.date(1930, 1, 11)), ('B8', datetime.date(1933, 9, 8))] >>> avis(g, 'D3') # doctesttag: +TAG=3_familiars-avis [('B1', datetime.date(1930, 8, 11)), ('B2', datetime.date(1931, 1, 17)), ('B7', datetime.date(1930, 1, 11)), ('B8', datetime.date(1933, 9, 8))] >>> avis(g, 'D6') # doctesttag: +TAG=3_familiars-avis [('B5', datetime.date(1931, 7, 12)), ('B6', datetime.date(1932, 4, 10))] >>> avis(g, 'C3') # doctesttag: +TAG=3_familiars-avis [('A1', datetime.date(1911, 12, 1)), ('A2', datetime.date(1911, 11, 3)), ('A3', datetime.date(1912, 5, 21)), ('A6', datetime.date(1915, 6, 10))] >>> avis(g, 'C5') # doctesttag: +TAG=3_familiars-avis [('A4', datetime.date(1912, 6, 22)), ('A5', datetime.date(1913, 10, 21))] Tests per grafs: matben >>> from familiars import matben >>> matben(g) # doctesttag: +TAG=3_familiars-matbengeneral ('A2', 'E3') >>> g.remove_node('A2') >>> g.remove_node('E3') >>> matben(g) # doctesttag: +TAG=3_familiars-matbengeneral ('A4', 'E4') >>> g.remove_node('E1') >>> g.remove_node('E2') >>> g.remove_node('E4') >>> matben(g) # doctesttag: +TAG=3_familiars-matbenvabesensehaspath ('A1', 'D3') >>> g.remove_node('D3') >>> matben(g) # doctesttag: +TAG=3_familiars-matbenvabesensehaspath ('A1', 'D2') >>> g.remove_node('A1') >>> g.remove_node('A3') >>> matben(g) # doctesttag: +TAG=3_familiars-matbengeneral ('A4', 'D6') >>> g.remove_node('A4') >>> g.remove_node('A5') >>> g.remove_node('A6') >>> matben(g) # doctesttag: +TAG=3_familiars-matbenvabesensehaspath ('B7', 'D2') >>> g.remove_node('B7') >>> matben(g) # doctesttag: +TAG=3_familiars-matbengeneral ('B1', 'D2') >>> g.remove_node('B1') >>> matben(g) # doctesttag: +TAG=3_familiars-matbengeneral ('B2', 'D2') Tests per meteo: var_temp_plujos >>> import pandas as pd >>> df1 = pd.read_csv('meteo1.csv', index_col=0) >>> from meteo import var_temp_plujos >>> round(var_temp_plujos(df1), 1) # doctesttag: +TAG=4_pandas-plujos 4.9 >>> round(var_temp_plujos(df1[:10]), 1) # doctesttag: +TAG=4_pandas-plujos 13.2 >>> round(var_temp_plujos(df1[:15]), 1) # doctesttag: +TAG=4_pandas-plujos 4.3 >>> round(var_temp_plujos(df1[10:20]), 1) # doctesttag: +TAG=4_pandas-plujos 10.5 >>> round(var_temp_plujos(df1[15:25]), 1) # doctesttag: +TAG=4_pandas-plujos 3.5 Tests per meteo: direccions_vent >>> df1 = pd.read_csv('meteo1.csv', index_col=0) >>> from meteo import direccions_vent >>> d = direccions_vent(df1) >>> d == {'???': 7, 'NO': 5, 'ONO': 4, 'SE': 3, 'N': 3, 'E': 2, 'SEE': 2, 'SO': 2, 'S': 1, 'O': 1, ' ': 1} # doctesttag: +TAG=4_pandas-vent True >>> d = direccions_vent(df1[:10]) >>> d == {'NO': 2, 'SO': 2, 'ONO': 1, 'SE': 1, 'SEE': 1, 'S': 1, 'O': 1, '???': 1} # doctesttag: +TAG=4_pandas-vent True >>> d = direccions_vent(df1[10:20]) >>> d == {'SE': 2, 'NO': 2, 'E': 2, ' ': 1, 'SEE': 1, 'N': 1, '???': 1} # doctesttag: +TAG=4_pandas-vent True >>> d = direccions_vent(df1[20:]) >>> d == {'???': 5, 'ONO': 3, 'N': 2, 'NO': 1} # doctesttag: +TAG=4_pandas-vent True >>> d = direccions_vent(df1[::2]) >>> d == {'???': 5, 'NO': 2, 'SO': 2, 'ONO': 2, 'SE': 2, 'N': 1, ' ': 1, 'E': 1} # doctesttag: +TAG=4_pandas-vent True