public void TestKthOrderTest_1()
        {
            int[]      array = new int[] { 5, 4, 1, 2, 6, 3, 8, 7 };
            List <int> list  = SortLevel.KthOrderStatisticsTotal(array, 0, 7, 3);

            foreach (int i in list)
            {
                Assert.AreEqual(3, i);
            }
            Assert.AreEqual(4, array[3]);
        }
        public void TestKthOrderTest_4()
        {
            int[]      array = new int[] { 0, 2, 1, 4, 5, 8, 9, 20, 11, 15, 3, 16 };
            List <int> list  = SortLevel.KthOrderStatisticsTotal(array, 6, 11, 10);

            foreach (int i in list)
            {
                Assert.AreEqual(10, i);
            }
            Assert.AreEqual(16, array[10]);
            Assert.IsTrue(array[9] < array[10]);
            Assert.IsTrue(array[11] > array[10]);
        }
        public void TestKthOrderTest_3()
        {
            int[]      array = new int[] { 0, 2, 1, 4, 5, 8, 9, 20, 11, 15, 3, 16 };
            List <int> list  = SortLevel.KthOrderStatisticsTotal(array, 0, 11, 1);

            foreach (int i in list)
            {
                Assert.AreEqual(1, i);
            }
            Assert.AreEqual(1, array[1]);
            Assert.IsTrue(array[0] < array[1]);
            Assert.IsTrue(array[2] > array[1]);
            Assert.IsTrue(array[3] > array[1]);
        }
        public void TestKthOrderTest_2()
        {
            int[]      array = new int[] { 6, 3, 10, 2, 1, 5, 9 };
            List <int> list  = SortLevel.KthOrderStatisticsTotal(array, 0, 6, 3);

            foreach (int i in list)
            {
                Assert.AreEqual(3, i);
            }
            Assert.AreEqual(5, array[3]);
            Assert.IsTrue(array[0] < array[3]);
            Assert.IsTrue(array[1] < array[3]);
            Assert.IsTrue(array[2] < array[3]);
        }
        public void TestKthOrderTest_5()
        {
            int[]      array = new int[] { 0, 5, 4, 3, 6, 7, 8 };
            int[]      expay = new int[] { 0, 3, 4, 5, 6, 7, 8 };
            List <int> list  = SortLevel.KthOrderStatisticsTotal(array, 0, 6, 4);

            foreach (int i in list)
            {
                Assert.AreEqual(4, i);
            }
            for (int i = 0; i < array.Length; i++)
            {
                Assert.AreEqual(expay[i], array[i]);
            }
        }