Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Calcolare la complessità ciclomatica (Intricatezza) e il Tempo di Esecuzione

Auron (15880 points)
50 126 194
in Funzionamento degli homework by (15.9k points)
recategorized by
Pongo direttamente una domanda, che è più visibile al mondo intero rispetto ad un commento...
Come posso calcolare la votazione (da A ad F) relativa all'intricatezza del codice e il Tempo di Esecuzione esatto?
E' stata nominata una certa utility Radon (per l'intricatezza, non so se valga anche per il tempo), ma come si usa?

Lo chiedo così possiamo verificare in ogni momento la bontà del nostro codice :D
1.8k views
closed with the note: answered

1 Answer

Best answer
edoardo (7090 points)
19 52 67
by (7.1k points)
selected by

Ciao! Io l'ho fatto ieri sera, ti basterà installare il pacchetto radon e da cmd eseguire radon cc -a -s ./program01.py

https://pypi.python.org/pypi/radon qui trovi il pacchetto radon e come installarlo!

Riceverai lo stesso output che vedi nel visualize. 

Per il tempo di esecuzione devi importare timeit dalla console python ed eseguire

python3 -m timeit -n 10 -r 1 -s 'import grade01' 'grade01.runtests(grade01.tests)'

Ora ti ho copiato i test sul program01 e grade01, ovviamente basta modificare 01 in 02 per provare il secondo. Se dovessi avere problemi nel secondo comando, anziché usare ' usa " per import e run tests 

edoardo (7090 points)
19 52 67
by (7.1k points)
python3 != python quindi metti python! Se non dovesse andare (tipo qualche errore sul timeit che non hai o roba simile) fai così:
digita python poi -> import timeit e infine ->  exit() e rifai quel codice python -m timeit -n 10 -r 1 -s 'import grade01' 'grade01.runtests(grade01.tests)'

Ahhh, se ti dà un problema tipo "EOL" scrivi così:  python -m timeit -n 10 -r 1 -s "import grade01" "grade01.runtests(grade01.tests)"

windows è maledetto >:(
Auron (15880 points)
50 126 194
by (15.9k points)
MA SEI UN DIO!
Potrei ringraziarti per vite intere, ma la mia suddetta affermazione dovrebbe rendere l'idea :P
edoardo (7090 points)
19 52 67
by (7.1k points)
Ahahahah, non esageriamo!
Auron (15880 points)
50 126 194
by (15.9k points)
Grazie mille davvero, per aver risolto il problema certo, ma soprattutto per la tua immensa disponibilità :)
Se tutti aiutassero come hai fatto tu con me, questo sarebbe certamente un mondo migliore!
Ci vediamo sul Forum xD
edoardo (7090 points)
19 52 67
by (7.1k points)
felice d'averti aiutato :-)