Ho scritto un programma / libreria che ho usato per ottenere risultati in un articolo. (Qui è , ma la mia domanda è generale.) Ho le prove che ho eseguito regolarmente utilizzando ctest
(ci vogliono pochi minuti per l'esecuzione). Per riprodurre alcune tabelle o figure nell'articolo, devo costruire uno script o un semplice programma driver, che dura forse 10 minuti, a volte di più, quindi non voglio avere questa parte della normale suite di test. Allo stesso tempo, voglio assicurarmi che i risultati dell'articolo possano essere:
- riprodotto più tardi
- assicurarsi che continuino a fornire gli stessi / corretti risultati dopo che continuo a sviluppare la libreria
Attualmente provo ad avere un piccolo programma driver che eseguo come parte della normale suite di test, e se voglio riprodurre i risultati dell'articolo, rimuovo il commento ad alcune righe. Certo, non so mai quali linee esatte e se devo modificare alcuni altri parametri per ottenere esattamente gli stessi risultati dell'articolo.
Ho anche provato ad avere uno script Python che calcola le cifre / tabelle esatte dell'articolo. Uno script di questo tipo in genere smette di funzionare dopo un aggiornamento della libreria, perché non viene eseguito regolarmente (richiede troppo tempo).
Il metodo migliore che mi è venuto in mente è di avere un esempio Fortran (o C / C ++), che verrà regolarmente compilato (come parte della libreria), ma non eseguito in una normale suite di test. In questo modo, almeno so che si compila bene (e quindi spero anche che funzioni). E testerò alcuni semplici esempi (più piccoli) come parte di una normale suite di test.
Quali sono i modi ottimali per gestire questo problema?