값을 계산하는 두 가지 방법이 있습니다. 두 가지 방법이 실행되면, 나는 다음과 같은 얻을 :오류가 있음을 알고있는 소수를 비교하는 방법
decimal a = 145.2344;
decimal b = 145.2345;
내가 단위 테스트가 있습니다
Assert.AreEqual(a,b);
가 나는 +/- 0.0001 차이를 설명 할 수 있어야합니다. 이 규칙을 어떻게 추가 할 수 있습니까?
값을 계산하는 두 가지 방법이 있습니다. 두 가지 방법이 실행되면, 나는 다음과 같은 얻을 :오류가 있음을 알고있는 소수를 비교하는 방법
decimal a = 145.2344;
decimal b = 145.2345;
내가 단위 테스트가 있습니다
Assert.AreEqual(a,b);
가 나는 +/- 0.0001 차이를 설명 할 수 있어야합니다. 이 규칙을 어떻게 추가 할 수 있습니까?
간단한 :
if (Math.Abs(a-b) < 0.0001m)
// equal
NUnit's constraint model, 당신이 할 수 있습니다 :
void AssertDiff(decimal a, decimal b, decimal diff = 0.0001) {
Assert.That(Math.Abs(a-b), Is.LessThan(diff));
}
편집 : MS 단위에서 더 좋은
Assert.That(Math.Abs(a-b), Is.LessThan(0.0001M));
을, 그것을 기능을 테스트 프레임 워크 :
void AssertDiff(decimal a, decimal b, decimal diff = 0.0001) {
Assert.IsTrue(Math.Abs(a-b) < diff);
}
은 C#입니까 ?? 찾을 수 없습니다. 그 방법 ... –
@MichaelBray NUnit의 2.4 * NUnit의 * 제약 모델 *입니다. 당신은 [여기] (http://www.nunit.org/index.php?p=constraintModel&r=2.4.8)에 대해 읽을 수 있습니다. – dasblinkenlight
@MichaelBray 아, 방금 OP의 코멘트를 발견했습니다. 정말 고마워요! 나는 내 대답을 편집했다. – dasblinkenlight
어떤 단위 테스트 프레임 워크/분석 라이브러리를 사용하고 있습니까? – nemesv
MS 단위 테스트 프레임 워크 – RJP