/// <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); }