BigInt.as 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include "Scripts/Utilities/Assert.as"
  2. void Test_Math_BigInt()
  3. {
  4. Assert(BigInt().ToString() == "0");
  5. Assert(BigInt("9999999999999").ToString() == "9999999999999");
  6. {
  7. BigInt bi1("9999999999999");
  8. BigInt bi2("1");
  9. Assert((bi1 + bi2).ToString() == "10000000000000");
  10. }
  11. {
  12. BigInt bi("9999999999999");
  13. Assert((bi += 1).ToString() == "10000000000000");
  14. }
  15. {
  16. BigInt num("-999998"
  17. "000001");
  18. BigInt denom("-999999");
  19. String str = (num / denom).ToString();
  20. Assert(str == "999999");
  21. str = (num % denom).ToString();
  22. Assert(str == "0");
  23. }
  24. // Additional operators
  25. {
  26. BigInt bi(int(1));
  27. Assert((bi++).ToString() == "1");
  28. Assert(bi.ToString() == "2");
  29. Assert((++bi).ToString() == "3");
  30. Assert(bi.ToString() == "3");
  31. Assert((bi--).ToString() == "3");
  32. Assert(bi.ToString() == "2");
  33. Assert((--bi).ToString() == "1");
  34. Assert(bi.ToString() == "1");
  35. Assert((bi += 10).ToString() == "11");
  36. Assert((bi -= 2).ToString() == "9");
  37. Assert((bi *= 2).ToString() == "18");
  38. Assert((bi /= 2).ToString() == "9");
  39. Assert((bi %= 2).ToString() == "1");
  40. }
  41. }