[C] Visual studio e liste

Messaggioda desterix95 » 26/06/2017, 16:29

Buonasera, ogni volta che scrivo una funzione che riguarda una lista non so come scrivere il $text(main())$ in visual studio per controllarla e verificare che sia corretta.
Ad esempio, se voglio scrivere una funzione che mi crea una nuova lista con i valori ordinati in ordine crescente, come lo scrivo in codice il $text(main())$? Sicuramente devo dichiarare un puntatore alla lista $text(struct list *lista;)$ e poi?
Grazie
desterix95
Junior Member
Junior Member
 
Messaggio: 65 di 222
Iscritto il: 10/07/2015, 14:37

Re: [C] Visual studio e liste

Messaggioda apatriarca » 27/06/2017, 12:28

Non esiste un'unica risposta alla tua domanda. Ci sono tantissime cose che puoi testare della tua funzione e quindi numerosi test possibili. In generale ti consiglio di scrivere i tuoi test come semplici funzioni che restituiscono un valore booleano (o intero) a seconda che il test sia positivo o negativo. Puoi quindi richiamare questa funzione nel tuo main e verificarne il risultato. Alcuni esempi di test che puoi fare per la tua funzione sono:
1. Inserire un singolo elemento in una lista vuota e verificare che ci sia un singolo elemento uguale a quello dato.
2. Inserire un elemento in una lista ordinata e verificare che sia finito nella posizione corretta.
3. Generare una lista di numeri casuali e verificare che siano ordinati.
4. Generare una lista di numeri casuali e verificare che gli elementi inseriti siano effettivamente quelli in input.
5. Inserire un certo numero di valori e verificare che la lista abbia la lunghezza desiderata
6. ..

Un esempio di un main di questo tipo potrebbe essere il seguente:
Codice:
struct TestInfo {
    const char *name;
    int (*test_func)();
};
struct TestInfo tests[] =
    { { "Inserimento in lista vuota", test_lista_vuota},
      { "Inserimento valori casuali", test_inserimento_casuali} };
int test_number = sizeof(tests)/sizeof(tests[0]);

int main()
{
    int failed = 0;
    for (int i = 0; i < test_number; ++i) {
        if (!tests[i].test_func()) {
            printf("FAILED TEST: %s.\n", tests[i].name);
            ++failed;
        }
    }
    if (!failed) {
        puts("All tests has succeded");
    }

    return 0;
}
apatriarca
Moderatore
Moderatore
 
Messaggio: 4701 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite