예제 #1
0
        public void InversionCount_Int_TestOnLargeData()
        {
            var integers = LoadIntegers();
            var count    = Inversion.Count(integers);

            Assert.AreEqual(2407905288, count);
        }
예제 #2
0
        public void InversionCount_Int_TestOnSortedArray()
        {
            var array   = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            var ethalon = Inversion.CountBruteForce(array);
            var count   = Inversion.Count(array);

            Assert.AreEqual(ethalon, count);
        }
예제 #3
0
        public void InversionCount_Int_TestOnArrayWithOneElement()
        {
            var array   = new int[] { 1 };
            var ethalon = Inversion.CountBruteForce(array);
            var count   = Inversion.Count(array);

            Assert.AreEqual(ethalon, count);
        }
예제 #4
0
        public void InversionCount_Int_TestOnEmptyArray()
        {
            var array   = new int[] { };
            var ethalon = Inversion.CountBruteForce(array);
            var count   = Inversion.Count(array);

            Assert.AreEqual(ethalon, count);
        }
예제 #5
0
        public void InversionCount_String_TestOnSortedArray()
        {
            var array   = new string[] { "a", "b", "c", "d", "e", "f", "g" };
            var ethalon = Inversion.CountBruteForce(array);
            var count   = Inversion.Count(array);

            Assert.AreEqual(ethalon, count);
        }
예제 #6
0
        public void InversionCount_String_TestOnUnsortedArrayWithDuplicates()
        {
            // inversion count = 22
            var array   = new string[] { "f", "b", "g", "a", "d", "e", "a", "c", "b" };
            var ethalon = Inversion.CountBruteForce(array);
            var count   = Inversion.Count(array);

            Assert.AreEqual(ethalon, count);
        }
예제 #7
0
        public void InversionCount_Int_TestOnUnsortedArrayWithDuplicates()
        {
            // inversion count = 36
            var array   = new int[] { 0, 3, 9, 7, 1, 4, 5, 2, 7, 8, 6, 3, 1 };
            var ethalon = Inversion.CountBruteForce(array);
            var count   = Inversion.Count(array);

            Assert.AreEqual(ethalon, count);
        }
예제 #8
0
        public void InversionCount_Int_TestOnReverseSortedArray()
        {
            // inversion count = 45
            // formula: max inversion count = n(n-1)/2
            var array   = new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
            var ethalon = Inversion.CountBruteForce(array);
            var count   = Inversion.Count(array);

            Assert.AreEqual(ethalon, count);
        }