답변:
숫자 코드를 테스트 할 때의 문제점은 (i) 정확한 결과를 항상 알 수는 없으며 나중에 비교할 수 있도록 계산 결과 만 저장할 수 있다는 것입니다. 그 결과는 반올림에 따라 기계마다 약간 씩 다를 수 있습니다.
deal.II가 어떻게 작동하는지 보려면 여기를보십시오 : http://www.dealii.org/developer/development/testsuite.html#regression_tests
나는 최근에 내가 작업하고있는 몇 개의 숫자 라이브러리를 테스트하기 위해 googletest 를 사용 하고 있으며 매우 만족합니다. 상당히 간단한 테스트를 매우 빠르게 작성하거나 데이터 초기화 등이 필요한 복잡한 테스트를 작성할 수 있습니다. 또한 비트 단위가 아닌 부동 소수점 비교를 쉽게 수행하는 방법을 제공합니다 (다른 많은 사람들이하는 것처럼).
계산 생물학 C ++ 라이브러리 ( Chste )에는 http://cxxtest.com/ 을 사용 합니다. 이것은 사용하기가 간단하고 잘 작동하며 assert()
스타일 문으로 테스트하기위한 몇 가지 매크로를 제공합니다 . 과학 계산의 경우 일반적으로와의 간단한 직접 비교 TS_ASSERT_EQUALS(a,b)
또는 와의 수치 비교입니다 TS_ASSERT_DELTA(a,b,tolerance)
.
이 기본 매크로를 사용하여 추가 매크로를 쉽게 작성하여 원하는 벡터 / 매트릭스를 비교할 수도 있습니다. 유용하게도 특정 상황에서 코드가 적절한 경고 및 오류 메시지를 표시하는지 확인할 수 있습니다. https://chaste.cs.ox.ac.uk/trac/browser/trunk에서test
소스 코드 의 폴더 에서 예제를 찾아 볼 수 있습니다 .