public void Result_is_updated_after_Replace() { var subject = new ObservableCollection <int>(new [] { 10, 11, 12, 11, 12, 10, 12, 17 }); var result = subject.ToQueryable().Distinct().ToObservable(); Assert.IsInstanceOfType(result, typeof(IQueryableObservableCollection <int>)); var events = new List <NotifyCollectionChangedEventArgs>(); result.CollectionChanged += (s, e) => events.Add(e); subject[0] = 13; EnumerableAssert.AreEqual(result, 13, 11, 12, 10, 17); Assert.AreEqual(2, events.Count); subject[0] = 13; EnumerableAssert.AreEqual(result, 13, 11, 12, 10, 17); Assert.AreEqual(2, events.Count); subject[1] = 12; EnumerableAssert.AreEqual(result, 13, 12, 11, 10, 17); Assert.AreEqual(3, events.Count); }