Я также учусь в академических кругах и написал программы квантово-механического моделирования для нашего кластера. Я сделал то же самое замечание относительно тестирования или даже контроля версий. Я был еще хуже: в моем случае я использую библиотеку C ++ для своих симуляций, а код, полученный от других, был чистым спагетти-кодом, без наследования, даже без функций.
Я переписал его, а также провел некоторое модульное тестирование. Вы правы в том, что вам приходится иметь дело с числовой точностью, которая может отличаться в зависимости от архитектуры, на которой вы работаете. Тем не менее, модульное тестирование возможно, если учесть эти ошибки округления чисел. Ваш результат не должен зависеть от округления числовых значений, иначе у вас будет другая проблема с надежностью вашего алгоритма.
Итак, в заключение я использую модульное тестирование для своих научных программ, и это действительно делает нас более уверенными в результатах, особенно в отношении публикации данных в конце.