public static void Remove() { var reference = new ObservableCollection <int> { 1, 2, 3 }; using var expected = reference.SubscribeAll(); var batchCollection = new DispatchingCollection <int>(reference); using var actual = batchCollection.SubscribeAll(); reference.Remove(1); batchCollection.Remove(1); CollectionAssert.AreEqual(reference, batchCollection); CollectionAssert.AreEqual(expected, actual, EventArgsComparer.Default); reference.Remove(2); batchCollection.Remove(2); CollectionAssert.AreEqual(reference, batchCollection); CollectionAssert.AreEqual(expected, actual, EventArgsComparer.Default); }