HexConverterTests.cs 944 B

1234567891011121314151617181920212223242526272829
  1. using Lua.Internal;
  2. namespace Lua.Tests;
  3. public class HexConverterTests
  4. {
  5. [TestCase("0x10", 16)]
  6. [TestCase("0x0p12", 0)]
  7. [TestCase("-0x1.0p-1", -0.5)]
  8. [TestCase("0x0.1e", 0.1171875)]
  9. [TestCase("0xA23p-4", 162.1875)]
  10. [TestCase("0X1.921FB54442D18P+1", 3.1415926535898)]
  11. [TestCase("0X1.bcde19p+1", 3.475527882576)]
  12. public void Test_ToDouble(string text, double expected)
  13. {
  14. Assert.That(Math.Abs(HexConverter.ToDouble(text) - expected), Is.LessThanOrEqualTo(0.00001d));
  15. }
  16. [TestCase(1.1, "0x1.199999999999ap+0")]
  17. [TestCase(double.PositiveInfinity, "1e9999")]
  18. [TestCase(double.NegativeInfinity, "-1e9999")]
  19. [TestCase(double.NaN, "(0/0)")]
  20. [TestCase(-1.5, "-0x1.8p+0")]
  21. [TestCase(1.2e-39, "0x1.a22393b33036bp-130")]
  22. public void Test_FromDouble(double value, string expected)
  23. {
  24. Assert.That(HexConverter.FromDouble(value), Is.EqualTo(expected.ToLower()));
  25. }
  26. }