Я создал метод, который вычисляет среднее значение гармоник на основе списка парных. Но когда я запускаю тест, он продолжает терпеть неудачу, даже если результат вывода тот же.Visual Studio 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