Пример #1
0
        public void AddMany_ManyIsNotValidTest()
        {
            //Arrange
            var             stringTokens      = "( 2 + 3)/ 10".Split();
            TokenCollection tokens            = new TokenCollection();
            const int       summaryTokenCount = 5;
            const int       brokenTokensCount = 1;

            //Act
            tokens.AddMany(stringTokens);
            //Assert
            Assert.AreEqual(summaryTokenCount, tokens.Count);
            Assert.AreEqual(brokenTokensCount, tokens.Where(token => token is UnknownToken).Count());
        }
Пример #2
0
        /// <summary>
        /// Валидация скобок
        /// </summary>
        /// <param name="tokens"></param>
        /// <returns></returns>
        private bool ValidateBrackets(TokenCollection tokens)
        {
            var brackets     = tokens.Where(t => t is BracketToken).Cast <BracketToken>().ToList();
            int bracketState = 0;

            foreach (var bracket in brackets)
            {
                if (bracket.IsOpening)
                {
                    bracketState++;
                }
                else
                {
                    bracketState--;
                }
                if (bracketState < 0)
                {
                    return(false);
                }
            }

            return(bracketState == 0);
        }