[corlib] Fix Array.Sort throwing when fewer keys than items are provided
[mono.git] / mcs / class / corlib / Test / System / ArrayTest.cs
index 6902f43be1e989a386ccaf9144a8dd7d1c881aa9..351d312c92d63c5d217d3f9df04524402671680b 100644 (file)
@@ -2548,6 +2548,33 @@ public class ArrayTest
                        Assert.AreEqual (4, indices [0]);
        }
 
+       [Test]
+       public void TestSortComparable()
+       {
+               int[] source = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
+               int[] expected = { 6, 5, 4, 3, 2, 1, 7, 8, 9 };
+               Comp[] c = { new Comp (100), new Comp (16), new Comp (11), new Comp (9), new Comp (0), new Comp (-100) };
+               IComparer<Comp> comp = null;
+               Array.Sort<Comp, int> (c, source, comp);
+
+               Assert.AreEqual (expected, source);
+       }
+
+       class Comp : IComparable
+       {
+               readonly int val;
+
+               public Comp (int a)
+               {
+                       val = a;
+               }
+
+               int IComparable.CompareTo (object obj)
+               {
+                       return val.CompareTo ((obj as Comp).val);
+               }
+       }
+
        [Test]
        public void TestInitializeEmpty()
        {