public void Conveyor_500_to_1500__by_5_to_10__PushA_1000(IConveyorBuilder builder) { var random = new Random(616); var timer = Stopwatch.StartNew(); for (var count = 500; count <= 1500; count += 500) { var segments = Enumerable .Repeat(0, count) .Select(__ => ((byte)random.Next(5, 10), (byte)random.Next(5, 10))) .ToArray(); timer.Reset(); var sut = builder .WithSegments(segments) .Build(); _output.WriteLine($"{sut.GetType().Name}@{count} initialize: {timer.ElapsedMilliseconds} ms"); timer.Reset(); var result = Enumerable .Repeat(0, 1000) .Select(__value => sut.PushA(__value)) .ToArray(); _output.WriteLine($"{sut.GetType().Name}@{count} PushA {1000} times: {timer.ElapsedMilliseconds} ms"); } }
public void Conveyor_11_11_PushB(IConveyorBuilder builder) { var sut = builder .WithSegments((1, 1), (1, 1)) .WithInput((1, null), (0, null), (0, null), (0, null)) .Build(); var result = sut.PushB(0); result.Should().Be(1); }
public void Conveyor_21_41_PushB_Full(IConveyorBuilder builder) { var sut = builder .WithSegments((2, 1), (3, 1)) .WithInput((1, null), (2, null), (3, null), (4, null), (5, null), (6, null), (7, null)) .Build(); var result = Enumerable.Range(8, 4).Select(__value => sut.PushB(__value)).ToArray(); result.Should().HaveCount(4); result.Should().BeEquivalentTo(new[] { 1, 0, 5, 0 }); }
public void Conveyor_11_11_PushA_Full(IConveyorBuilder builder) { var sut = builder .WithSegments((1, 1), (1, 1)) .WithInput((1, null), (2, null), (3, null), (4, null)) .Build(); var result = Enumerable.Range(5, 4).Select(__value => sut.PushA(__value)).ToArray(); result.Should().HaveCount(4); result.Should().BeEquivalentTo(new[] { 1, 2, 3, 4 }); }