Solució del parcial d’Informàtica

Organització:

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

Data:

27 d’octubre de 2022

Copyright:

Reconeixement-CompartirIgual 3.0 No adaptada de Creative Commons

Durada:

1 hora i 10 minuts

Jocs de proves

Edat futura

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

>>> from datetime import date
>>> from astronautes import Astronauta
>>> from edat_futura import edat_futura
>>> edat_futura(Astronauta('Fina', date(1999, 2, 12), 360), date(2034, 2, 11))  # doctesttag: +TAG=1_edat_futura
34
>>> edat_futura(Astronauta('Kim', date(2073, 12, 23), 340), date(2073, 12, 23))  # doctesttag: +TAG=1_edat_futura
0
>>> edat_futura(Astronauta('Roger', date(2014, 3, 31), 560), date(2042, 5, 13)) # doctesttag: +TAG=1_edat_futura
28
>>> edat_futura(Astronauta('Maria', date(2017, 5, 10), 324), date(2052, 12, 23))  # doctesttag: +TAG=1_edat_futura
35
>>> edat_futura(Astronauta('Delfi', date(2017, 3, 31), 435), date(2054, 2, 11))  # doctesttag: +TAG=1_edat_futura
36

Més entrenament

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

>>> from mes_entrenament import mes_entrenament
>>> l = [Astronauta('Roger', date(2004, 12, 1), 240)]
>>> mes_entrenament(l, 720) # doctesttag: +TAG=2_mes_entrenament
''
>>> mes_entrenament(l, 721)       # doctesttag: +TAG=2_mes_entrenament
'Astronauta: Roger - 01/12/2004'
>>> l.append(Astronauta('Maria', date(2004, 11, 3), 267))
>>> mes_entrenament(l, 810)       # doctesttag: +TAG=2_mes_entrenament
'Astronauta: Roger - 01/12/2004'
>>> l.append(Astronauta('Lucas', date(1998, 10, 4), 139))
>>> mes_entrenament(l, 300)       # doctesttag: +TAG=2_mes_entrenament
'Astronauta: Lucas - 04/10/1998'
>>> l2 = []
>>> i = 1
>>> for nom, anyi in zip('abcde', [1995, 1999, 2000, 2004]):
...    l2.append(Astronauta(nom, date(anyi, 2, 2), 200+i*10))
...    i = i+1
...
>>> mes_entrenament(l2, 400)         # doctesttag: +TAG=2_mes_entrenament
''
>>> mes_entrenament(l2, 421)         # doctesttag: +TAG=2_mes_entrenament
'Astronauta: a - 02/02/1995'
>>> mes_entrenament(l2, 441)         # doctesttag: +TAG=2_mes_entrenament
'Astronauta: a - 02/02/1995'
>>> mes_entrenament(l2[1:], 441)         # doctesttag: +TAG=2_mes_entrenament
'Astronauta: b - 02/02/1999'
>>> mes_entrenament(l2[3:], 721)         # doctesttag: +TAG=2_mes_entrenament
'Astronauta: d - 02/02/2004'
>>> l2.append(Astronauta('Nelson', date(2003, 3, 5), 0))
>>> mes_entrenament(l2, 100)               # doctesttag: +TAG=2_mes_entrenament
'Astronauta: Nelson - 05/03/2003'
>>> l2 = l2 + [Astronauta('Kim', date(2013, 5, 31), 800), Astronauta('Judit', date(1999, 7, 1), 240)]
>>> mes_entrenament(l2, 200)               # doctesttag: +TAG=2_mes_entrenament
'Astronauta: Nelson - 05/03/2003'
>>> mes_entrenament(l2[1:], 800)               # doctesttag: +TAG=2_mes_entrenament
'Astronauta: b - 02/02/1999'

Localització

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

>>> from localitzacions import Localitzacio
>>> ubi = Localitzacio('CopiSL', '08028')
>>> ubi.nom   # doctesttag: +TAG=3_localitzacio
'CopiSL'
>>> ubi.codi_postal     # doctesttag: +TAG=3_localitzacio
'08028'
>>> len(ubi)            # doctesttag: +TAG=3_localitzacio
0
>>> ubi.quants_paquets('P1') # doctesttag: +TAG=3_localitzacio
0
>>> ubi.quants_paquets('P2') # doctesttag: +TAG=3_localitzacio
0
>>> ubi['XRT56'] = 'P1'
>>> ubi['XRT56']             # doctesttag: +TAG=3_localitzacio
'P1'
>>> 'XRT56' in ubi and 'HJG45' not in ubi     # doctesttag: +TAG=3_localitzacio
True
>>> ubi['AAB56'] = 'P2'
>>> ubi['POI89'] = 'P1'
>>> 'POI89' in ubi and 'AAB56' in ubi and 'ZZZ90' not in ubi  # doctesttag: +TAG=3_localitzacio
True
>>> len(ubi)                       # doctesttag: +TAG=3_localitzacio
3
>>> ubi.quants_paquets('P1')        # doctesttag: +TAG=3_localitzacio
2
>>> ubi.quants_paquets('2B')         # doctesttag: +TAG=3_localitzacio
0
>>> ubi.quants_paquets('P2')         # doctesttag: +TAG=3_localitzacio
1
>>> ubi.llista_passadis()              # doctesttag: +TAG=3_localitzacio
['P1', 'P2']
>>> list(iter(ubi))                   # doctesttag: +TAG=3_localitzacio
['XRT56', 'AAB56', 'POI89']
>>> ubi['XRT56'] = 'P90'
>>> len(ubi) == 3 and  ubi.llista_passadis()==['P1', 'P2', 'P90']
True
>>> it = iter(ubi)
>>> it == iter(it)                    # doctesttag: +TAG=3_localitzacio
True
>>> next(it)                           # doctesttag: +TAG=3_localitzacio
'XRT56'
>>> list(it)                   # doctesttag: +TAG=3_localitzacio
['AAB56', 'POI89']
>>> ubi['IUT89'] = 'P8'
>>> ubi['WER23'] = 'P8'
>>> ubi['TYR78'] = 'P3'
>>> for e in iter(ubi):                 # doctesttag: +TAG=3_localitzacio
...      print(e, end='-')
...
XRT56-AAB56-POI89-IUT89-WER23-TYR78-
>>> ubi['OOI54'] = 'P1'
>>> ubi['AOI54'] = 'P1'
>>> ubi['QOI54'] = 'P1'
>>> len(ubi)                              # doctesttag: +TAG=3_localitzacio
9
>>> ubi.quants_paquets('P3')              # doctesttag: +TAG=3_localitzacio
1
>>> ubi.quants_paquets('P8')              # doctesttag: +TAG=3_localitzacio
2
>>> ubi.quants_paquets('P1')              # doctesttag: +TAG=3_localitzacio
4
>>> ubi.quants_paquets('P2')              # doctesttag: +TAG=3_localitzacio
1
>>> ubi.quants_paquets('P9')              # doctesttag: +TAG=3_localitzacio
0
>>> ubi.llista_passadis()                 # doctesttag: +TAG=3_localitzacio
['P1', 'P2', 'P3', 'P8', 'P90']
>>> ubi2 = Localitzacio('BubaSL', '08038')
>>> for p in range(1, 3):
...    passadis = 'P{:02}'.format(p)
...    for idp in range(6):
...       paquet = '{:s}-{:02d}'.format(passadis, idp)
...       ubi2[paquet] = passadis
...
>>> it = iter(ubi2)
>>> iter(it) == it                       # doctesttag: +TAG=3_localitzacio
True
>>> list(iter(ubi2))                              # doctesttag: +TAG=3_localitzacio
['P01-00', 'P01-01', 'P01-02', 'P01-03', 'P01-04', 'P01-05', 'P02-00', 'P02-01', 'P02-02', 'P02-03', 'P02-04', 'P02-05']