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

Auron (15880 points)
32 126 194
asked Oct 16, 2017 in Funzionamento degli homework by Auron (15,880 points)
recategorized Oct 18, 2017 by andrea.sterbini
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,096 views
closed with note: answered

1 Answer

Best answer
edoardo (7090 points)
13 52 67
answered Oct 16, 2017 by edoardo (7,090 points)
selected Oct 16, 2017 by andrea.sterbini

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)
13 52 67
commented Oct 16, 2017 by edoardo (7,090 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)
32 126 194
commented Oct 16, 2017 by Auron (15,880 points)
MA SEI UN DIO!
Potrei ringraziarti per vite intere, ma la mia suddetta affermazione dovrebbe rendere l'idea :P
edoardo (7090 points)
13 52 67
commented Oct 16, 2017 by edoardo (7,090 points)
Ahahahah, non esageriamo!
Auron (15880 points)
32 126 194
commented Oct 16, 2017 by Auron (15,880 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)
13 52 67
commented Oct 17, 2017 by edoardo (7,090 points)
felice d'averti aiutato :-)