public static void Main()
    {
        // Create and initialize a new array.
        String[] words = { "The",  "QUICK", "BROWN", "FOX", "jumps",
                           "over", "the",   "lazy",  "dog" };
        // Instantiate the reverse comparer.
        IComparer revComparer = new ReverseComparer();

        // Display the values of the array.
        Console.WriteLine("The original order of elements in the array:");
        DisplayValues(words);

        // Sort a section of the array using the default comparer.
        Array.Sort(words, 1, 3);
        Console.WriteLine("After sorting elements 1-3 by using the default comparer:");
        DisplayValues(words);

        // Sort a section of the array using the reverse case-insensitive comparer.
        Array.Sort(words, 1, 3, revComparer);
        Console.WriteLine("After sorting elements 1-3 by using the reverse case-insensitive comparer:");
        DisplayValues(words);

        // Sort the entire array using the default comparer.
        Array.Sort(words);
        Console.WriteLine("After sorting the entire array by using the default comparer:");
        DisplayValues(words);

        // Sort the entire array by using the reverse case-insensitive comparer.
        Array.Sort(words, revComparer);
        Console.WriteLine("After sorting the entire array using the reverse case-insensitive comparer:");
        DisplayValues(words);
    }
Esempio n. 2
0
        public void Comparer()
        {
            var comparer   = new ReverseComparer <int>();
            var sortedList = new SortedList <int>(comparer);

            Assert.AreEqual(comparer, sortedList.Comparer);
        }
Esempio n. 3
0
    public static void Main()
    {
        string[] dinosaurs = { "Pachycephalosaurus",
                               "Amargasaurus",
                               "Mamenchisaurus",
                               "Tarbosaurus",
                               "Tyrannosaurus",
                               "Albertasaurus" };

        Console.WriteLine();
        foreach (string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nSort(dinosaurs, 3, 3)");
        Array.Sort(dinosaurs, 3, 3);

        Console.WriteLine();
        foreach (string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        ReverseComparer rc = new ReverseComparer();

        Console.WriteLine("\nSort(dinosaurs, 3, 3, rc)");
        Array.Sort(dinosaurs, 3, 3, rc);

        Console.WriteLine();
        foreach (string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }
    }
Esempio n. 4
0
    public static void Main()
    {
        string[] dinosaurs = { "Pachycephalosaurus",
                               "Amargasaurus",
                               "Tyrannosaurus",
                               "Mamenchisaurus",
                               "Deinonychus",
                               "Edmontosaurus" };

        Console.WriteLine();
        foreach (string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        ReverseComparer rc = new ReverseComparer();

        Console.WriteLine("\nSort");
        Array.Sort(dinosaurs, rc);

        Console.WriteLine();
        foreach (string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nBinarySearch for 'Coelophysis':");
        int index = Array.BinarySearch(dinosaurs, "Coelophysis", rc);

        ShowWhere(dinosaurs, index);

        Console.WriteLine("\nBinarySearch for 'Tyrannosaurus':");
        index = Array.BinarySearch(dinosaurs, "Tyrannosaurus", rc);
        ShowWhere(dinosaurs, index);
    }
Esempio n. 5
0
        public void NormalComparer()
        {
            var original = StringComparer.Ordinal;
            var subject  = new ReverseComparer <string>(original);

            Assert.AreEqual(original.Compare("x", "y"), subject.Compare("y", "x"));
            Assert.AreEqual(0, subject.Compare("x", "x"));
        }
Esempio n. 6
0
        public void Simple()
        {
            var comparer = new ReverseComparer <int>();

            Assert.AreEqual(comparer.Compare(2, 3), 1);
            Assert.AreEqual(comparer.Compare(3, 2), -1);
            Assert.AreEqual(comparer.Compare(0, 0), 0);
            Assert.AreEqual(comparer.Compare(0, 1), 1);
            Assert.AreEqual(comparer.Compare(1, 0), -1);
        }
Esempio n. 7
0
        public void TestSortByComparer()
        {
            ReverseComparer comparer = new ReverseComparer();

            Array.Sort(m_arrOriginal, comparer);
            CollectionAssert.IsOrdered(m_arrOriginal, comparer);

            Element[] expectedArray = { m_maximum, m_middle, m_minimum };
            CollectionAssert.AreEqual(expectedArray, m_arrOriginal);
        }
Esempio n. 8
0
        public void Set()
        {
            var comparer = new ReverseComparer <int>();

            IComparer <int> newComparer = new IntComparer();

            comparer.Comparer = newComparer;

            Assert.AreEqual(comparer.Comparer, newComparer);
        }
Esempio n. 9
0
        public void Simple()
        {
            var comparer = new ReverseComparer<int>();

            Assert.AreEqual(comparer.Compare(2, 3), 1);
            Assert.AreEqual(comparer.Compare(3, 2), -1);
            Assert.AreEqual(comparer.Compare(0, 0), 0);
            Assert.AreEqual(comparer.Compare(0, 1), 1);
            Assert.AreEqual(comparer.Compare(1, 0), -1);
        }
Esempio n. 10
0
        /// <summary>
        /// Reverses the original comparer; if it was already a reverse comparer,
        /// the previous version was reversed (rather than reversing twice).
        /// In other words, for any comparer X, X==X.Reverse().Reverse().
        /// </summary>
        public static IComparer <T> Reverse <T>(this IComparer <T> original)
        {
            ReverseComparer <T> originalAsReverse = original as ReverseComparer <T>;

            if (originalAsReverse != null)
            {
                return(originalAsReverse.OriginalComparer);
            }
            return(new ReverseComparer <T>(original));
        }
Esempio n. 11
0
        public void ReverseComparerReturnsZeroWhenFirstItemEqualsSecondItem()
        {
            var comparer = new ReverseComparer <int>(Comparer <int> .Default);

            int first  = 1;
            int second = 1;

            int result = comparer.Compare(first, second);

            Assert.AreEqual(0, result);
        }
Esempio n. 12
0
        public void ReverseComparerReturnsPositiveOneWhenFirstItemIsLessThanSecondItem()
        {
            var comparer = new ReverseComparer <int>(Comparer <int> .Default);

            int first  = 1;
            int second = 2;

            int result = comparer.Compare(first, second);

            Assert.AreEqual(1, result);
        }
Esempio n. 13
0
        public void CustomComparer_Limits_GreaterThan()
        {
            // Arrange
            var comparer         = new CustomIntComparerLimits();
            var reversedComparer = new ReverseComparer <int>(comparer);

            // Act-Assert (Precondition)
            Assert.Equal(int.MaxValue, comparer.Compare(2, 1));

            // Act-Assert
            Assert.Equal(int.MinValue, reversedComparer.Compare(2, 1));
        }
Esempio n. 14
0
        public void ReverseDefaultStringComparer_WithNull_GreaterThan()
        {
            // Arrange
            var comparer         = Comparer <string> .Default;
            var reversedComparer = new ReverseComparer <string>(comparer);

            // Act-Assert (Precondition)
            Assert.Equal(1, comparer.Compare("A", null));

            // Act-Assert
            Assert.Equal(-1, reversedComparer.Compare("A", null));
        }
Esempio n. 15
0
        public void ReverseDefaultIntegerComparer_LessThan()
        {
            // Arrange
            var comparer         = Comparer <int> .Default;
            var reversedComparer = new ReverseComparer <int>(comparer);

            // Act-Assert (Precondition)
            Assert.Equal(-1, comparer.Compare(1, 2));

            // Act-Assert
            Assert.Equal(1, reversedComparer.Compare(1, 2));
        }
Esempio n. 16
0
        public void Simple()
        {
            var comparer = new ReverseComparer <int>();

            Assert.AreEqual(comparer.Comparer, Comparer <int> .Default);

            IComparer <int> newComparer = new IntComparer();

            comparer = new ReverseComparer <int>(newComparer);

            Assert.AreEqual(comparer.Comparer, newComparer);
        }
Esempio n. 17
0
        public void ReverseDefaultStringComparer_WithNull_LessEqual()
        {
            // Arrange
            var comparer         = Comparer <string> .Default;
            var reversedComparer = new ReverseComparer <string>(comparer);

            // Act-Assert (Precondition)
            Assert.Equal(0, comparer.Compare(null, null));

            // Act-Assert
            Assert.Equal(0, reversedComparer.Compare(null, null));
        }
Esempio n. 18
0
        public void CustomComparer_LessThan()
        {
            // Arrange
            var comparer         = new CustomIntComparer();
            var reversedComparer = new ReverseComparer <int>(comparer);

            // Act-Assert (Precondition)
            Assert.Equal(-2, comparer.Compare(1, 2));

            // Act-Assert
            Assert.Equal(2, reversedComparer.Compare(1, 2));
        }
Esempio n. 19
0
        public void Test_ReverseComparer_EqualTo()
        {
            // Arrange.
            IComparer <int> baseComparer    = Comparer <int> .Default;
            IComparer <int> reverseComparer = new ReverseComparer <int>(baseComparer);

            // Act.
            int result         = baseComparer.Compare(2, 2);
            int reversedResult = reverseComparer.Compare(2, 2);

            // Assert.
            Assert.Equal(result, reversedResult);
            Assert.Equal(0, result);
            Assert.Equal(0, reversedResult);
        }
Esempio n. 20
0
        public void Test_ReverseComparer_GreaterThan()
        {
            // Arrange.
            IComparer <int> baseComparer    = Comparer <int> .Default;
            IComparer <int> reverseComparer = new ReverseComparer <int>(baseComparer);

            // Act.
            int result         = baseComparer.Compare(2, 1);
            int reversedResult = reverseComparer.Compare(2, 1);

            // Assert.
            Assert.NotEqual(result, reversedResult);
            Assert.True(result > 0);
            Assert.True(reversedResult < 0);
        }
Esempio n. 21
0
    public static void Main()
    {
        string[] letters = { "A", "B", "E", "C", "F", "G" };

        int[] letterSizes = { 40, 5, 3, 22, 1, 18 };

        Console.WriteLine();
        for (int i = 0; i < letters.Length; i++)
        {
            Console.WriteLine("{0}: up to {1} meters long.", letters[i], letterSizes[i]);
        }

        Console.WriteLine("\nSort(letters, letterSizes)");
        Array.Sort(letters, letterSizes);

        for (int i = 0; i < letters.Length; i++)
        {
            Console.WriteLine("{0}: up to {1} meters long.",
                              letters[i], letterSizes[i]);
        }

        ReverseComparer rc = new ReverseComparer();

        Console.WriteLine("\nSort(letters, letterSizes, rc)");
        Array.Sort(letters, letterSizes, rc);

        for (int i = 0; i < letters.Length; i++)
        {
            Console.WriteLine("{0}: up to {1} meters long.",
                              letters[i], letterSizes[i]);
        }

        Console.WriteLine("\nSort(letters, letterSizes, 3, 3)");
        Array.Sort(letters, letterSizes, 3, 3);
        for (int i = 0; i < letters.Length; i++)
        {
            Console.WriteLine("{0}: up to {1} meters long.",
                              letters[i], letterSizes[i]);
        }

        Console.WriteLine("\nSort(letters, letterSizes, 3, 3, rc)");
        Array.Sort(letters, letterSizes, 3, 3, rc);
        for (int i = 0; i < letters.Length; i++)
        {
            Console.WriteLine("{0}: up to {1} meters long.",
                              letters[i], letterSizes[i]);
        }
    }
Esempio n. 22
0
        public static void TestComparerScope()
        {
            var comparer = new ReverseComparer <int>(Comparer <int> .Default);
            var list     = new List <int>()
            {
                0, 1, 2
            };

            try
            {
                Assert.AreEqual(1, list.BinarySearch(1, comparer), "1 found in list at index 1.");
            }
            catch (Exception)
            {
                Assert.Fail("Exception thrown in BinarySearch");
            }
        }
Esempio n. 23
0
        static void Main(string[] args)
        {
            IComparer compare = new ReverseComparer();

            int[] compArr = Console.ReadLine().Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries)
                            .Select(int.Parse).ToArray();
            Array.Sort(compArr, compare);
            int index = 0;

            for (int i = 0; i < compArr.Length; i++)
            {
                if (compArr[i] % 2 != 0)
                {
                    index = i - 1;
                    break;
                }
            }
            Console.WriteLine(String.Join(" ", compArr.Take(index + 1).ToArray().OrderBy(x => x).ToArray()) + "// " + String.Join(" ", compArr.Skip(index + 1).ToArray().OrderBy(x => x).ToArray()));
        }
        public string Sort(string str)
        {
            var c = str.ToArray();
            var s = new string[c.Length];

            for (var i = 0; i < c.Length; i++)
            {
                s[i] = c[i].ToString();
            }
            IComparer rev = new ReverseComparer();

            Array.Sort(s, rev);
            str = "";
            for (var i = 0; i < c.Length; i++)
            {
                str += s[i];
            }
            return(str);
        }
Esempio n. 25
0
        /*
         * Задание 2
         * Заполнить с консоли массив из N элементов. Отсортировать. Вывести результат. N - задается с консоли
         */
        public void Task2()
        {
            while (true)
            {
                v.TaskText("Задание 2.", "Заполнить с консоли массив из N элементов. \nОтсортировать. Вывести результат. N - задается с консоли");

                try
                {
                    v.TaskExtraText("Введите число N: ");
                    int n = GetIntNumberFromScreen();

                    int[] array = new int[n];
                    v.TaskExtraText("Заполняем массив: ");
                    for (int i = 0; i < n; i++)
                    {
                        v.TaskExtraText("Введите число: ");
                        array[i] = GetIntNumberFromScreen();
                    }

                    // Instantiate the reverse comparer.
                    IComparer revComparer = new ReverseComparer();
                    Array.Sort(array, revComparer);

                    string res = "";
                    for (int i = array.GetLowerBound(0); i <= array.GetUpperBound(0); i++)
                    {
                        res += array[i] + ", ";
                    }

                    res = res.Trim().Trim(',');

                    v.TaskResult(res);

                    break;
                }
                catch (Exception e)
                {
                    v.TaskWarning(e.Message.ToString());
                    continue;
                }
            }
        }
Esempio n. 26
0
        public static int TopNpeakHelper(ref double[] intensities, ref double[] mArray, IFilteringParams filteringParams)
        {
            IComparer <double> c = new ReverseComparer();

            Array.Sort(intensities, mArray, c);

            int numPeaks = intensities.Length;

            if (filteringParams.MinimumAllowedIntensityRatioToBasePeakM.HasValue)
            {
                double minIntensity = filteringParams.MinimumAllowedIntensityRatioToBasePeakM.Value * intensities[0];
                numPeaks = Math.Min(intensities.Count(b => b >= minIntensity), numPeaks);
            }

            if (filteringParams.NumberOfPeaksToKeepPerWindow.HasValue)
            {
                numPeaks = Math.Min(filteringParams.NumberOfPeaksToKeepPerWindow.Value, numPeaks);
            }
            return(numPeaks);
        }
Esempio n. 27
0
        public ListHeapWithIndices(Comparer <TValue> comparer = null)
        {
            if (comparer == null)
            {
                this.comparer = new DefaultComparer <TValue>();
            }
            else
            {
                this.comparer = comparer;
            }
            Array.Resize(ref elementsKey, 100);
            Array.Resize(ref elementsValue, 100);

            Array.Resize(ref keysPosition, 100);
            for (int i = 0; i < 100; ++i)
            {
                keysPosition[i] = -i - 2;
            }
            reverseComparer = new ReverseComparer(comparer);
        }
Esempio n. 28
0
    // Complete the climbingLeaderboard function below.
    static int[] climbingLeaderboard(int[] scores, int[] alice)
    {
        var distict = scores.Distinct().ToArray();
        var result  = new int[alice.Length];

        var comparer = new ReverseComparer <int>();

        for (int index = 0; index < alice.Length; index++)
        {
            var search = Array.BinarySearch(distict, alice[index], comparer);

            if (search >= 0)
            {
                result[index] = search + 1;
            }
            else
            {
                result[index] = -search;
            }
        }

        return(result);
    }
Esempio n. 29
0
        private void Button2_Click(object sender, EventArgs e)
        {
            IComparer revComparer = new ReverseComparer();

            double sum = 0;

            k = (int)(numericUpDown2.Value);

            for (int i = 0; i < myArr.Length; i++)
            {
                if (i % 2 == 0 && myArr[i] > 0)
                {
                    sum += myArr[i];
                }
            }
            textBox1.Text = sum.ToString();

            Array.Sort(myArr, value - k, k, revComparer);
            for (int i = 0; i < myArr.Length; i++)
            {
                dataGridView1[i, 0].Value = myArr[i];
            }
        }
Esempio n. 30
0
        public void SortersEtc()
        {
            PropertyRecordSorter prs = new PropertyRecordSorter("longName");
            // Save and restore!
            string      xml = DynamicLoader.PersistObject(prs, "sorter");
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xml);

            // And check all the pieces...
            PropertyRecordSorter prsOut = DynamicLoader.RestoreObject(doc.DocumentElement) as PropertyRecordSorter;

            prsOut.Cache = m_cache;
            Assert.AreEqual("longName", prsOut.PropertyName);

            // Putting an IntStringComparer here is utterly bizarre, but it tests out one more class.
            StringFinderCompare sfComp = new StringFinderCompare(new OwnMonoPropFinder(m_cache.MainCacheAccessor, 445),
                                                                 new ReverseComparer(new IntStringComparer()));

            sfComp.SortedFromEnd = true;
            // Save and restore!
            xml = DynamicLoader.PersistObject(sfComp, "comparer");
            doc = new XmlDocument();
            doc.LoadXml(xml);
            // And check all the pieces...
            StringFinderCompare sfCompOut = DynamicLoader.RestoreObject(doc.DocumentElement) as StringFinderCompare;

            sfCompOut.Cache = m_cache;

            Assert.IsTrue(sfCompOut.Finder is OwnMonoPropFinder);
            Assert.IsTrue(sfCompOut.SubComparer is ReverseComparer);
            Assert.IsTrue(sfCompOut.SortedFromEnd);

            ReverseComparer rcOut = sfCompOut.SubComparer as ReverseComparer;

            Assert.IsTrue(rcOut.SubComp is IntStringComparer);
        }
Esempio n. 31
0
        /// <summary>
        /// Sorts an array of <see cref="SccStamp"/> objects by their 
        /// revision numbers in ascending or descending order.
        /// </summary>

        public static void SortByLastChanged(SccStamp[] stamps, bool descending)
        {
            IComparer comparer = new LastChangedComparer();
            
            if (descending)
                comparer = new ReverseComparer(comparer);
            
            Array.Sort(stamps, comparer);
        }
Esempio n. 32
0
        //-------------------------------------------------------------------------------//
        //Caller write
        public static void SaveData(string naam, int score)
        {
            //hier benoem ik path tot de locatie van de .exe
            var path = AppDomain.CurrentDomain.BaseDirectory;

            //declareren van verschillende variabelen
            string[] savearray    = new string[12];
            string[] newsavearray = new string[12];
            int      lengte       = 0;

            //proberen van laden van savedata if aanwezig, anders doet hij niks
            string message = Decrypt();
            string save    = LoadData();

            if (save == "Er is nog geen\nsave file\naanwezig")
            {
            }
            else
            {
                savearray = save.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
                lengte    = LengteLoad(@"" + path + "lengte.ini");
            }

            //lengte +1 ivm 1 extra entry
            if (lengte < 11)
            {
                lengte = lengte + 1;
            }

            //koppelen van score en naam, score vooraan ivm sorteren
            string koppel = score + " punten gehaald door: " + naam;

            if (savearray[0] == null)
            {
                //lege list op basis van niks
                List <string> scorelist = new List <string>();
                scorelist.Add(koppel);
                scorelist.CopyTo(newsavearray);
            }
            else
            {
                //list aanmaken op basis van savearray
                List <string> scorelist = new List <string>(savearray);
                scorelist.Add(koppel);
                scorelist.CopyTo(newsavearray);
            }

            //reverse comparer initialiseren
            IComparer revComparer = new ReverseComparer();

            //de array omgekeerd sorteren op basis van ASCII oid.
            Array.Sort(newsavearray, revComparer);
            //omzetten naar bytes
            byte[] serialized = Serialize(lengte, newsavearray);
            //deze bytes writen
            WriteToFile(@"" + path + "highscores.sav", serialized);
            //lengte writen
            LengteWrite(@"" + path + "lengte.ini", lengte);
            Encrypt();
            //}
        }
Esempio n. 33
0
 public void Comparer()
 {
     var comparer = new ReverseComparer<int>();
     var sortedList = new SortedList<int>(comparer);
     Assert.AreEqual(comparer, sortedList.Comparer);
 }
Esempio n. 34
0
        /// <summary>
        /// Sorts an array of <see cref="SccStamp"/> objects by their 
        /// revision numbers in ascending or descending order.
        /// </summary>
        public static void SortByRevision(SccStamp[] stamps, bool descending)
        {
            IComparer comparer = new RevisionComparer();

            if (descending)
                comparer = new ReverseComparer(comparer);

            Array.Sort(stamps, comparer);
        }
Esempio n. 35
0
		private void absolute()
		{
			IComparer revComparer = new ReverseComparer();
			Array.Sort(prior, revComparer);
			while(true)
			{
				//foreach(var val1 in prior)
				for(int i = 0; i < prior.Length; i++)
				{
					if(prior[i] == -1) continue;
					foreach(var val2 in ProcessData)
					{
						if(Int32.Parse(val2[3].Text) == prior[i])
						{
							Invoke(new Action(() => val2[5].Text = "Выполняется"));
							Thread.Sleep(Int32.Parse(val2[1].Text)*1000);
							val2[7].Text = (Int32.Parse(val2[7].Text) + Int32.Parse(val2[1].Text)).ToString();
							if(Int32.Parse(val2[7].Text) >= Int32.Parse(val2[2].Text))
							{
								Invoke(new Action(() => val2[4].Text = "100%"));
						       	Invoke(new Action(() => val2[5].Text = "Выполнен"));
								prior[i] = -1;
								break;
							}
							Invoke(new Action(() => val2[4].Text = (100*double.Parse(val2[7].Text)/double.Parse(val2[2].Text)).ToString() + "%"));
							Invoke(new Action(() => val2[5].Text = "Очередь"));
						}
					}
				}
				if(checking(prior)) break;
			}
		}