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