public void WhenThereAreTwoRails_ThenTheSequenceIsGeneratedCorrectly(int[] validSequence) { var railSelector = new RailSelector(2, validSequence.Length); var position = 0; foreach (var rail in railSelector.NextRail()) { rail.Should().Be(validSequence[position]); position++; } }
public void ConfirmRailSelection(int numRails, int[] expectedSequence) { var railSelector = new RailSelector(numRails, expectedSequence.Length); var idx=0; foreach(var nextRail in railSelector.NextRail()) { Assert.That(nextRail, Is.EqualTo(expectedSequence[idx]), string.Format("Rails:{0} Pos:{1}", numRails, idx)); idx++; } }
public string Convert(string s, int numRows) { var rows = new List<string>(); for(var rail=0; rail < numRows; ++rail) { rows.Add(string.Empty); } var railSelector = new RailSelector(numRows, s.Length); var idx = 0; foreach(var nextRail in railSelector.NextRail()) { rows[nextRail-1] += s[idx]; idx++; } var builder = new StringBuilder(); foreach(var railText in rows) { builder.Append(railText); } return builder.ToString(); }