public void ReadOnlyObservableCollectionCount()
            {
                var ints    = new ObservableCollection <int>();
                var source  = new ReadOnlyObservableCollection <int>(ints);
                var changes = new List <EventPattern <PropertyChangedEventArgs> >();

                using (source.ObservePropertyChanged(x => x.Count, signalInitial: false)
                       .Subscribe(x => changes.Add(x)))
                {
                    CollectionAssert.IsEmpty(changes);

                    ints.Add(1);
                    Assert.AreEqual(1, changes.Count);
                    Assert.AreEqual("Count", changes.Single().EventArgs.PropertyName);
                    Assert.AreSame(source, changes.Single().Sender);

                    ints.Add(2);
                    Assert.AreEqual(2, changes.Count);
                    Assert.AreEqual("Count", changes.Last().EventArgs.PropertyName);
                    Assert.AreSame(source, changes.Last().Sender);
                }
            }