Solució del lliurament 1 G10 d’Ampliació d’Informàtica

Organització:

Secció ETSEIB, Departament de Ciències de la Computació, UPC

Data:

2 d’octubre de 2024

Durada:

30 minuts

Copyright:

Reconeixement-CompartirIgual 3.0 No adaptada de Creative Commons

Jocs de proves

Els exemples que compten per la nota són només els que van seguits de # doctesttag: +TAG=

>>> from itertools import *

Tests per a suprimiex_n_valors

>>> from suprimeix import suprimeix_n_valors
>>> it1 = iter('pneumonoultramicroscopicsilicovolcanoconiosis')
>>> it2 = suprimeix_n_valors(it1, 'o', 5)
>>> for x in it2:   # doctesttag: +TAG=1_suprimeix_n_valors
...    print(x, end='-')
p-n-e-u-m-n-u-l-t-r-a-m-i-c-r-s-c-p-i-c-s-i-l-i-c-v-o-l-c-a-n-o-c-o-n-i-o-s-i-s-
>>> for x in suprimeix_n_valors((x % 5 for x in range(20)), 1, 4):
...    print(x, end='-')   # doctesttag: +TAG=1_suprimeix_n_valors
0-2-3-4-0-2-3-4-0-2-3-4-0-2-3-4-
>>> for x in suprimeix_n_valors(iter(range(30)), -10, 1000):
...    print(x, end='-')   # doctesttag: +TAG=1_suprimeix_n_valors
0-1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-29-
>>> for x in suprimeix_n_valors(((x*16) % 7 for x in range(20)), 2, 100):
...    print(x, end='-')   # doctesttag: +TAG=1_suprimeix_n_valors
0-4-6-1-3-5-0-4-6-1-3-5-0-4-6-1-3-
>>> it3 = cycle('peeere')
>>> it4 = suprimeix_n_valors(it3, 'e', 15)
>>> it5 = islice(it4, 40)
>>> for x in it5:
...    print(x, end='-')   # doctesttag: +TAG=1_suprimeix_n_valors
p-r-p-r-p-r-p-r-e-p-e-e-e-r-e-p-e-e-e-r-e-p-e-e-e-r-e-p-e-e-e-r-e-p-e-e-e-r-e-p-
>>> it3 = map(lambda x: (x % 6, x % 5), count())
>>> it4 = suprimeix_n_valors(it3, (0,0), 25)
>>> it5 = islice(it4, 100)
>>> for x in it5:
...    print(x, end='-')    # doctesttag: +TAG=1_suprimeix_n_valors
(1, 1)-(2, 2)-(3, 3)-(4, 4)-(5, 0)-(0, 1)-(1, 2)-(2, 3)-(3, 4)-(4, 0)-(5, 1)-(0, 2)-(1, 3)-(2, 4)-(3, 0)-(4, 1)-(5, 2)-(0, 3)-(1, 4)-(2, 0)-(3, 1)-(4, 2)-(5, 3)-(0, 4)-(1, 0)-(2, 1)-(3, 2)-(4, 3)-(5, 4)-(1, 1)-(2, 2)-(3, 3)-(4, 4)-(5, 0)-(0, 1)-(1, 2)-(2, 3)-(3, 4)-(4, 0)-(5, 1)-(0, 2)-(1, 3)-(2, 4)-(3, 0)-(4, 1)-(5, 2)-(0, 3)-(1, 4)-(2, 0)-(3, 1)-(4, 2)-(5, 3)-(0, 4)-(1, 0)-(2, 1)-(3, 2)-(4, 3)-(5, 4)-(1, 1)-(2, 2)-(3, 3)-(4, 4)-(5, 0)-(0, 1)-(1, 2)-(2, 3)-(3, 4)-(4, 0)-(5, 1)-(0, 2)-(1, 3)-(2, 4)-(3, 0)-(4, 1)-(5, 2)-(0, 3)-(1, 4)-(2, 0)-(3, 1)-(4, 2)-(5, 3)-(0, 4)-(1, 0)-(2, 1)-(3, 2)-(4, 3)-(5, 4)-(1, 1)-(2, 2)-(3, 3)-(4, 4)-(5, 0)-(0, 1)-(1, 2)-(2, 3)-(3, 4)-(4, 0)-(5, 1)-(0, 2)-(1, 3)-

Tests per a desnivell_acumulat

>>> from desnivell import desnivell_acumulat
>>> desnivell_acumulat(iter([20, 110, 220, 660, 3020]))  # doctesttag: +TAG=2_desnivell_acumulat
3000
>>> desnivell_acumulat(iter([3200, 2100, 267, 100, -22]))  # doctesttag: +TAG=2_desnivell_acumulat
0
>>> desnivell_acumulat(iter([50] * 6))  # doctesttag: +TAG=2_desnivell_acumulat
0
>>> desnivell_acumulat(iter([0, 100, 0, 200, 0, 300]))  # doctesttag: +TAG=2_desnivell_acumulat
600
>>> l1 = [2000, 2100, 2100, 2100, 2300, 2405, 2510, 2877, 2730,
...       2800, 2680, 2546, 2500, 2566, 2600,
...       2517, 2384, 2242, 2100, 2367, 2380, 2400,
...       2342, 2339, 2272, 2228, 1800]
>>> desnivell_acumulat(iter(l1))  # doctesttag: +TAG=2_desnivell_acumulat
1347
>>> l2 = [10, 100, 20] * 3 + [50, 60] * 4 + [100, 0] * 5
>>> desnivell_acumulat(iter(l2))  # doctesttag: +TAG=2_desnivell_acumulat
780
>>> desnivell_acumulat(iter(l1+l2))  # doctesttag: +TAG=2_desnivell_acumulat
2127
>>> desnivell_acumulat(iter(l1+l1[::-1]))  # doctesttag: +TAG=2_desnivell_acumulat
2894
>>> desnivell_acumulat(iter(l1 * 100))  # doctesttag: +TAG=2_desnivell_acumulat
154500
>>> desnivell_acumulat(iter(l2 * 1000))  # doctesttag: +TAG=2_desnivell_acumulat
789990