public void TokenizeOrTokenTest( ) { Token result = Token.Tokenize("a|a|a|a"); Assert.IsInstanceOfType(result, typeof(GroupToken)); GroupToken group = result as GroupToken; Assert.AreEqual(1, group.Content.Count); Assert.IsInstanceOfType(group.Content.First( ), typeof(OrToken)); OrToken orToken = group.Content.First( ) as OrToken; Assert.AreEqual(4, orToken.Alternatives.Count); foreach (Token t in orToken.Alternatives) { Assert.AreEqual(Token.TokenType.Literal, t.Type); Assert.AreEqual("a", t.Text); } var badPatterns = new[] { "a|b|", "|a|b", "a||b" }; foreach (var pattern in badPatterns) { try { Token t = Token.Tokenize(pattern); Assert.Fail("no exception thrown for pattern: " + pattern); } catch (ParsingException) { } } }
public void TestTokenProperties() { IntegerToken lhs = new IntegerToken(1); IntegerToken rhs = new IntegerToken(2); OrToken result = new OrToken(0, lhs, rhs); Assert.AreEqual(lhs, result.Lhs); Assert.AreEqual(rhs, result.Rhs); }