public void Test001()
        {
            MyObservableList <string> people = new MyObservableList <string>()
            {
                "Andrew",
                "Lei",
                "Matt"
            };

            MyObservableList <string> filteredPeople = people.Sublist(i => i.StartsWith("a", StringComparison.CurrentCultureIgnoreCase), SublistSortOption.SameAsParentList);

            AssertListsEqual(new string[] { "Andrew" }, filteredPeople);

            people.Add("Adam");

            /// Andrew
            /// Lei
            /// Matt
            /// Adam

            AssertListsEqual(new string[] { "Andrew", "Adam" }, filteredPeople);

            people.Insert(0, "Andrea");

            /// Andrea
            /// Andrew
            /// Lei
            /// Matt
            /// Adam

            AssertListsEqual(new string[] { "Andrea", "Andrew", "Adam" }, filteredPeople);

            people.Insert(3, "Austin");

            /// Andrea
            /// Andrew
            /// Lei
            /// Austin
            /// Matt
            /// Adam

            AssertListsEqual(new string[] { "Andrea", "Andrew", "Austin", "Adam" }, filteredPeople);

            people.RemoveAt(2);

            /// Andrea
            /// Andrew
            /// Austin
            /// Matt
            /// Adam

            AssertListsEqual(new string[] { "Andrea", "Andrew", "Austin", "Adam" }, filteredPeople);

            people.Insert(2, "Thomas");

            /// Andrea
            /// Andrew
            /// Thomas
            /// Austin
            /// Matt
            /// Adam

            AssertListsEqual(new string[] { "Andrea", "Andrew", "Austin", "Adam" }, filteredPeople);

            people.Insert(0, "Frank");

            /// Frank
            /// Andrea
            /// Andrew
            /// Thomas
            /// Austin
            /// Matt
            /// Adam

            AssertListsEqual(new string[] { "Andrea", "Andrew", "Austin", "Adam" }, filteredPeople);

            people.Add("Steve");

            /// Frank
            /// Andrea
            /// Andrew
            /// Thomas
            /// Austin
            /// Matt
            /// Adam
            /// Steve

            AssertListsEqual(new string[] { "Andrea", "Andrew", "Austin", "Adam" }, filteredPeople);

            people.RemoveAt(1);

            /// Frank
            /// Andrew
            /// Thomas
            /// Austin
            /// Matt
            /// Adam
            /// Steve

            AssertListsEqual(new string[] { "Andrew", "Austin", "Adam" }, filteredPeople);

            people.RemoveAt(3);

            /// Frank
            /// Andrew
            /// Thomas
            /// Matt
            /// Adam
            /// Steve

            AssertListsEqual(new string[] { "Andrew", "Adam" }, filteredPeople);

            people.Clear();

            AssertListsEqual(new string[0], filteredPeople);
        }