Accord.Tests.MachineLearning.MeanShiftTest.MeanShiftConstructorTest C# (CSharp) Method

MeanShiftConstructorTest() private method

private MeanShiftConstructorTest ( ) : void
return void
        public void MeanShiftConstructorTest()
        {
            Accord.Math.Random.Generator.Seed = 0;

            // Test Samples
            double[][] samples =
            {
                new double[] { 0, 1 },
                new double[] { 1, 2 }, 
                new double[] { 1, 1 },
                new double[] { 0, 7 },
                new double[] { 1, 1 },
                new double[] { 6, 2 },
                new double[] { 6, 5 },
                new double[] { 5, 1 },
                new double[] { 7, 1 },
                new double[] { 5, 1 }
            };


            var kernel = new GaussianKernel(dimension: 2);
            MeanShift meanShift = new MeanShift(2, kernel, 2.0);
            meanShift.UseParallelProcessing = false;

            // Compute the model (estimate)
            int[] labels = meanShift.Compute(samples);

            int a = labels[0];
            int b = (a == 0) ? 1 : 0;

            for (int i = 0; i < 5; i++)
                Assert.AreEqual(a, labels[i]);

            for (int i = 5; i < samples.Length; i++)
                Assert.AreEqual(b, labels[i]);

            Assert.AreEqual(1.1922811512028066, meanShift.Clusters.Modes[a][0], 1e-3);
            Assert.AreEqual(1.2567196159235963, meanShift.Clusters.Modes[a][1], 1e-3);

            Assert.AreEqual(5.2696337859175868, meanShift.Clusters.Modes[b][0], 1e-3);
            Assert.AreEqual(1.4380326532534968, meanShift.Clusters.Modes[b][1], 1e-3);

            Assert.AreEqual(2, meanShift.Clusters.Count);
            Assert.AreEqual(2, meanShift.Clusters.Modes.Length);

            Assert.AreEqual(0.5, meanShift.Clusters.Proportions[0]);
            Assert.AreEqual(0.5, meanShift.Clusters.Proportions[1]);
        }