Files
MathsEngine/MathEngine/EngineTests/AST Tests/ExpressionTreeTests.cs
2025-10-14 17:59:24 +01:00

89 lines
2.9 KiB
C#

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
{
/// <summary>
/// Class for testing the ExpressionTree Class
/// </summary>
public class ExpressionTreeTests
{
public static IEnumerable<object[]> 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<object[]> {
new object[] { "1+1", true },
};
}
}
/// <summary>
/// Test to see if a simple expression is constructed correctly
/// </summary>
[Theory]
[MemberData(nameof(TestASTConstructionCases))]
public void TestExpressionTreeSimpleExpression(string expression, object expected_result)
{
Assert.True(true);
//List<Token> tokens = ExpressionTokenizer.Tokenize(expression);
//Queue<Token> rpn_form = Parser.Parse(tokens);
//BaseNode returned_reuslt = TreeGenerator.TreeFromRPN(rpn_form);
//Assert.Equal(expected_result, returned_reuslt);
}
///// <summary>
///// Test to see if a simple expression is evaluated correctly
///// </summary>
//[Fact]
//public void TestExpressionTreeSimpleExpressionEvaluation()
//{
// Assert.Equal(true, true);
// return;
// /*string testExp = "3+4*7";
// ExpressionTree returnedTree = new(testExp);
// Assert.IsTrue(returnedTree.ToString() == "31");*/
//}
///// <summary>
///// Test to see if a simple expression using all base operators (+,-,*,/) is evaluated correctly
///// </summary>
//[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));*/
//}
}
}