_areFloatsEqual.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include "_areFloatsEqual.h"
  2. #include "../../Source/NumberToString.h"
  3. /**
  4. * Tests that numbers that are actually equal are identified that way
  5. */
  6. void testNumberToString__areFloatsEqual::testEqual(void){
  7. assertTrue(_floatsAreEqual( 0.0, 0.0));
  8. assertTrue(_floatsAreEqual( 1.0, 1.0));
  9. assertTrue(_floatsAreEqual( 1.1, 1.1));
  10. assertTrue(_floatsAreEqual(-1.0, -1.0));
  11. assertTrue(_floatsAreEqual( 0.1, 0.1));
  12. assertTrue(_floatsAreEqual(-0.1, -0.1));
  13. }
  14. /**
  15. * Make sure that numbers that are very different are identified as not equal
  16. */
  17. void testNumberToString__areFloatsEqual::testNotEqual(void){
  18. assertFalse(_floatsAreEqual( 1.0, -1.0));
  19. assertFalse(_floatsAreEqual( 1.0, 0.0));
  20. assertFalse(_floatsAreEqual(-1.0, -.0));
  21. assertFalse(_floatsAreEqual( 0.1, 0.0));
  22. assertFalse(_floatsAreEqual(-0.1, 0.0));
  23. assertFalse(_floatsAreEqual(1.0, 1.0001));
  24. assertFalse(_floatsAreEqual(1.0001, 1.0));
  25. }
  26. /**
  27. * Make sure numbers that are different, but within the threshold of
  28. * floats/doubles being equal are identified as equal
  29. */
  30. void testNumberToString__areFloatsEqual::testCloseEnough(void){
  31. //check the exact threshold
  32. assertFalse(_floatsAreEqual( 0.0, JSON_FLOAT_THRESHHOLD));
  33. assertFalse(_floatsAreEqual( 0.0, -JSON_FLOAT_THRESHHOLD));
  34. //check things beneath that threashold
  35. assertTrue(_floatsAreEqual(0.0, JSON_FLOAT_THRESHHOLD / 2));
  36. assertTrue(_floatsAreEqual(0.0, JSON_FLOAT_THRESHHOLD / -2));
  37. assertTrue(_floatsAreEqual(-0.1, -0.1));
  38. assertTrue(_floatsAreEqual(1.000000001, 1.0));
  39. assertTrue(_floatsAreEqual(1.0, 1.000000001));
  40. }