-
Notifications
You must be signed in to change notification settings - Fork 0
Unit Tests 🔍
In questa sezione verrai introdotto all'installazione delle dipendenze necessarie e al come avviare gli unit tests.
Per installare le dipendenze necessarie assicurati prima di aver installato l'ambiente di sviluppo (vedi Dev Env). Esegui qundi
make install-test
Una volta che hai installato tutto il necessario potrai avviare i test col comando
make tests
Verranno avviati i test per ogni singolo metodo implementato. Per ognuno di questo noterai che verranno stampati dei numeri, che rappresentano la durata (in secondi) del test ed una stringa:
-
ok
se tutto è andato a buon fine, -
ERROR
se c'è stato un errore nel codice (e.g. import inesistente), -
FAIL
se il risultato finale non è quello desiderato, -
skipped
se il test è stato ignorato per qualche ragione.
Un esempio di output:
test_adamicadar_1 (similarity_methods.test_local.TestLocalSimilarityMethods) ... 0.0 s
ok
test_common_neighbors_2 (similarity_methods.test_local.TestLocalSimilarityMethods) ... 12.39 s
ok
test_cosine_3 (similarity_methods.test_local.TestLocalSimilarityMethods) ... skipped 'Non è presente in scikit-network'
Per testare i vari metodi sono stati individuati 3 diversi dataset con difficoltà (e dimensioni) incrementali:
-
1
(easy): toy dataset House di scikit-network, una matrice di adiacenza5x5
con6
archi -
2
(medium): toy dataset Karate Club di scikit-network, una matrice di adiacenza34x34
con78
archi -
3
(hard): ego-facebook dataset, una matrice di adiacenza~3000x3000
con3000
archi
Ogni test è chiamato nel seguente modo:
test_nomedelmetodo_tipoditest()
Sono definiti 4 tipologie differenti di test che possono essere individuate dal nome che segue il nome del test:
-
1
: test più semplice utilizzato solo per controllare che il metodo funzioni. Utilizza il dataset easy. -
2
: test di media difficoltà per controllare la velocità del metodo. Utilizza il dataset medium. -
3
: test di difficoltà alta dove il metodo, oltre a ritornare un risultato consono, deve farlo entro un limite di tempo (generalmente5 minuti
) per non essere considerato fallito. Utilizza il dataset hard. -
time
: test per quei metodi che non hanno un altro metodo già implementato con cui essere confrontati. Devono terminare l'esecuzione entro il tempo limite e devono ritornare un valore diverso daNone
.