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