Пример #1
0
        public void AddShouldSort()
        {
            var list = OrderedCollection <int> .Create(n => n);

            list.Add(2);
            list.Add(-1);
            list.Add(3);
            list.Add(0);

            Assert.Equal(new[] { -1, 0, 2, 3 }, list);
            list.AssertIsSorted(o => o);
        }
Пример #2
0
        public void AddItemWithSameOrderValueShouldBeAddedToEndOfGroup()
        {
            var list = OrderedCollection <TestObj> .Create(n => n.Order);

            list.Add(new TestObj(2));
            list.Add(new TestObj(2));
            list.Add(new TestObj(3));
            var thirdObject = new TestObj(2);

            list.Add(thirdObject);

            Assert.Equal(thirdObject, list.ElementAt(2));
            list.AssertIsSorted(o => o.Order);
        }
Пример #3
0
        public void RandomTest()
        {
            var list = OrderedCollection <TestNotifyObj> .Create(n => n.Order);

            var random  = new Random();
            var indices = Enumerable.Range(1, 10000).ToList();
            var items   = indices.Select(i => new TestNotifyObj(i % 100)).ToList();

            foreach (var item in items)
            {
                list.Add(item);
            }

            list.AssertIsSorted(i => i.Order);

            foreach (var item in items)
            {
                item.Order = random.Next(0, 99);
            }
            list.AssertIsSorted(i => i.Order);
        }
Пример #4
0
        public void ItemShouldBeMovedOnOrderPropertyChanged()
        {
            var list = OrderedCollection <TestNotifyObj> .Create(n => n.Order);

            var o1   = new TestNotifyObj(2);
            var o2   = new TestNotifyObj(3);
            var o0_1 = new TestNotifyObj(1);

            list.Add(o1);
            list.Add(o2);
            var testObj = o0_1;

            list.Add(testObj);

            Assert.Equal(new[] { o0_1, o1, o2 }, list);

            testObj.Order = 2;
            Assert.Equal(new[] { o1, o0_1, o2 }, list);

            list.AssertIsSorted(o => o.Order);
        }