public void ChangeMultipleFilter()
        {         //****************************************
            var MySeed    = Environment.TickCount;
            var MyRandom  = new Random(MySeed);
            var MyRecords = new ObservableList <TestObject>(1024);
            //****************************************

            var MyView = new ObservableListViewDynamic <TestObject>(MyRecords, Clone, (IComparer <TestObject>)null, FilterLessThan512);

            for (int Index = 0; Index < 1024; Index++)
            {
                MyRecords.Add(new TestObject(MyRandom.Next(short.MaxValue)));
            }

            for (int Index = 0; Index < 1024; Index++)
            {
                MyRecords[MyRandom.Next(1024)].Value = MyRandom.Next(short.MaxValue);
            }

            //****************************************

            var MySortedRecords = MyRecords.Where(FilterLessThan512).ToArray();

            Array.Sort(MySortedRecords);

            CollectionAssert.AreEqual(MySortedRecords, MyView, "Bad Seed was {0}", MySeed);

            Thread.Sleep(1);
        }
        public void ChangeMultipleMaximum([Values(256, 512, 1024)] int maximum)
        {         //****************************************
            var MySeed    = Environment.TickCount;
            var MyRandom  = new Random(MySeed);
            var MyRecords = new ObservableList <TestObject>(1024);
            //****************************************

            var MyView = new ObservableListViewDynamic <TestObject>(MyRecords, Clone, (IComparer <TestObject>)null, null, maximum);

            for (int Index = 0; Index < 1024; Index++)
            {
                MyRecords.Add(new TestObject(MyRandom.Next(short.MaxValue)));
            }

            for (int Index = 0; Index < 1024; Index++)
            {
                MyRecords[MyRandom.Next(1024)].Value = MyRandom.Next(short.MaxValue);
            }

            //****************************************

            var MySortedRecords = MyRecords.ToArray();

            Array.Sort(MySortedRecords);
            if (MySortedRecords.Length > maximum)
            {
                Array.Resize(ref MySortedRecords, maximum);
            }

            CollectionAssert.AreEqual(MySortedRecords, MyView, "Bad Seed was {0}", MySeed);

            Thread.Sleep(1);
        }
        public void Populate()
        {         //****************************************
            var MyRecords = new ObservableList <TestObject>(1024);

            //****************************************

            MyRecords.Add(new TestObject(1024));

            //****************************************

            var MyView = new ObservableListViewDynamic <TestObject>(MyRecords, (Func <TestObject, TestObject>)Clone);

            //****************************************

            var MySortedRecords = MyRecords.ToArray();

            Array.Sort(MySortedRecords);

            CollectionAssert.AreEqual(MySortedRecords, MyView);
        }