Accord.Tests.MachineLearning.KDTreeTest.NearestTest C# (CSharp) Méthode

NearestTest() private méthode

private NearestTest ( ) : void
Résultat void
        public void NearestTest()
        {
            double[][] points =
            {
                new double[] { 1, 1 }, new double[] { 1, 2 }, new double[] { 1, 3 }, new double[] { 1, 4 }, new double[] { 1, 5 }, 
                new double[] { 2, 1 }, new double[] { 2, 2 }, new double[] { 2, 3 }, new double[] { 2, 4 }, new double[] { 2, 5 }, 
                new double[] { 3, 1 }, new double[] { 3, 2 }, new double[] { 3, 3 }, new double[] { 3, 4 }, new double[] { 3, 5 }, 
                new double[] { 4, 1 }, new double[] { 4, 2 }, new double[] { 4, 3 }, new double[] { 4, 4 }, new double[] { 4, 5 }, 
                new double[] { 5, 1 }, new double[] { 5, 2 }, new double[] { 5, 3 }, new double[] { 5, 4 }, new double[] { 5, 5 }, 
            };

            var tree = KDTree.FromData<int>(points);

            tree.Distance = new Manhattan();


            for (int i = 0; i < points.Length; i++)
            {
                var retrieval = tree.Nearest(points[i], 0.0);

                Assert.AreEqual(1, retrieval.Count);
                Assert.AreEqual(points[i][0], retrieval[0].Node.Position[0]);
                Assert.AreEqual(points[i][1], retrieval[0].Node.Position[1]);
            }

            var result = tree.Nearest(new double[] { 3, 3 }, 1.0);

            double[][] expected =
            {
                                        new double[] { 2, 3 },
                new double[] { 3, 2 },  new double[] { 3, 3 }, new double[] { 3, 4 }, 
                                        new double[] { 4, 3 }, 
            };

            Assert.AreEqual(expected.Length, result.Count);

            double[][] actual = (from node in result select node.Node.Position).ToArray();

            for (int i = 0; i < expected.Length; i++)
            {
                Assert.IsTrue(actual.Contains(expected[i], new CustomComparer<double[]>((a, b) => a.IsEqual(b) ? 0 : 1)));
            }
        }