public void Expand_must_work_on_a_variable_rate_chain()
{
var future = Source.From(Enumerable.Range(1, 100))
.Select(x =>
{
if (ThreadLocalRandom.Current.Next(1, 3) == 2)
Thread.Sleep(10);
return x;
})
.Expand(i => Enumerable.Repeat(i, 200).GetEnumerator())
.RunAggregate(new HashSet<int>(), (agg, elem) =>
{
agg.Add(elem);
return agg;
}, Materializer);
future.Wait(TimeSpan.FromSeconds(10)).Should().BeTrue();
future.Result.ShouldAllBeEquivalentTo(Enumerable.Range(1, 100));
}