Beispiel #1
0
        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");
        }
Beispiel #2
0
        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");
        }
Beispiel #3
0
        public void TokenizerReturnsResultOnValidInputPerLexema(string input)
        {
            var result = syntax.GetTokenizer().TryTokenize(input);

            Assert.IsTrue(result.HasValue);
        }