Пример #1
0
        public void SequenceHashCode()
        {
            var ascending = new[] { 1, 2, 3, 4, 5, 6 };
            var neither   = new[] { 1, 6, 5, 2, 3, 4 };

            Assert.AreNotEqual(ascending.SequenceHashCode(), neither.SequenceHashCode());             // not guaranteed, but should be very unlikely
            Assert.AreEqual(ascending.SequenceHashCode(), neither.OrderBy(x => x).SequenceHashCode());

            var equality = ObjectUtility.CreateEqualityComparer <int>((x, y) => x % 2 == y % 2, x => x % 2);

            Assert.AreEqual(ascending.SequenceHashCode(equality), neither.SequenceHashCode(equality));
        }