isFloat.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2018
  3. // MIT License
  4. #include <ArduinoJson/Numbers/isFloat.hpp>
  5. #include <catch.hpp>
  6. using namespace ArduinoJson::Internals;
  7. TEST_CASE("isFloat()") {
  8. SECTION("Input is NULL") {
  9. REQUIRE(isFloat(NULL) == false);
  10. }
  11. SECTION("Empty string") {
  12. REQUIRE(isFloat("") == false);
  13. }
  14. SECTION("NoExponent") {
  15. REQUIRE(isFloat("3.14") == true);
  16. REQUIRE(isFloat("-3.14") == true);
  17. REQUIRE(isFloat("+3.14") == true);
  18. }
  19. SECTION("IntegralPartMissing") {
  20. REQUIRE(isFloat(".14") == true);
  21. REQUIRE(isFloat("-.14") == true);
  22. REQUIRE(isFloat("+.14") == true);
  23. }
  24. SECTION("FractionalPartMissing") {
  25. REQUIRE(isFloat("3.") == true);
  26. REQUIRE(isFloat("-3.e14") == true);
  27. REQUIRE(isFloat("+3.e-14") == true);
  28. }
  29. SECTION("NoDot") {
  30. REQUIRE(isFloat("3e14") == true);
  31. REQUIRE(isFloat("3e-14") == true);
  32. REQUIRE(isFloat("3e+14") == true);
  33. }
  34. SECTION("Integer") {
  35. REQUIRE(isFloat("14") == true);
  36. REQUIRE(isFloat("-14") == true);
  37. REQUIRE(isFloat("+14") == true);
  38. }
  39. SECTION("ExponentMissing") {
  40. REQUIRE(isFloat("3.14e") == false);
  41. REQUIRE(isFloat("3.14e-") == false);
  42. REQUIRE(isFloat("3.14e+") == false);
  43. }
  44. SECTION("JustASign") {
  45. REQUIRE(isFloat("-") == false);
  46. REQUIRE(isFloat("+") == false);
  47. }
  48. SECTION("Empty") {
  49. REQUIRE(isFloat("") == false);
  50. }
  51. SECTION("NaN") {
  52. REQUIRE(isFloat("NaN") == true);
  53. REQUIRE(isFloat("n") == false);
  54. REQUIRE(isFloat("N") == false);
  55. REQUIRE(isFloat("nan") == false);
  56. REQUIRE(isFloat("-NaN") == false);
  57. REQUIRE(isFloat("+NaN") == false);
  58. }
  59. SECTION("Infinity") {
  60. REQUIRE(isFloat("Infinity") == true);
  61. REQUIRE(isFloat("+Infinity") == true);
  62. REQUIRE(isFloat("-Infinity") == true);
  63. REQUIRE(isFloat("infinity") == false);
  64. REQUIRE(isFloat("Inf") == false);
  65. }
  66. }