public void Throttle_for_various_cost_elements_must_emit_elements_according_to_cost()
{
this.AssertAllStagesStopped(() =>
{
var list = Enumerable.Range(1, 4).Select(x => x*2).Select(GenerateByteString).ToList();
Source.From(list)
.Throttle(2, TimeSpan.FromMilliseconds(200), 0, x => x.Count, ThrottleMode.Shaping)
.RunWith(this.SinkProbe<ByteString>(), Materializer)
.Request(4)
.ExpectNext(list[0])
.ExpectNoMsg(TimeSpan.FromMilliseconds(300))
.ExpectNext(list[1])
.ExpectNoMsg(TimeSpan.FromMilliseconds(500))
.ExpectNext(list[2])
.ExpectNoMsg(TimeSpan.FromMilliseconds(700))
.ExpectNext(list[3])
.ExpectComplete();
}, Materializer);
}