Els exemples que compten per la nota són només els que van seguits de ``# doctesttag: +TAG`` ------------------------------------------------------------ Esquema del sistema fluvial del joc de proves: A +--B | +--C | | +--D | | +--E | | +--F | +--G | | +--H | | | +--I | +--J | +--K +--L . +--M . +--N . +--O . +--W P +--Q | +--R | +--S | +--T | +--U | +--V . +--X . +--Y . +--Z ------------------------------------------------------------ >>> lrius = [ 'BA', 'CB', 'DC', 'ED', 'FE', ... 'GB', 'HG', 'IB', 'JI', 'KI', ... 'LA', 'ML', 'NL', 'OL', 'WL', ... 'QP', 'RQ', 'SP', 'TS', 'US', ... 'VP', 'XV', 'YX', 'ZX' ] >>> import networkx as nx Test afegeix_cabals ------------------- >>> from rius import afegeix_cabals >>> g1 = nx.DiGraph(lrius) >>> g2 = nx.DiGraph(lrius[:10]) >>> afegeix_cabals(g1, {'A': 1234}) >>> g1.nodes['A'] # doctesttag: +TAG=1_cabals {'cabal': 1234} >>> dcabals = {'B': 10, 'C': 20, 'D': 30, 'E': 40} >>> afegeix_cabals(g2, dcabals) >>> sorted(g2.nodes(data=True)) # doctesttag: +TAG=1_cabals [('A', {}), ('B', {'cabal': 10}), ('C', {'cabal': 20}), ('D', {'cabal': 30}), ('E', {'cabal': 40}), ('F', {}), ('G', {}), ('H', {}), ('I', {}), ('J', {}), ('K', {})] >>> afegeix_cabals(g1, dcabals) >>> sorted(g1.nodes(data=True)) # doctesttag: +TAG=1_cabals [('A', {'cabal': 1234}), ('B', {'cabal': 10}), ('C', {'cabal': 20}), ('D', {'cabal': 30}), ('E', {'cabal': 40}), ('F', {}), ('G', {}), ('H', {}), ('I', {}), ('J', {}), ('K', {}), ('L', {}), ('M', {}), ('N', {}), ('O', {}), ('P', {}), ('Q', {}), ('R', {}), ('S', {}), ('T', {}), ('U', {}), ('V', {}), ('W', {}), ('X', {}), ('Y', {}), ('Z', {})] >>> dcabals = {r:v for r,v in zip('FGHIJK',range(7, 100, 5))} >>> afegeix_cabals(g2, dcabals) >>> sorted(g2.nodes(data=True)) # doctesttag: +TAG=1_cabals [('A', {}), ('B', {'cabal': 10}), ('C', {'cabal': 20}), ('D', {'cabal': 30}), ('E', {'cabal': 40}), ('F', {'cabal': 7}), ('G', {'cabal': 12}), ('H', {'cabal': 17}), ('I', {'cabal': 22}), ('J', {'cabal': 27}), ('K', {'cabal': 32})] >>> afegeix_cabals(g2, {'A':777, 'Z':666, 'W':'hola'}) >>> sorted(g2.nodes(data=True)) # doctesttag: +TAG=1_cabals [('A', {'cabal': 777}), ('B', {'cabal': 10}), ('C', {'cabal': 20}), ('D', {'cabal': 30}), ('E', {'cabal': 40}), ('F', {'cabal': 7}), ('G', {'cabal': 12}), ('H', {'cabal': 17}), ('I', {'cabal': 22}), ('J', {'cabal': 27}), ('K', {'cabal': 32})] >>> afegeix_cabals(g1, {'N':777, 'Ñ':1312, 'W':432}) >>> sorted(g1.nodes(data=True)) # doctesttag: +TAG=1_cabals [('A', {'cabal': 1234}), ('B', {'cabal': 10}), ('C', {'cabal': 20}), ('D', {'cabal': 30}), ('E', {'cabal': 40}), ('F', {}), ('G', {}), ('H', {}), ('I', {}), ('J', {}), ('K', {}), ('L', {}), ('M', {}), ('N', {'cabal': 777}), ('O', {}), ('P', {}), ('Q', {}), ('R', {}), ('S', {}), ('T', {}), ('U', {}), ('V', {}), ('W', {'cabal': 432}), ('X', {}), ('Y', {}), ('Z', {})] Tests max_tributaris -------------------- >>> from rius import max_tributaris >>> g1 = nx.DiGraph(lrius) >>> g2 = nx.DiGraph(lrius[:10]) >>> max_tributaris(g1, 'A') # doctesttag: +TAG=1_tributaris 'B' >>> max_tributaris(g1, 'B') # doctesttag: +TAG=1_tributaris 'C' >>> max_tributaris(g1, 'C') # doctesttag: +TAG=1_tributaris 'D' >>> max_tributaris(g1, 'P') # doctesttag: +TAG=1_tributaris 'V' >>> max_tributaris(g1, 'V') # doctesttag: +TAG=1_tributaris 'X' >>> max_tributaris(g2, 'A') # doctesttag: +TAG=1_tributaris 'B' >>> g1.add_edge('P','B') >>> max_tributaris(g1, 'B') # doctesttag: +TAG=1_tributaris 'P' >>> max_tributaris(g1, 'Q') # doctesttag: +TAG=1_tributaris 'R' >>> nx.add_path(g2, '123456G') >>> max_tributaris(g2, 'G') # doctesttag: +TAG=1_tributaris '6' >>> max_tributaris(g2, 'B') # doctesttag: +TAG=1_tributaris 'G' Tests elimina_n --------------- >>> from eliminacio import elimina_n >>> elimina_n([0, 1, 2, 3, 4, 5, 6, 7, 8], 3) # doctesttag: +TAG=2_elimina [1, 2, 4, 5, 7, 8] >>> elimina_n(list(range(20)), 2) # doctesttag: +TAG=2_elimina [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] >>> elimina_n(list(range(21)), 3) # doctesttag: +TAG=2_elimina [1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 20] >>> elimina_n(elimina_n(list(range(21)), 3), 2) # doctesttag: +TAG=2_elimina [2, 5, 8, 11, 14, 17, 20] >>> elimina_n(list('esternocleidomastoideu'), 4) # doctesttag: +TAG=2_elimina ['s', 't', 'e', 'n', 'o', 'c', 'e', 'i', 'd', 'm', 'a', 's', 'o', 'i', 'd', 'u'] >>> elimina_n(['a'*n for n in range(9)], 7) # doctesttag: +TAG=2_elimina ['a', 'aa', 'aaa', 'aaaa', 'aaaaa', 'aaaaaa', 'aaaaaaaa'] >>> elimina_n([list(range(n%3)) for n in range(10)], 5) # doctesttag: +TAG=2_elimina [[0], [0, 1], [], [0], [], [0], [0, 1], []] >>> elimina_n([ [7] * (n%4) for n in range(20)], 9) # doctesttag: +TAG=2_elimina [[7], [7, 7], [7, 7, 7], [], [7], [7, 7], [7, 7, 7], [], [7, 7], [7, 7, 7], [], [7], [7, 7], [7, 7, 7], [], [7], [7, 7, 7]] >>> elimina_n([1], 567) # doctesttag: +TAG=2_elimina [] >>> elimina_n([], 789) # doctesttag: +TAG=2_elimina [] Tests sensacio_termica ---------------------- >>> import pandas as pd >>> df = pd.read_csv('meteo2.csv', index_col=0) >>> from meteo import sensacio_termica >>> sensacio_termica(df.loc[:10]) # doctesttag: +TAG=3_sensacio_termica DIA 5 0.7 7 1.5 Name: STERM, dtype: float64 >>> a = sensacio_termica(df[:18]) >>> a.values # doctesttag: +TAG=3_sensacio_termica array([ 0.7, 1.5, 2.1, -3.5]) >>> sensacio_termica(df) # doctesttag: +TAG=3_sensacio_termica DIA 5 0.7 7 1.5 16 2.1 18 -3.5 26 -0.9 31 6.4 Name: STERM, dtype: float64 >>> df['V_VENT_MITJ'] = 6.0 >>> sensacio_termica(df.loc[:15]) # doctesttag: +TAG=3_sensacio_termica DIA 1 0.7 2 1.3 3 1.5 4 2.7 5 0.7 6 -0.4 7 1.5 8 2.1 9 -1.7 10 1.3 11 3.0 12 4.1 13 2.5 14 -0.7 15 -0.9 Name: STERM, dtype: float64 >>> sensacio_termica(df) # doctesttag: +TAG=3_sensacio_termica DIA 1 0.7 2 1.3 3 1.5 4 2.7 5 0.7 6 -0.4 7 1.5 8 2.1 9 -1.7 10 1.3 11 3.0 12 4.1 13 2.5 14 -0.7 15 -0.9 16 2.1 17 -2.4 18 -3.5 19 -1.3 20 1.6 21 1.9 22 2.3 23 2.7 24 1.3 25 -1.5 26 -0.9 27 2.9 28 5.0 29 2.3 30 3.9 31 6.4 Name: STERM, dtype: float64 Tests rafegues_vent ------------------- >>> import pandas as pd >>> df = pd.read_csv('meteo2.csv', index_col=0) >>> from meteo import rafegues_vent >>> d = rafegues_vent(df) >>> d == {'E': 40.3, 'N': 27.3, 'NO': 48.0, 'O': 14.0, 'ONO': 51.3, 'S': 16.9, 'SE': 35.6, 'SEE': 24.3, 'SO': 14.1} # doctesttag: +TAG=3_rafegues_vent True >>> d = rafegues_vent(df.loc[:10]) >>> d == {'NO': 13.4, 'O': 14.0, 'ONO': 19.4, 'S': 16.9, 'SE': 16.3, 'SEE': 24.3, 'SO': 14.1} # doctesttag: +TAG=3_rafegues_vent True >>> d = rafegues_vent(df.loc[10:20]) >>> d == {'E': 40.3, 'N': 16.4, 'NO': 48.0, 'SE': 35.6, 'SEE': 24.3} # doctesttag: +TAG=3_rafegues_vent True >>> d = rafegues_vent(df.loc[20:]) >>> d == {'N': 27.3, 'NO': 48.0, 'ONO': 51.3} # doctesttag: +TAG=3_rafegues_vent True >>> d = rafegues_vent(df.loc[::2]) >>> d == {'E': 40.3, 'N': 27.3, 'NO': 40.0, 'ONO': 39.0, 'SE': 35.6, 'SO': 14.1} # doctesttag: +TAG=3_rafegues_vent True