LoopTests.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. namespace Lua.Tests;
  2. public class LoopTests
  3. {
  4. [Test]
  5. public async Task Test_NumericFor()
  6. {
  7. var source = @"
  8. local n = 0
  9. for i = 1, 10 do
  10. n = n + i
  11. end
  12. return n";
  13. var result = await LuaState.Create().DoStringAsync(source);
  14. Assert.That(result, Has.Length.EqualTo(1));
  15. Assert.That(result[0], Is.EqualTo(new LuaValue(55)));
  16. }
  17. [Test]
  18. public async Task Test_NumericFor_WithStep()
  19. {
  20. var source = @"
  21. local n = 0
  22. for i = 0, 10, 2 do
  23. n = n + i
  24. end
  25. return n";
  26. var result = await LuaState.Create().DoStringAsync(source);
  27. Assert.That(result, Has.Length.EqualTo(1));
  28. Assert.That(result[0], Is.EqualTo(new LuaValue(30)));
  29. }
  30. [Test]
  31. public async Task Test_While()
  32. {
  33. var source = @"
  34. local n = 0
  35. while n < 100 do
  36. n = n + 1
  37. end
  38. return n";
  39. var result = await LuaState.Create().DoStringAsync(source);
  40. Assert.That(result, Has.Length.EqualTo(1));
  41. Assert.That(result[0], Is.EqualTo(new LuaValue(100)));
  42. }
  43. }