From c527e59b57050afbe2e065cf148a038ff0a6dc16 Mon Sep 17 00:00:00 2001
From: Jim <112640460+0xJ1M@users.noreply.github.com>
Date: Thu, 10 Jul 2025 20:02:32 +0100
Subject: [PATCH] Major refactor
---
.../AST Tests/ExpressionTreeTests.cs | 89 +++++
.../Nodes/BaseNodeTests.cs | 0
.../Nodes/NodeFactoryTests.cs | 77 +++--
.../Nodes/NumericNodeTests.cs | 43 ++-
MathEngine/EngineTests/EngineTests.csproj | 24 +-
.../EngineTests/Expression/ExpressionTests.cs | 30 ++
.../Parser Tests/ExpressionTreeTests.cs | 55 ---
.../EngineTests/Parser Tests/ParserTests.cs | 173 +++++-----
.../Parser Tests/Tokeniser/TokenIserTests.cs | 119 -------
.../Parser Tests/Tokeniser/TokenTests.cs | 323 ------------------
.../EngineTests/Parser Tests/TreeNodeTests.cs | 30 --
.../EngineTests/Tokenizer Tests/TokenTests.cs | 44 +++
.../Tokenizer Tests/TokenizerTests.cs | 115 +++++++
MathEngine/EngineTests/Usings.cs | 1 -
MathEngine/MathEngine.sln | 6 +
MathEngine/MathEngine/AST/ExpressionTree.cs | 45 +++
.../{Parser => AST}/Nodes/BaseNode.cs | 4 +-
.../{Parser => AST}/Nodes/BinaryNode.cs | 11 +-
.../{Parser => AST}/Nodes/FunctionNode.cs | 9 +-
.../{Parser => AST}/Nodes/NodeFactory.cs | 47 +--
.../{Parser => AST}/Nodes/NumericNode.cs | 10 +-
.../{Parser/Parser => AST}/TreeGenerator.cs | 30 +-
MathEngine/MathEngine/AssemblyInfo.cs | 4 +
.../MathEngine/Expression/Expression.cs | 35 ++
MathEngine/MathEngine/MathEngine.csproj | 20 +-
.../Parser/Nodes/NumericIntegerNode.cs | 90 -----
MathEngine/MathEngine/Parser/Parser.cs | 218 ++++++++++++
.../Parser/Parser/ExpressionTree.cs | 85 -----
MathEngine/MathEngine/Parser/Parser/Parser.cs | 161 ---------
.../MathEngine/Parser/ParserException.cs | 37 ++
.../MathEngine/Parser/Tokeniser/Token.cs | 285 ----------------
.../MathEngine/Parser/Tokeniser/Tokeniser.cs | 136 --------
MathEngine/MathEngine/Tokeniser/Token.cs | 144 ++++++++
MathEngine/MathEngine/Tokeniser/Tokeniser.cs | 172 ++++++++++
.../Tokeniser/TokenizerException.cs | 37 ++
MathEngine/MathRunner/MathRunner.csproj | 21 ++
MathEngine/MathRunner/Program.cs | 15 +
37 files changed, 1252 insertions(+), 1493 deletions(-)
create mode 100644 MathEngine/EngineTests/AST Tests/ExpressionTreeTests.cs
rename MathEngine/EngineTests/{Parser Tests => AST Tests}/Nodes/BaseNodeTests.cs (100%)
rename MathEngine/EngineTests/{Parser Tests => AST Tests}/Nodes/NodeFactoryTests.cs (63%)
rename MathEngine/EngineTests/{Parser Tests => AST Tests}/Nodes/NumericNodeTests.cs (80%)
create mode 100644 MathEngine/EngineTests/Expression/ExpressionTests.cs
delete mode 100644 MathEngine/EngineTests/Parser Tests/ExpressionTreeTests.cs
delete mode 100644 MathEngine/EngineTests/Parser Tests/Tokeniser/TokenIserTests.cs
delete mode 100644 MathEngine/EngineTests/Parser Tests/Tokeniser/TokenTests.cs
delete mode 100644 MathEngine/EngineTests/Parser Tests/TreeNodeTests.cs
create mode 100644 MathEngine/EngineTests/Tokenizer Tests/TokenTests.cs
create mode 100644 MathEngine/EngineTests/Tokenizer Tests/TokenizerTests.cs
delete mode 100644 MathEngine/EngineTests/Usings.cs
create mode 100644 MathEngine/MathEngine/AST/ExpressionTree.cs
rename MathEngine/MathEngine/{Parser => AST}/Nodes/BaseNode.cs (99%)
rename MathEngine/MathEngine/{Parser => AST}/Nodes/BinaryNode.cs (81%)
rename MathEngine/MathEngine/{Parser => AST}/Nodes/FunctionNode.cs (73%)
rename MathEngine/MathEngine/{Parser => AST}/Nodes/NodeFactory.cs (69%)
rename MathEngine/MathEngine/{Parser => AST}/Nodes/NumericNode.cs (90%)
rename MathEngine/MathEngine/{Parser/Parser => AST}/TreeGenerator.cs (71%)
create mode 100644 MathEngine/MathEngine/AssemblyInfo.cs
create mode 100644 MathEngine/MathEngine/Expression/Expression.cs
delete mode 100644 MathEngine/MathEngine/Parser/Nodes/NumericIntegerNode.cs
create mode 100644 MathEngine/MathEngine/Parser/Parser.cs
delete mode 100644 MathEngine/MathEngine/Parser/Parser/ExpressionTree.cs
delete mode 100644 MathEngine/MathEngine/Parser/Parser/Parser.cs
create mode 100644 MathEngine/MathEngine/Parser/ParserException.cs
delete mode 100644 MathEngine/MathEngine/Parser/Tokeniser/Token.cs
delete mode 100644 MathEngine/MathEngine/Parser/Tokeniser/Tokeniser.cs
create mode 100644 MathEngine/MathEngine/Tokeniser/Token.cs
create mode 100644 MathEngine/MathEngine/Tokeniser/Tokeniser.cs
create mode 100644 MathEngine/MathEngine/Tokeniser/TokenizerException.cs
create mode 100644 MathEngine/MathRunner/MathRunner.csproj
create mode 100644 MathEngine/MathRunner/Program.cs
diff --git a/MathEngine/EngineTests/AST Tests/ExpressionTreeTests.cs b/MathEngine/EngineTests/AST Tests/ExpressionTreeTests.cs
new file mode 100644
index 0000000..3daf91f
--- /dev/null
+++ b/MathEngine/EngineTests/AST Tests/ExpressionTreeTests.cs
@@ -0,0 +1,89 @@
+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