StringTests.cs 988 B

12345678910111213141516171819202122232425262728293031
  1. using Lua.CodeAnalysis.Syntax;
  2. using Lua.CodeAnalysis.Syntax.Nodes;
  3. using Lua.Standard;
  4. using System.Globalization;
  5. namespace Lua.Tests;
  6. public class StringTests
  7. {
  8. [TestCase("\r")]
  9. [TestCase("\n")]
  10. [TestCase("\r\n")]
  11. public async Task Test_ShortString_RealNewLine(string newLine)
  12. {
  13. var result = await LuaState.Create().DoStringAsync($"return \"\\{newLine}\"");
  14. Assert.That(result, Has.Length.EqualTo(1));
  15. Assert.That(result[0], Is.EqualTo(new LuaValue("\n")));
  16. }
  17. [TestCase("fr-FR")]
  18. public async Task Test_StringFormat_Culture(string newLine)
  19. {
  20. var state = LuaState.Create();
  21. state.OpenBasicLibrary();
  22. state.OpenStringLibrary();
  23. var culture = CultureInfo.CurrentCulture;
  24. CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo(newLine);
  25. await state.DoStringAsync($"""assert(tonumber(string.format("%f", 10.3)) == 10.3)""");
  26. CultureInfo.CurrentCulture = culture;
  27. }
  28. }