using Xunit; using MathEngine.Tokenizer; using static MathEngine.Tokenizer.Token; namespace EngineTests.Tokeniser { /// /// Class for testing the Token /// public class TokenTests { public static IEnumerable TestConstructorCases { get { return new List { new object[] { "123", Token.TokenType.Numeric, (uint)0 }, new object[] { "+", Token.TokenType.Operator, (uint)0 }, new object[] { "Sin", Token.TokenType.Function, (uint)1 } }; } } /// /// Test that Token constructor returns valid token /// [Theory] [MemberData(nameof(TestConstructorCases))] public void TestTokenConstructorReturnsToken(string value, int type, uint arity = 0) { TokenType t_type = (TokenType)(type); Token token = new(value, t_type, arity); Assert.Equal(token.Value, value); Assert.Equal(token.Type, t_type); Assert.Equal(token.Arity, arity); } } }