示例#1
0
        public void Sort_Sorts_Unsorted_Array_Of_Custom_Comparable_Objects()
        {
            _algorithms.ForEach(alg =>
            {
                var source = new TestComparable[]
                {
                    new TestComparable(6),
                    new TestComparable(2),
                    new TestComparable(9),
                    new TestComparable(4),
                    new TestComparable(1),
                    new TestComparable(8),
                    new TestComparable(5),
                    new TestComparable(3),
                    new TestComparable(7),
                    new TestComparable(0)
                };

                alg.Sort(source);

                bool allElementsAtSortedIndexes = source.All(item => item.Number == Array.IndexOf(source, item));

                Assert.IsTrue(allElementsAtSortedIndexes);
            });
        }
示例#2
0
        public void ComparableComparerTest()
        {
            var c = new ComparableComparer <TestComparable>();

            var test0 = new TestComparable {
                Value = 0
            };
            var test1 = new TestComparable {
                Value = 100
            };
            var test2 = new TestComparable {
                Value = 200
            };
            var test3 = new TestComparable {
                Value = 1000
            };

            Assert.AreEqual(-1, c.Compare(test0, test1));
            Assert.AreEqual(-1, c.Compare(test0, test2));
            Assert.AreEqual(1, c.Compare(test3, test2));
        }
示例#3
0
        public void EnumerableOrderedTest()
        {
            var test = new TestComparable[]
            {
                new TestComparable {
                    Value = 0
                },
                new TestComparable {
                    Value = -20
                },
                new TestComparable {
                    Value = 15
                },
                new TestComparable {
                    Value = 490
                },
                new TestComparable {
                    Value = 100
                },
                new TestComparable {
                    Value = -500
                }
            };

            CollectionAssert.AreEqual(
                new int[] { -500, -20, 0, 15, 100, 490 },
                test.Ordered().Select(x => x.Value).ToArray()
                );

            var c = new ComparableComparer <TestComparable>();

            CollectionAssert.AreEqual(
                new int[] { 490, 100, 15, 0, -20, -500 },
                test.Ordered(c.Reversed()).Select(x => x.Value).ToArray()
                );
        }