public void Interpreter_must_work_with_a_massive_chain_of_takes()
{
var ops = Enumerable.Range(1, ChainLength / 10).Select(_ => new Take<int>(1))
.Cast<IStage<int, int>>().ToArray();
WithOneBoundedSetup(ops, (lastEvents, upstream, downstream) =>
{
lastEvents().Should().BeEmpty();
downstream.RequestOne();
lastEvents().Should().BeEquivalentTo(new RequestOne());
upstream.OnNext(0);
lastEvents().Should().BeEquivalentTo(new OnNext(0), new Cancel(), new OnComplete());
});
}