Accord.Tests.MachineLearning.KnnPerformanceTest.PerformanceTest1 C# (CSharp) Method

PerformanceTest1() private method

private PerformanceTest1 ( ) : void
return void
        public void PerformanceTest1()
        {
            int n1 = 1000;
            int n2 = 2000;
            int k = 5;

            double[][] inputs;
            NaiveKNearestNeighbors naive;
            KNearestNeighbors<double[]> normal;
            KNearestNeighbors target;
            Create(n1, n2, k, out inputs, out naive, out normal, out target);

            double[] expected = new double[inputs.Length];
            double[] actual1 = new double[inputs.Length];
            double[] actual2 = new double[inputs.Length];

            Stopwatch sw = new Stopwatch();

            sw.Start();
            for (int i = 0; i < inputs.Length; i++)
                expected[i] = naive.Compute(inputs[i]);
            sw.Stop();
            var t1 = sw.Elapsed;

            sw.Restart();
            for (int i = 0; i < inputs.Length; i++)
                actual1[i] = normal.Compute(inputs[i]);
            sw.Stop();
            var t2 = sw.Elapsed;

            sw.Restart();
            for (int i = 0; i < inputs.Length; i++)
                actual2[i] = target.Compute(inputs[i]);
            sw.Stop();
            var t3 = sw.Elapsed;

            Assert.IsTrue(t1 > t2);
            Assert.IsTrue(t2 > t3);

            Assert.IsTrue(t2.Ticks > t3.Ticks * 10);


            for (int i = 0; i < inputs.Length; i++)
            {
                Assert.AreEqual(expected[i], actual1[i]);
                Assert.AreEqual(expected[i], actual2[i]);
            }
        }