public void CollectionShouldBeUpdated(int start, int count)
            {
                Setup();

                var items = new MvxObservableCollection <int> {
                    1, 2, 3, 4, 5, 6
                };
                var oldItems = Transform(items.ToArray().Take(start, count));

                var sut = new WrappedObservableCollection <int, string>(items, Factory);

                items.RemoveRange(start, count);

                Assert.AreEqual(items.Count, sut.Count);
                CollectionAssert.IsNotSubsetOf(oldItems, sut);
            }
            public void RemoveEventShouldBeRaised(int start, int count)
            {
                Setup();

                var events = new List <NotifyCollectionChangedEventArgs>();
                var items  = new MvxObservableCollection <int> {
                    1, 2, 3, 4, 5, 6
                };
                var oldItems = Transform(items.ToArray().Take(start, count));

                var sut = new WrappedObservableCollection <int, string>(items, Factory);

                sut.CollectionChanged += (_, args) => events.Add(args);

                items.RemoveRange(start, count);

                Assert.AreEqual(1, events.Count);
                Assert.AreEqual(NotifyCollectionChangedAction.Remove, events[0].Action);
                Assert.AreEqual(start, events[0].OldStartingIndex);
                Assert.AreEqual(oldItems, events[0].OldItems);
            }