Eu escrevi um programa / biblioteca que usei para obter resultados em um artigo. (Aqui está , mas minha pergunta é geral.) Eu tenho testes que eu executo regularmente usando ctest
(leva alguns minutos para executar). Para reproduzir algumas tabelas ou figuras no artigo, eu tenho que construir um script ou um programa de driver simples, que execute talvez 10 minutos, às vezes mais, para que eu não queira ter essa parte do conjunto de testes regular. Ao mesmo tempo, quero garantir que os resultados do artigo possam ser:
- reproduzido mais tarde
- verifique se eles ainda fornecem os mesmos / resultados corretos depois de eu continuar desenvolvendo a biblioteca
Atualmente, tento ter um pequeno programa de driver que execute como parte do conjunto de testes regular e, se quiser reproduzir os resultados do artigo, descomente algumas linhas. Obviamente, nunca sei quais linhas exatas e se preciso ajustar alguns outros parâmetros para obter exatamente os mesmos resultados que no artigo.
Eu também tentei ter um script Python que calcula as figuras / tabelas exatas do artigo. Esse script geralmente para de funcionar após uma atualização na biblioteca, porque não está sendo executado regularmente (leva muito tempo).
O melhor método que me ocorreu é ter um exemplo de Fortran (ou C / C ++), que será compilado regularmente (como parte da biblioteca), mas não executado no conjunto de testes regular. Dessa forma, pelo menos eu sei que ele compila bem (e, portanto, esperamos que também seja executado). E testarei um exemplo simples (menor) como parte de um conjunto de testes regular.
Quais são as melhores maneiras de lidar com esse problema?