public void RemoveRangeTest() { var source = new RangedObservableCollection <Person>(new[] { new Person { Name = "tanaka1", IsRemoved = false }, new Person { Name = "tanaka2", IsRemoved = true }, new Person { Name = "tanaka3", IsRemoved = false }, new Person { Name = "tanaka4", IsRemoved = true }, new Person { Name = "tanaka5", IsRemoved = false }, }); var filtered = source.ToFilteredReadOnlyObservableCollection(x => !x.IsRemoved); var buffer = new List <NotifyCollectionChangedEventArgs>(); filtered.Is(source[0], source[2], source[4]); source.RemoveRange(new[] { source[0], source[1], source[2], }); filtered.Is(source.Last()); }
public void ReplaceRangeTest() { var c = new RangedObservableCollection <Person>(); var filtered = c.ToFilteredReadOnlyObservableCollection(x => x.IsRemoved); var people = Enumerable.Range(1, 1000000).Select(x => new Person { Name = $"tanaka {x}", IsRemoved = x % 2 == 0, }); c.ReplaceRange(people); filtered.Count.Is(500000); }
public void AddRangeSmallItemsCaseTest() { var c = new RangedObservableCollection <Person>(); var filtered = c.ToFilteredReadOnlyObservableCollection(x => x.IsRemoved); var people = Enumerable.Range(1, 6).Select(x => new Person { Name = $"tanaka {x}", IsRemoved = x % 2 == 0, }); c.AddRange(people); filtered.Count.Is(3); }