/// <summary>
        /// Валидация последовательности элементов
        /// </summary>
        /// <param name="tokens"></param>
        /// <returns></returns>
        private bool ValidateTokenSequence(TokenCollection tokens)
        {
            bool isValid           = true;
            var  sequenceValidator = new TokenSequenceValidator();

            for (int i = 0; i < tokens.Count; i++)
            {
                (string, string)tokenTypeTuple;
                if (i == 0)
                {
                    tokenTypeTuple = (TokenSequenceValidator.first, tokens[i].Name);
                }
                else
                {
                    tokenTypeTuple = (tokens[i - 1].Name, tokens[i].Name);
                }

                isValid = sequenceValidator.Validate(tokenTypeTuple);
                if (!isValid)
                {
                    return(isValid);
                }
            }
            return(sequenceValidator.Validate((TokenSequenceValidator.last, tokens.Last().Name)));
        }
        public void ValidateCorrectSequenceTest()
        {
            //Arrange
            var sequenceValidator = new TokenSequenceValidator();
            var tupleSequence     = ("Open" + nameof(BracketToken), nameof(NumericToken));
            //Act
            var correctSequence = sequenceValidator.Validate(tupleSequence);

            //Assert
            Assert.IsTrue(correctSequence);
        }
        public void ValidateCorrectValueTest()
        {
            //Arrange
            var sequenceValidator = new TokenSequenceValidator();
            var tupleSequence     = ("AbraCadabra", nameof(NumericToken));
            //Act
            var correctSequence = sequenceValidator.Validate(tupleSequence);

            //Assert
            Assert.IsFalse(correctSequence);
        }
        public void ValidateIncorrectSequenceTest()
        {
            //Arrange
            var sequenceValidator = new TokenSequenceValidator();
            var tupleSequence     = (nameof(OperatorToken), "Close" + nameof(BracketToken));
            //Act
            var correctSequence = sequenceValidator.Validate(tupleSequence);

            //Assert
            Assert.IsFalse(correctSequence);
        }