public void time_offset_excludes_values_of_exact_offset()
{
var stats = new StatsObserver<IList<int>>();
var valueScheduler = new ManualScheduler();
var bufferScheduler = new ManualScheduler();
DateTimeOffset startTime = DateTimeOffset.UtcNow;
Observable.Range(0, 5, valueScheduler)
.BufferWithTime(TimeSpan.FromMilliseconds(30), TimeSpan.FromMilliseconds(20), bufferScheduler)
.Subscribe(stats);
Assert.IsFalse(stats.NextCalled);
bufferScheduler.Now = startTime.AddMilliseconds(10);
valueScheduler.RunNext();
bufferScheduler.Now = startTime.AddMilliseconds(20); // exact offset value
valueScheduler.RunNext();
bufferScheduler.Now = startTime.AddMilliseconds(30);
valueScheduler.RunNext();
bufferScheduler.RunNext();
bufferScheduler.RunNext();
Assert.AreEqual(2, stats.NextCount);
Assert.AreEqual(1, stats.NextValues[1].Count);
}