Exemple #1
0
        public void GetNext_ShouldThrowWhenNoStatementsLeft()
        {
            // arrange
            Tape tape = new Tape("+");

            // act
            _ = tape.GetNext(0);

            // assert
            Assert.Throws <IndexOutOfRangeException>(() => tape.GetNext(0));
        }
Exemple #2
0
        public void SecondGetNext_ShouldReturnSecondStatement()
        {
            // arrange
            Tape tape = new Tape("+-");

            // act
            _ = tape.GetNext(0);
            var s = tape.GetNext(0);

            // assert
            Assert.Equal(Statement.Types.Decrement, s.Type);
        }
Exemple #3
0
        public void GetNext_ReturnsFirstAfterLoopWhenValueIsZeroAtEnd()
        {
            // arrange
            Tape tape = new Tape("[-].");

            // act
            var statement = tape.GetNext(1);

            Assert.Equal(Statement.Types.Decrement, statement.Type);

            statement = tape.GetNext(0);

            Assert.Equal(Statement.Types.Write, statement.Type);
        }
Exemple #4
0
        public void GetNext_ReturnsNextInsideWhileWhenValueIsOne()
        {
            // arrange
            Tape tape = new Tape("[----].");

            // act
            var statement = tape.GetNext(1);

            // assert
            Assert.Equal(Statement.Types.Decrement, statement.Type);
        }
Exemple #5
0
        public void GetNext_ReturnsNextAfterWhileWhenValueIsZero()
        {
            // arrange
            Tape tape = new Tape("[----].");

            // act
            var statement = tape.GetNext(0);

            // assert
            Assert.Equal(Statement.Types.Write, statement.Type);
        }
Exemple #6
0
        public void FirstGetNext_ShouldReturnFirstStatement()
        {
            // arrange
            Tape tape = new Tape(">");

            // act
            var s = tape.GetNext(0);

            // assert
            Assert.Equal(Statement.Types.IncreasePointer, s.Type);
        }
Exemple #7
0
        /// <summary>
        /// Convertiert das Turing Band
        /// </summary>
        /// <returns>konvertierte Band</returns>
        private string ConvertTape()
        {
            string strBand = "(";
            Tape   tp      = m_TM.GetTape;

            while (tp != null)
            {
                string symbl    = tp.GetSign();
                string NewSymbl = ConvertSymbol(symbl);
                strBand += NewSymbl;
                tp       = tp.GetNext();
            }
            return(strBand + ")");
        }