[AVVISO] Homework 6 di recupero (scadenza 4-5 gg prima dell'esame)

andrea.sterbini (172340 points)
510 927 1776
asked Dec 8, 2019 in Avvisi by andrea.sterbini (172,340 points)
edited Dec 9, 2019 by andrea.sterbini

Questo HW è dedicato a chi non ha completato lo HW6obb, o gli è stato annullato, o vuole alzarne il voto (vale il massimo dei 2).

ATTENZIONE

  • eventuali correzioni verranno inserite qui
  • NOTA: il programma test_01.py DISATTIVA la funzione print, quindi non vedrete stampe.
    Per riattivare le stampe ed eliminare il timeout settate la variabile DEBUG=True nel file test_01.py

Istruzioni

Per svolgere l'homework:

  • Installate le librerie necessarie (compresa la libreria stopit)
  • Scaricate il file HW6rec.zip e scompattatelo in una directory
    • Lo zip contiene
      • l'esercizio da svolgere, descritto all'inizio del file program01.py
        • l'esercizio consiste nel realizzare, se necessario definendo funzioni ausiliarie, la funzione descritta all'inizio del file, completandone il codice
      • altre librerie e file necessari ad eseguire i test sulla vostra macchina
  • Posizionatevi nella directory HW4rec creata unzippando l'archivio ed editate il file program01.py completando la funzione indicata
  • ATTENZIONE: il programma NON DEVE eseguire nessun input() o print(), infatti riceve tutte le informazioni di cui ha bisogno tramite i parametri della funzione che dovete completare e torna il risultato con return.
  • ATTENZIONE: SONO VIETATE le variabili globali o qualsiasi altro meccanismo di caching per fregare sui tempi.
  • ATTENZIONE: SONO VIETATE tutte le altre librerie a parte quelle già importate nel testo.
  • ATTENZIONE: E' VIETATO copiare codice dalle librerie di sistema.
  • ATTENZIONE: i vostri programmi NON DEVONO sfruttare eventuali periodicità o caratteristiche strutturali degli input, ma devono essere applicabili a qualsiasi input valido.
  • ATTENZIONE: NON LASCIATE ISTRUZIONI DI TEST NEL PROGRAMMA, A MENO CHE NON SIANO DOPO UNA RIGA
    • if __name__ == '__main__':
      • vostre istruzioni di test che in questo modo non vengono eseguite durante l'import del file
  • Per eseguire i test
    • aprite una finestra "Anaconda Prompt" e posizionatevi nella directory HW1opz ottenuta scompattando lo zip
    • eseguite il comando (test senza timeout)
      • pytest test_01.py -v -rA
    • oppure (test con timeout di 1 secondo per ciascun test e con una stampa dei tempi impiegati per eseguire ciascun test)
      • pytest test_01.py -v -rA --timeout 1 --durations 0
    • oppure (test con timeout di 1 secondo per ciascun test e stampa dei tempi spesi dal programma nelle 20 funzioni complessivamente più lente)
      • pytest test_01.py -v -rA --timeout 1 --profile
    • Per far fermare i test al primo errore aggiungete l'opzione -x
    • Per chi usa Spyder:
      • è possibile eseguire i test direttamente da dentro Spyder installando il plugin spyder-unittest (ma senza timeout o parametri aggiuntivi)
      • è possibile ottenere i tempi spesi in ciascuna funzione direttamente da dentro Spyder installando il plugin spyder-line-profiler

NOTA: per aprire i file di testo in formato utf8 NON usate Notepad che non riconosce gli accapi Unix ('\n') ma usate Spyder o Notepad++

Consegna

Dovrete consegnare:

  • program01.py: il programma da voi realizzato

La pagina di consegna è https://q2a.di.uniroma1.it/homeworks/delivery?homework=11

Scadenza: 4-5 giorni prima dell'esame

Per permettermi di applicare i test segreti, verificare eventuali somiglianze e calcolare i voti di ammissione all'esame, esaminerò SOLO i programmi consegnati entro 4 giorni PRIMA della data di esame. (esempio: le 23:59 del 24 gennaio per chi fa l'esame il 29 gennaio)

1 Answer

f
federico_modesti (280 points)
0 1 3
answered Oct 14, 2020 by federico_modesti (280 points)

Buonasera professore,

in merito all'homework 6 rec, ho un problema sui test: in pratica se li eseguo singolarmente su spyder, il file di testo generato con le info richieste e il numero di rettangoli individuati sono corretti.

Il problema sta nei test sul prompt che mi genera un AssertionError : Lists differ ['25 [31 chars] 163 61 (219, 104, 145)', '112 20 117 92 (252,[241 chars]39)'] != ['25 [31 chars] 163 153 (219, 104, 145)', '112 20 117 92 (252[242 chars]39)'].

Nella lista che genero e che scrivo sono esattamente le stesse informazioni dei file di test contenuti nella cartella zip dell'homework.

Mi fa sapere come mai?

Grazie.

Federico M.

andrea.sterbini (172340 points)
510 927 1776
commented Oct 14, 2020 by andrea.sterbini (172,340 points)
edited Oct 14, 2020 by andrea.sterbini

Controllo e ti dico. Intanto noto che alcuni degli errori sono dovuti ad accesso a indici non esistenti dell'immagine.

Ho provato a lanciare i test da dentro spyder, caricando nell'editor il file test_01.py e lanciandolo e ugualmente i test non passano.

Come fai a dire che ti passano?

Ran 15 tests in 8.890s

FAILED (failures=9, errors=4)
6 test passed, 9 tests failed

f
federico_modesti (280 points)
0 1 3
commented Oct 14, 2020 by federico_modesti (280 points)
Riguardo all'homework, anche sul mio pc non passo dei test; quello che volevo intendere è che se lancio singolarmente in spyder la funzione per ogni input di file di testo differente, il numero di rettangoli e le info che deve generare sono le stesse dei file di test ma se lancio il tutto sulla prompt ottengo i suoi stessi errori.
andrea.sterbini (172340 points)
510 927 1776
commented Oct 18, 2020 by andrea.sterbini (172,340 points)
Mi manderesti per email uno paio di screenshot di un test che in spyder passa e da command line no?