mirror of
https://github.com/0xJ1M/MathsEngine.git
synced 2026-06-05 02:00:06 +00:00
89 lines
2.9 KiB
C#
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));*/
|
|
//}
|
|
}
|
|
} |