private void SetupForPropertyChangeTests(Action <ObservableList <int> > randomChangeFunction)
        {
            RandomGenerator.ResetRandomGenerator();

            var lists = Enumerable.Range(0, 10).Select(_ => new ObservableList <int>()).ToArray();

            var list = new ObservableList <ActiveSelectManyTestClass>();

            foreach (var value in lists)
            {
                var item = new ActiveSelectManyTestClass()
                {
                    Property = value
                };
                foreach (var num in Enumerable.Range(0, 100).Select(i => RandomGenerator.GenerateRandomInteger()))
                {
                    value.Add(value.Count, num);
                }
                list.Add(list.Count, item);
            }

            var sut       = list.ToActiveList().ActiveSelectMany(o => o.Property);
            var watcher   = new CollectionSynchronizationWatcher <int>(sut);
            var validator = new LinqValidator <ActiveSelectManyTestClass, ActiveSelectManyTestClass, int>(list, sut, l => l.SelectMany(o => o.Property), false, null);

            foreach (var value in Enumerable.Range(0, 100))
            {
                var listIndex = RandomGenerator.GenerateRandomInteger(0, lists.Length);
                randomChangeFunction.Invoke(lists[listIndex]);
                validator.Validate();
            }
        }
Example #2
0
		public void RandomlyChangeCount()
		{
			RandomGenerator.ResetRandomGenerator();

			var value = new ActiveValue<int>(0);
			var count = new ActiveValue<int>(10);

			var sut = ActiveEnumerable.ActiveRepeat(value, count);
			var watcher = new CollectionSynchronizationWatcher<int>(sut);
			var validator = new LinqValidator<int, int, int>(() => { try { return Enumerable.Repeat(value.Value, count.Value).ToArray(); } catch { return new int[0]; } }, sut, l => l, false, i => i);

			foreach (var num in Enumerable.Range(0, 500))
			{
				count.Value = RandomGenerator.GenerateRandomInteger(-5, 50);
				validator.Validate();
			}
		}
        public void RandomlyChangeStart()
        {
            RandomGenerator.ResetRandomGenerator();

            var start = new ActiveValue <int>(0);
            var count = new ActiveValue <int>(10);

            var sut       = ActiveEnumerable.ActiveRange(start, count);
            var watcher   = new CollectionSynchronizationWatcher <int>(sut);
            var validator = new LinqValidator <int, int, int>(() => Enumerable.Range(start.Value, count.Value).ToArray(), sut, l => l, false, i => i);

            foreach (var value in Enumerable.Range(0, 500))
            {
                start.Value = RandomGenerator.GenerateRandomInteger(-50, 50);
                validator.Validate();
            }
        }
        public void RandomlyChangeIndex()
        {
            RandomGenerator.ResetRandomGenerator();

            var list = new ObservableList <int>();

            foreach (var value in Enumerable.Range(0, 100))
            {
                list.Add(list.Count, RandomGenerator.GenerateRandomInteger());
            }

            var index = new ActiveValue <int>();

            var sut       = list.ActiveSkip(index);
            var watcher   = new CollectionSynchronizationWatcher <int>(sut);
            var validator = new LinqValidator <int, int, int>(list, sut, l => l.Skip(index.Value), false, null);

            foreach (var value in Enumerable.Range(0, 100))
            {
                index.Value = RandomGenerator.GenerateRandomInteger(-10, 110);

                validator.Validate();
            }
        }
        public void RandomlyChangeDirection()
        {
            RandomGenerator.ResetRandomGenerator();

            var list = new ObservableList <int>();

            foreach (var value in Enumerable.Range(0, 100))
            {
                list.Add(list.Count, RandomGenerator.GenerateRandomInteger());
            }

            var index = new ActiveValue <ListSortDirection>();

            var sut       = list.ActiveOrderBy(i => i, index);
            var watcher   = new CollectionSynchronizationWatcher <int>(sut);
            var validator = new LinqValidator <int, int, int>(list, sut, l => index.Value == ListSortDirection.Ascending ? l.OrderBy(i => i) : l.OrderByDescending(i => i), false, null);

            foreach (var value in Enumerable.Range(0, 10))
            {
                index.Value = RandomGenerator.GenerateRandomInteger(0, 2) == 0 ? ListSortDirection.Ascending : ListSortDirection.Descending;

                validator.Validate();
            }
        }