public void ObservableCollectionEx_TestInsertRange()
        {
            ObservableCollectionEx <int> collection = new ObservableCollectionEx <int>();
            List <int> list = new List <int>();

            for (var i = 200001; i <= 300000; i++)
            {
                list.Add(i);
            }
            collection.AddRange(list);

            Assert.AreEqual(100000, collection.Count);
            Assert.AreEqual(300000, collection[collection.Count - 1]);

            list = new List <int>();
            for (var i = 1; i <= 100000; i++)
            {
                list.Add(i);
            }
            collection.InsertRange(list);

            Assert.AreEqual(200000, collection.Count);
            Assert.AreEqual(1, collection[0]);
            Assert.AreEqual(100000, collection[99999]);
            Assert.AreEqual(300000, collection[collection.Count - 1]);

            list = new List <int>();
            for (var i = 100001; i <= 200000; i++)
            {
                list.Add(i);
            }
            collection.InsertRange(100000, list);

            Assert.AreEqual(300000, collection.Count);
            Assert.AreEqual(1, collection[0]);
            Assert.AreEqual(100000, collection[99999]);
            Assert.AreEqual(100001, collection[100000]);
            Assert.AreEqual(200000, collection[199999]);
            Assert.AreEqual(200001, collection[200000]);
            Assert.AreEqual(300000, collection[collection.Count - 1]);
        }