I am testing a Variance method(unit) but double issue is occuring.
public double Variance()
{
return Probablity * (1 - Probablity);
}
[Test]
public void Variance_WithSuccessProbablity02_Returns016()
{
var bernoulli = new BernoulliDistribution(0.2);
Assert.AreEqual(bernoulli.Variance(), 0.16);
}
This test result is returns fail.
Failed: Expected: 0.160000000000003d But was 0.16d
In NUnit, you can either compare floating point values using an explicit tolerance:
or you can globally set
GlobalSettings.DefaultFloatingPointToleranceto a non-zero value (by default it is 0.0).There is more information on floating point comparison here.
In your specific case, I recommend you to try this: