Accord.Tests.Math.MatrixTest.insertion_sort_std C# (CSharp) Method

insertion_sort_std() private method

private insertion_sort_std ( ) : void
return void
        public void insertion_sort_std()
        {
            int[] idx = { 5, 1, 2, 3, 4, 0 };
            double[][] points =
            {
                new double[] { 2, 3 },
                new double[] { 5, 4 },
                new double[] { 9, 6 },
                new double[] { 4, 7 },
                new double[] { 8, 1 },
                new double[] { 7, 2 },
            };

            var comparisons = new List<Tuple<double, double>>();
            double[] e = points[idx[0]];
            Func<double[], double[], int> comparer = (double[] x, double[] y) =>
            {
                var d1 = Distance.Euclidean(e, x);
                var d2 = Distance.Euclidean(e, y);
                comparisons.Add(Tuple.Create(d1, d2));
                return d1.CompareTo(d2);
            };

            Sort.NthElement(points, idx,
                  first: 1,
                  last: 5,
                  n: 2,
                  compare: comparer);

            int[] expected = { 5, 4, 1, 2, 3, 0 };
            Assert.IsTrue(idx.IsEqual(expected));
            Assert.AreEqual(5, comparisons.Count);

            Assert.AreEqual(4.47213595499958, comparisons[0].Item1);
            Assert.AreEqual(2.8284271247461903, comparisons[0].Item2);

            Assert.AreEqual(4.47213595499958, comparisons[1].Item1);
            Assert.AreEqual(2.8284271247461903, comparisons[1].Item2);

            Assert.AreEqual(5.8309518948453007, comparisons[2].Item1);
            Assert.AreEqual(2.8284271247461903, comparisons[2].Item2);

            Assert.AreEqual(5.8309518948453007, comparisons[3].Item1);
            Assert.AreEqual(4.47213595499958, comparisons[3].Item2);

            Assert.AreEqual(1.4142135623730951, comparisons[4].Item1);
            Assert.AreEqual(2.8284271247461903, comparisons[4].Item2);
        }
MatrixTest