public void Collect_ArgumentChecking()
        {
            var someObservable = Observable.Empty <int>();

            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Collect(default(IObservable <int>), () => 0, (x, y) => x));
            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Collect(someObservable, default(Func <int>), (x, y) => x));
            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Collect(someObservable, () => 0, default));

            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Collect(default(IObservable <int>), () => 0, (x, y) => x, x => x));
            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Collect(someObservable, default(Func <int>), (x, y) => x, x => x));
            ReactiveAssert.Throws <ArgumentNullException>(() => Observable.Collect(someObservable, () => 0, default, x => x));