두배의 목록을 기반으로 고조파 평균을 계산하는 방법을 만들었습니다. 하지만 테스트를 실행하면 출력 결과가 같아도 계속 실패합니다.비쥬얼 스튜디오 2008 단위 테스트가 계속 실패합니다
내 조화 평균 방법 :
public static double GetHarmonicMean(List<double> parameters)
{
var cumReciprocal = 0.0d;
var countN = parameters.Count;
foreach(var param in parameters)
{
cumReciprocal += 1.0d/param;
}
return 1.0d/(cumReciprocal/countN);
}
내 시험 방법 :
[TestMethod()]
public void GetHarmonicMeanTest()
{
var parameters = new List<double> { 1.5d, 2.3d, 2.9d, 1.9d, 5.6d };
const double expected = 2.32432293165495;
var actual = OwnFunctions.GetHarmonicMean(parameters);
Assert.AreEqual(expected, actual);
}
테스트를 실행 한 후 다음과 같은 메시지가 표시되고 :
Assert.AreEqual 실패. 예상 : < 2.32432293165495>. 실제 : < 2.32432293165495>.
나를 위해 모두 동일한 값입니다.
누군가 설명 할 수 있습니까? 아니면 내가 잘못하고있는거야?
오류 메시지 텍스트에 반올림이있을 수 있습니다. 또 다른 노트에서, 당신의 메소드는 Linq를 사용할 수 있습니다 :'return 1.0d/parameters.Average (d => 1.0d/d)),' –
위대한, linq이 일을 생각하지 않았다. – Gerbrand