public void ChangeTreeShoudComplementAllTreeMembers(string input, string output) { var tokenizer = syntax.GetTokenizer(); var tokensResult = tokenizer.TryTokenize(input); var parseResult = grammar.BuildTree(tokensResult.Value); var expr = parseResult.Value; var actual = expr.SubstituteNode(x => true, x => new Negation("'", x)); var expectedTokens = tokenizer.TryTokenize(output).Value; var expected = grammar.BuildTree(expectedTokens).Value; var equal = TreeUtils.StrictEquals(expected, actual); Assert.IsTrue(equal, "The tree is not complemented"); }
public void InterpreterReturnsExpectedResultsAllSimpleRules(string input, string expected) { var tokenizer = syntax.GetTokenizer(); var tokensResult = tokenizer.TryTokenize(input); var parseResult = grammar.BuildTree(tokensResult.Value); var resultLines = simplifier.Run(parseResult.Value); var actual = resultLines.Last().SimplifiedExpression; var actualTokens = tokenizer.TryTokenize(actual).Value; var actualTree = grammar.BuildTree(actualTokens).Value; var expectedTokens = tokenizer.TryTokenize(expected).Value; var expectedTree = grammar.BuildTree(expectedTokens).Value; var equal = expectedTree.StrictEquals(actualTree); Assert.IsTrue(equal, "Not equal"); }
public void TokenizerReturnsResultOnValidInputPerLexema(string input) { var result = syntax.GetTokenizer().TryTokenize(input); Assert.IsTrue(result.HasValue); }