Attualmente sto provando a scrivere un mio test unitario. Il test unitario che sto scrivendo è principalmente per l'algebra lineare (so che ci sono grandi pacchetti là fuori, ma voglio usare il mio per il mio progetto). La mia algebra lineare attuale è composta da my_vector.hpp/cpp
(3d) e my_matrix.h/cpp
.
Quindi sto attualmente scrivendo un test_vector.cpp
e test_matrix.cpp
che testeranno le caratteristiche di my_vector e my_matrix.
Per quanto riguarda il test della classe vector
, all'interno di test_vector.cpp eseguo il test delle funzioni aggiungi, sottrazione, divisione, dotprodotto, ecc. di my_vector.
Come faccio:
// test_vector.cpp
void test_add(){
my_vector a(2.0, 1.1, 2.1);
my_vector b(2.1, 2.0, 1.1);
// manually computed by adding a and b by hand
//
my_vector expected(4.1, 3.1, 3.2);
my_vector c = a + b;
assert(c.x == expected.x);
assert(c.y == expected.y);
assert(c.z == expected.z);
}
void test_sub(){
.....
}
int main(){
test_add();
test_sub();
....
return 0;
}
Anch'io sono simile a test_matrix.cpp.
In my_vector expected(4.1, 3.1, 3.2);
ho prima aggiunto manualmente 2.0, 1.1, 2.1 di a
e 2.1, 2.0, 1.1 di b
e poi confrontato con il valore calcolato dopo aver utilizzato c = a + b
. Pensi che questo sia un modo corretto per fare test unitari. Lo trovo poco ingombrante dal momento che devo fare il calcolo a mano per altri test complessi come la rotazione, il cross product ecc. Questo tipo di sensazione che sto facendo qualcosa di sbagliato.
Sto facendo qualcosa di sbagliato? Per favore fatemi sapere, sono aperto per eventuali suggerimenti.