public void CollectionShouldBeUpdated(int section, params int[] newItems)
            {
                Setup();

                var items = new MvxObservableCollection <MvxObservableCollection <int> >
                {
                    new MvxObservableCollection <int>
                    {
                        1, 2
                    },
                    new MvxObservableCollection <int>
                    {
                        3
                    }
                };

                var flatIndex = GetFlatItemIndex(items, section, items[section].Count);
                var flatCount = GetFlatItems(items).Count() + newItems.Length;

                var sut = new FlatObservableCollection <int>(items);

                items[section].AddRange(newItems);

                Assert.AreEqual(flatCount, sut.Count);
                Assert.AreEqual(newItems, sut.Take(flatIndex, newItems.Length));
            }
            public void CollectionShouldBeUpdated(int index, int[] newItem)
            {
                Setup();

                var items     = new ObservableCollection <int[]>(new[] { new[] { 1, 2 }, new[] { 3 } });
                var flatIndex = GetFlatSectionIndex(items, index);
                var flatItems = GetFlatItems(new[] { newItem });
                var flatCount = GetFlatItems(items).Count() + flatItems.Count();

                var sut = new FlatObservableCollection <int>(items);

                items.Insert(index, newItem);

                Assert.AreEqual(flatCount, sut.Count);
                Assert.AreEqual(flatItems, sut.Take(flatIndex, newItem.Length));
            }