예제 #1
0
        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();
        }