OperatorTests.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. namespace Lua.Tests;
  2. public class OperatorTests
  3. {
  4. [TestCase(1, 6)]
  5. [TestCase(2, 7)]
  6. [TestCase(3, 8)]
  7. [TestCase(4, 9)]
  8. [TestCase(5, 10)]
  9. public async Task Test_Add(double a, double b)
  10. {
  11. var result = await LuaState.Create().DoStringAsync($"return {a} + {b}");
  12. Assert.That(result, Has.Length.EqualTo(1));
  13. Assert.That(result[0], Is.EqualTo(new LuaValue(a + b)));
  14. }
  15. [TestCase(1, 6)]
  16. [TestCase(2, 7)]
  17. [TestCase(3, 8)]
  18. [TestCase(4, 9)]
  19. [TestCase(5, 10)]
  20. public async Task Test_Sub(double a, double b)
  21. {
  22. var result = await LuaState.Create().DoStringAsync($"return {a} - {b}");
  23. Assert.That(result, Has.Length.EqualTo(1));
  24. Assert.That(result[0], Is.EqualTo(new LuaValue(a - b)));
  25. }
  26. [TestCase(1, 6)]
  27. [TestCase(2, 7)]
  28. [TestCase(3, 8)]
  29. [TestCase(4, 9)]
  30. [TestCase(5, 10)]
  31. public async Task Test_Mul(double a, double b)
  32. {
  33. var result = await LuaState.Create().DoStringAsync($"return {a} * {b}");
  34. Assert.That(result, Has.Length.EqualTo(1));
  35. Assert.That(result[0], Is.EqualTo(new LuaValue(a * b)));
  36. }
  37. [TestCase(1, 6)]
  38. [TestCase(2, 7)]
  39. [TestCase(3, 8)]
  40. [TestCase(4, 9)]
  41. [TestCase(5, 10)]
  42. public async Task Test_Div(double a, double b)
  43. {
  44. var result = await LuaState.Create().DoStringAsync($"return {a} / {b}");
  45. Assert.That(result, Has.Length.EqualTo(1));
  46. Assert.That(result[0], Is.EqualTo(new LuaValue(a / b)));
  47. }
  48. [TestCase(1, 6)]
  49. [TestCase(2, 7)]
  50. [TestCase(3, 8)]
  51. [TestCase(4, 9)]
  52. [TestCase(5, 10)]
  53. public async Task Test_Mod(double a, double b)
  54. {
  55. var result = await LuaState.Create().DoStringAsync($"return {a} % {b}");
  56. Assert.That(result, Has.Length.EqualTo(1));
  57. Assert.That(result[0], Is.EqualTo(new LuaValue(a % b)));
  58. }
  59. [TestCase(1, 6)]
  60. [TestCase(2, 7)]
  61. [TestCase(3, 8)]
  62. [TestCase(4, 9)]
  63. [TestCase(5, 10)]
  64. public async Task Test_Pow(double a, double b)
  65. {
  66. var result = await LuaState.Create().DoStringAsync($"return {a} ^ {b}");
  67. Assert.That(result, Has.Length.EqualTo(1));
  68. Assert.That(result[0], Is.EqualTo(new LuaValue(Math.Pow(a, b))));
  69. }
  70. [TestCase(true, true)]
  71. [TestCase(true, false)]
  72. [TestCase(false, true)]
  73. [TestCase(false, false)]
  74. public async Task Test_Or(bool a, bool b)
  75. {
  76. string strA = a.ToString().ToLower(), strB = b.ToString().ToLower();
  77. var result = await LuaState.Create().DoStringAsync($"return {strA} or {strB}");
  78. Assert.That(result, Has.Length.EqualTo(1));
  79. Assert.That(result[0], Is.EqualTo(new LuaValue(a || b)));
  80. }
  81. [TestCase(true, true)]
  82. [TestCase(true, false)]
  83. [TestCase(false, true)]
  84. [TestCase(false, false)]
  85. public async Task Test_And(bool a, bool b)
  86. {
  87. string strA = a.ToString().ToLower(), strB = b.ToString().ToLower();
  88. var result = await LuaState.Create().DoStringAsync($"return {strA} and {strB}");
  89. Assert.That(result, Has.Length.EqualTo(1));
  90. Assert.That(result[0], Is.EqualTo(new LuaValue(a && b)));
  91. }
  92. [TestCase(1, 6)]
  93. [TestCase(9, 2)]
  94. [TestCase(5, 5)]
  95. public async Task Test_LessThan(double a, double b)
  96. {
  97. var result = await LuaState.Create().DoStringAsync($"return {a} < {b}");
  98. Assert.That(result, Has.Length.EqualTo(1));
  99. Assert.That(result[0], Is.EqualTo(new LuaValue(a < b)));
  100. }
  101. [TestCase(1, 6)]
  102. [TestCase(9, 2)]
  103. [TestCase(5, 5)]
  104. public async Task Test_LessThanOrEquals(double a, double b)
  105. {
  106. var result = await LuaState.Create().DoStringAsync($"return {a} <= {b}");
  107. Assert.That(result, Has.Length.EqualTo(1));
  108. Assert.That(result[0], Is.EqualTo(new LuaValue(a <= b)));
  109. }
  110. [TestCase(1, 6)]
  111. [TestCase(9, 2)]
  112. [TestCase(5, 5)]
  113. public async Task Test_GreaterThan(double a, double b)
  114. {
  115. var result = await LuaState.Create().DoStringAsync($"return {a} > {b}");
  116. Assert.That(result, Has.Length.EqualTo(1));
  117. Assert.That(result[0], Is.EqualTo(new LuaValue(a > b)));
  118. }
  119. [TestCase(1, 6)]
  120. [TestCase(9, 2)]
  121. [TestCase(5, 5)]
  122. public async Task Test_GreaterThanOrEquals(double a, double b)
  123. {
  124. var result = await LuaState.Create().DoStringAsync($"return {a} >= {b}");
  125. Assert.That(result, Has.Length.EqualTo(1));
  126. Assert.That(result[0], Is.EqualTo(new LuaValue(a >= b)));
  127. }
  128. }