Exemplo n.º 1
0
        public void JointDistributionConstructorTest2()
        {
            int[] symbols = { 3, 5, 2 };
            JointDistribution target = new JointDistribution(symbols);

            double[] p = target.Frequencies;

            Assert.AreEqual(3 * 5 * 2, p.Length);

            for (int i = 0; i < p.Length; i++)
                p[i] = i;

            double actual;

            actual = target.ProbabilityMassFunction(new int[] { 0, 0, 0 });
            Assert.AreEqual(0, actual);

            actual = target.ProbabilityMassFunction(new int[] { 0, 0, 1 });
            Assert.AreEqual(1, actual);

            actual = target.ProbabilityMassFunction(new int[] { 0, 1, 0 });
            Assert.AreEqual(2, actual);

            actual = target.ProbabilityMassFunction(new int[] { 0, 1, 1 });
            Assert.AreEqual(3, actual);

            actual = target.ProbabilityMassFunction(new int[] { 0, 2, 0 });
            Assert.AreEqual(4, actual);

            actual = target.ProbabilityMassFunction(new int[] { 0, 2, 1 });
            Assert.AreEqual(5, actual);

            actual = target.ProbabilityMassFunction(new int[] { 2, 4, 1 });
            Assert.AreEqual(29, actual);
        }
Exemplo n.º 2
0
        public void FitTest2()
        {
            int[] symbols = { 3, 5 };
            JointDistribution target = new JointDistribution(symbols);

            double[][] observations = 
            {
                new double[] { 0, 0 },
                new double[] { 1, 1 },
                new double[] { 2, 1 },
            };

            double[] weights = { 2, 1, 1 };

            target.Fit(observations, weights);

            double[] p = target.Frequencies;

            double actual;

            actual = target.ProbabilityMassFunction(new[] { 0, 0 });
            Assert.AreEqual(0.5, actual);

            actual = target.ProbabilityMassFunction(new[] { 1, 1 });
            Assert.AreEqual(0.25, actual);

            actual = target.ProbabilityMassFunction(new[] { 2, 1 });
            Assert.AreEqual(0.25, actual);

        }