public void all_discarded_items_are_notified()
        {
            var selected = new List<int>();
            var discarded = new List<int>();
            var source = new[] { 1, 2, 3 };
            var result = source.AsObservable(x => x.Where(i => false), selected.Add, discarded.Add).ToList();

            selected.ShouldHaveCountOf(0);

            discarded.ShouldHaveCountOf(3)
                     .ShouldContain(1)
                     .ShouldContain(2)
                     .ShouldContain(3);
        }
        public void the_selected_items_trigger_notification()
        {
            var selected = new List<int>();
            var discarded = new List<int>();
            var source = new[] { 1, 2, 3 };
            var result = source.AsObservable(x => x.Where(i => i != 2), selected.Add, discarded.Add).ToList();

            selected.ShouldHaveCountOf(2)
                    .ShouldContain(1)
                    .ShouldContain(3);

            discarded.ShouldHaveCountOf(1)
                     .ShouldContain(2);
        }