[HOMEWORK] Homework 5 opzionale

andrea.sterbini (172780 points)
513 935 1789
asked Nov 15, 2020 in Avvisi by andrea.sterbini (172,780 points)
edited Nov 26, 2020 by andrea.sterbini

ATTENZIONE

  • eventuali correzioni verranno inserite qui
    • attenzione, i file PNG li dovete creare voi
    • Per una svista il testo indica h come massima x e w come massima y. Vanno invece intese come h=massima y e w=massima x
  • NOTA: per eseguire i test SENZA i controlli ed il timeout modificate test_01.py settando la variabile DEBUG=True

Istruzioni

Per svolgere l'homework:

  • Installate le librerie necessarie (compreso stopit)
  • Scaricate il file HW5opt.zip e scompattatelo in una directory
    • Lo zip contiene
      • l'esercizio da svolgere, descritto all'inizio del file program01.ita.py (in italiano) oppure program01.eng.py (in inglese)
        • 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 HW3opt creata unzippando l'archivio ed rinominate il file program01.ita/eng.py che preferite con il nome program01.py
    • Editate il file program01.py implementando le funzioni necessarie a risolvere l'esercizio.
    • ATTENZIONE: nel file program01.txt NON inserite nè codice nè il vostro nome/id, deve restare anonimo.
    • 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.
    • ATTENZIONE: SONO VIETATE tutte le altre librerie a parte quelle già importate nel testo.
    • 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 ottenuta scompattando lo zip
      • eseguite il comando
        • pytest test_01.py -v -rA
      • oppure (test con una stampa dei tempi impiegati per eseguire ciascun test)
        • pytest test_01.py -v -rA --durations 0
      • oppure (test con stampa dei tempi spesi dal programma nelle 20 funzioni complessivamente più lente)
        • pytest test_01.py -v -rA --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++

    Scadenze: questo homework non ha scadenza

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

    Potete consegnare più volte, vale l'ultima.

    2 Answers

    lwcs (1380 points)
    4 15 26
    answered Nov 15, 2020 by lwcs (1,380 points)
    Buonasera prof.,

    nella traccia del problema quando dobbiamo creare lo sfondo nero c è scritto che dobbiamo prendere come riferimento l altezza massima di un poster +10 e la larghezza massima di un poster +10; a queste coordinate attribuisce ad h la X,mentre alla w la Y.

    Per quanto riguarda invece il fileDiTesto da dare in pasto al nostro programma le coordinate sono date come X la larghezza e Y l altezza. (es. 10, 140 il vertice in basso a sinistra del poster; invece 80, 90 del vertice in alto a destra).

    Quindi mi chiedevo se lo sfondo nero dovremmo farlo di misure con l altezza = alla larghezza massima dei poster e viceversa.
    F
    Federico Rossi (710 points)
    1 2 5
    answered Nov 16, 2020 by Federico Rossi (710 points)
    Buonasera prof.,

    Ho trovato un errore nel file test_01.py ovvero: self.check_open(allowed_filenames_modes={fimm: ['r'], fout:['wb'] }) dovrebbe essere -> self.check_open(allowed_filenames_modes={fimm: ['r'], fout:['wb', 'rb'] }).

    Poiche' avendo solo wb si puo' utilizzare il metodo save ma non il metodo load del file images.
    andrea.sterbini (172780 points)
    513 935 1789
    commented Nov 16, 2020 by andrea.sterbini (172,780 points)
    e perchè dovresti usare il load della immagine se sei tu a doverla creare?