_ftoa.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "_ftoa.h"
  2. #include "../../Source/NumberToString.h"
  3. /**
  4. * Test that the float to string function works
  5. */
  6. void testNumberToString__ftoa::testRandomNumbers(void){
  7. //random numbers to varying precision
  8. assertEquals(NumberToString::_ftoa((json_number) 1.2), JSON_TEXT( "1.2"));
  9. assertEquals(NumberToString::_ftoa((json_number) -1.2), JSON_TEXT( "-1.2"));
  10. assertEquals(NumberToString::_ftoa((json_number) 1.02), JSON_TEXT( "1.02"));
  11. assertEquals(NumberToString::_ftoa((json_number) -1.02), JSON_TEXT( "-1.02"));
  12. assertEquals(NumberToString::_ftoa((json_number) 1.002), JSON_TEXT( "1.002"));
  13. assertEquals(NumberToString::_ftoa((json_number) -1.002), JSON_TEXT( "-1.002"));
  14. assertEquals(NumberToString::_ftoa((json_number) 3.1415), JSON_TEXT( "3.1415"));
  15. assertEquals(NumberToString::_ftoa((json_number) -3.1415), JSON_TEXT( "-3.1415"));
  16. }
  17. /**
  18. * This function reverts to one of the int functions in case of an int because
  19. * they are faster. This tests that.
  20. */
  21. void testNumberToString__ftoa::testSpecializedInts(void){
  22. assertEquals(NumberToString::_ftoa((json_number) 1.0), JSON_TEXT( "1"));
  23. assertEquals(NumberToString::_ftoa((json_number) 10.0), JSON_TEXT( "10"));
  24. assertEquals(NumberToString::_ftoa((json_number) -1.0), JSON_TEXT( "-1"));
  25. assertEquals(NumberToString::_ftoa((json_number)-10.0), JSON_TEXT("-10"));
  26. assertEquals(NumberToString::_ftoa((json_number) 0.0), JSON_TEXT( "0"));
  27. assertEquals(NumberToString::_ftoa((json_number) -0.0), JSON_TEXT( "0"));
  28. //close enough to an int
  29. assertEquals(NumberToString::_ftoa((json_number) 1.000000001), JSON_TEXT( "1"));
  30. assertEquals(NumberToString::_ftoa((json_number) -1.000000001), JSON_TEXT( "-1"));
  31. assertEquals(NumberToString::_ftoa((json_number) 0.000000001), JSON_TEXT( "0"));
  32. assertEquals(NumberToString::_ftoa((json_number) -0.000000001), JSON_TEXT( "0"));
  33. }