BigIntTests.cs 881 B

1234567891011121314151617181920212223242526272829
  1. using Jint.Native;
  2. namespace Jint.Tests.Runtime;
  3. public class BigIntTests
  4. {
  5. [Theory]
  6. [InlineData("a = a + b;", "146")]
  7. [InlineData("a = a - b;", "100")]
  8. [InlineData("a = a * b;", "2829")]
  9. [InlineData("a = a / b;", "5")]
  10. [InlineData("a += b;", "146")]
  11. [InlineData("a -= b;", "100")]
  12. [InlineData("a *= b;", "2829")]
  13. [InlineData("a /= b;", "5")]
  14. public void BasicOperations(string statement, string expected)
  15. {
  16. var outputValues = new List<JsValue>();
  17. var engine = new Engine()
  18. .SetValue("log", outputValues.Add);
  19. engine.Evaluate("let a = 123n; let b = 23n;");
  20. engine.Evaluate(statement);
  21. engine.Evaluate("log(a)");
  22. Assert.True(outputValues[0].IsBigInt(), "The type of the value is expected to stay BigInt");
  23. Assert.Equal(expected, outputValues[0].ToString());
  24. }
  25. }