using Xunit; using MathEngine.Tokenizer; using static MathEngine.Tokenizer.Token; using System.Collections.Generic; using Xunit.Sdk; using MathEngine.Parser; using MathEngine.AST.Nodes; using MathEngine.AST; namespace EngineTests { /// /// Class for testing the ExpressionTree Class /// public class ExpressionTreeTests { public static IEnumerable TestASTConstructionCases { get { Token one = new("1", TokenType.Numeric); Token two = new("2", TokenType.Numeric); Token three = new("3", TokenType.Numeric); Token four = new("4", TokenType.Numeric); Token five = new("5", TokenType.Numeric); return new List { new object[] { "1+1", true }, }; } } /// /// Test to see if a simple expression is constructed correctly /// [Theory] [MemberData(nameof(TestASTConstructionCases))] public void TestExpressionTreeSimpleExpression(string expression, object expected_result) { Assert.True(true); //List tokens = ExpressionTokenizer.Tokenize(expression); //Queue rpn_form = Parser.Parse(tokens); //BaseNode returned_reuslt = TreeGenerator.TreeFromRPN(rpn_form); //Assert.Equal(expected_result, returned_reuslt); } ///// ///// Test to see if a simple expression is evaluated correctly ///// //[Fact] //public void TestExpressionTreeSimpleExpressionEvaluation() //{ // Assert.Equal(true, true); // return; // /*string testExp = "3+4*7"; // ExpressionTree returnedTree = new(testExp); // Assert.IsTrue(returnedTree.ToString() == "31");*/ //} ///// ///// Test to see if a simple expression using all base operators (+,-,*,/) is evaluated correctly ///// //[Fact] //public void TestExpressionTreeSimpleExpressionAllBaseOperatorsEvaluation() //{ // Assert.Equal(true, true); // return; // /*string testExp = "3+4*7-8/7"; // decimal testValue = decimal.Divide(209 , 7); // ExpressionTree returnedTree = new(testExp); // Assert.IsTrue(returnedTree.ToString() == testValue.ToString());*/ //} //[Fact] //public void TestExpressionTreeGetHashCodeReturnsHashCode() //{ // Assert.Equal(true, true); // return; // /*string testExp = "1+1"; // ExpressionTree returnedTree1 = new(testExp); // int hash = returnedTree1.GetHashCode(); // Assert.IsInstanceOfType(hash, typeof(int));*/ //} } }