public void ProbabilityDensityFunctionTest()
{
MultivariateNormalDistribution[] components = new MultivariateNormalDistribution[2];
components[0] = new MultivariateNormalDistribution(new double[] { 2 }, new double[,] { { 1 } });
components[1] = new MultivariateNormalDistribution(new double[] { 5 }, new double[,] { { 1 } });
double[] coefficients = { 0.3, 0.7 };
var mixture = new MultivariateMixture<MultivariateNormalDistribution>(coefficients, components);
double[] x = { 1.2 };
double expected =
0.3 * components[0].ProbabilityDensityFunction(x) +
0.7 * components[1].ProbabilityDensityFunction(x);
double actual = mixture.ProbabilityDensityFunction(x);
Assert.AreEqual(expected, actual);
}