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(); } }
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(); } }