Files
R3/tests/R3.Tests/FactoryTests/TimerFrameTest.cs
2024-01-09 03:03:43 +09:00

103 lines
2.6 KiB
C#

namespace R3.Tests.FactoryTests;
public class TimerFrameTest
{
[Fact]
public void TimerSingle()
{
{
var fakeTime = new FakeFrameProvider();
var list = Observable.TimerFrame(0, fakeTime).ToLiveList();
fakeTime.Advance(1);
list.AssertIsCompleted();
list.AssertEqual([Unit.Default]);
}
{
var fakeTime = new FakeFrameProvider();
var list = Observable.TimerFrame(1, fakeTime).ToLiveList();
fakeTime.Advance(1);
list.AssertIsCompleted();
list.AssertEqual([Unit.Default]);
}
{
var fakeTime = new FakeFrameProvider();
var list = Observable.TimerFrame(2, fakeTime).ToLiveList();
fakeTime.Advance(2);
list.AssertIsCompleted();
list.AssertEqual([Unit.Default]);
}
}
[Fact]
public void TimerSingle2()
{
var fakeTime = new FakeFrameProvider();
var list = Observable.TimerFrame(5, fakeTime).ToLiveList();
fakeTime.Advance(4);
list.AssertIsNotCompleted();
fakeTime.Advance(1);
list.AssertIsCompleted();
list.AssertEqual(new[] { Unit.Default });
}
[Fact]
public void TimerMulti()
{
var cts = new CancellationTokenSource();
var fakeTime = new FakeFrameProvider();
var list = Observable.TimerFrame(5, 8, fakeTime, cts.Token).ToLiveList();
fakeTime.Advance(4);
list.AssertIsNotCompleted();
fakeTime.Advance(1);
list.AssertIsNotCompleted();
list.AssertEqual([Unit.Default]);
fakeTime.Advance(7);
list.AssertEqual([Unit.Default]);
fakeTime.Advance(1);
list.AssertEqual([Unit.Default, Unit.Default]);
fakeTime.Advance(8);
list.AssertEqual([Unit.Default, Unit.Default, Unit.Default]);
cts.Cancel();
list.AssertIsCompleted();
}
[Fact]
public void Interval()
{
var cts = new CancellationTokenSource();
var fakeTime = new FakeFrameProvider();
var list = Observable.IntervalFrame(5, fakeTime, cts.Token).ToLiveList();
fakeTime.Advance(4);
list.AssertIsNotCompleted();
fakeTime.Advance(1);
list.AssertIsNotCompleted();
list.AssertEqual([Unit.Default]);
fakeTime.Advance(4);
list.AssertEqual([Unit.Default]);
fakeTime.Advance(1);
list.AssertEqual([Unit.Default, Unit.Default]);
fakeTime.Advance(5);
list.AssertEqual([Unit.Default, Unit.Default, Unit.Default]);
cts.Cancel();
list.AssertIsCompleted();
}
}