public void LogProbabilityDensityFunctionTest()
{
double[] samples = { 1, 5, 2, 5, 1, 7, 1, 9, 4, 2 };
EmpiricalDistribution target = new EmpiricalDistribution(samples, 1);
Assert.AreEqual(1.0, target.Smoothing);
double actual;
double expected;
actual = target.LogProbabilityDensityFunction(1);
expected = System.Math.Log(0.16854678051819402);
Assert.AreEqual(expected, actual, 1e-6);
actual = target.LogProbabilityDensityFunction(2);
expected = System.Math.Log(0.15866528844260089);
Assert.AreEqual(expected, actual, 1e-6);
actual = target.LogProbabilityDensityFunction(3);
expected = System.Math.Log(0.0996000842425018);
Assert.AreEqual(expected, actual, 1e-6);
actual = target.LogProbabilityDensityFunction(4);
expected = System.Math.Log(0.1008594542833362);
Assert.AreEqual(expected, actual, 1e-6);
actual = target.LogProbabilityDensityFunction(6);
expected = System.Math.Log(0.078460710909263);
Assert.AreEqual(expected, actual, 1e-6);
actual = target.LogProbabilityDensityFunction(8);
expected = System.Math.Log(0.049293898826709738);
Assert.AreEqual(expected, actual, 1e-6);
}