public void Token_Can_Get_Arithmetic_Operator_From_Token()
{
// Non operators
Assert.AreEqual(ArithmeticOperator.Unknown, new Token(TokenType.OpeningParenthesis, "(").GetArithmeticOperator());
Assert.AreEqual(ArithmeticOperator.Unknown, new Token(TokenType.ClosingParenthesis, ")").GetArithmeticOperator());
Assert.AreEqual(ArithmeticOperator.Unknown, new Token(TokenType.Numeric, 0D).GetArithmeticOperator());
Assert.AreEqual(ArithmeticOperator.Unknown, new Token(TokenType.Variable, "x").GetArithmeticOperator());
// Operators
Assert.AreEqual(ArithmeticOperator.Addition, new Token(TokenType.Addition, "+").GetArithmeticOperator());
Assert.AreEqual(ArithmeticOperator.Subtraction, new Token(TokenType.Subtraction, "-").GetArithmeticOperator());
Assert.AreEqual(ArithmeticOperator.Multiplication, new Token(TokenType.Multiplication, "*").GetArithmeticOperator());
Assert.AreEqual(ArithmeticOperator.Division, new Token(TokenType.Division, "/").GetArithmeticOperator());
Assert.AreEqual(ArithmeticOperator.Exponentiation, new Token(TokenType.Exponentiation, "^").GetArithmeticOperator());
Assert.AreEqual(ArithmeticOperator.Negation, new Token(TokenType.Negation, "-").GetArithmeticOperator());
}