public void Interpreter_must_work_with_a_massive_chain_of_drops()
{
var ops = Enumerable.Range(1, ChainLength / 1000).Select(_ => new Drop<int>(1))
.Cast<IStage<int, int>>().ToArray();
WithOneBoundedSetup(ops, (lastEvents, upstream, downstream) =>
{
lastEvents().Should().BeEmpty();
downstream.RequestOne();
lastEvents().Should().BeEquivalentTo(new RequestOne());
var i = 0;
while (i < (ChainLength / 1000))
{
upstream.OnNext(0);
lastEvents().Should().BeEquivalentTo(new RequestOne());
i++;
}
upstream.OnNext(0);
lastEvents().Should().BeEquivalentTo(new OnNext(0));
});
}