Browse Source

Extend test_double_serializer to check NaN and Infinity handling.

tags/json-c-0.14-20200419
Eric Haszlakiewicz 5 years ago
parent
commit
b1ad748842
2 changed files with 17 additions and 0 deletions
  1. +14
    -0
      tests/test_double_serializer.c
  2. +3
    -0
      tests/test_double_serializer.expected

+ 14
- 0
tests/test_double_serializer.c View File

@@ -8,6 +8,9 @@
#include "json_object.h"
#include "json_object_private.h"

/* Avoid compiler warnings about diving by constant zero */
double zero_dot_zero = 0.0;

int main()
{
struct json_object *obj = json_object_new_double(0.5);
@@ -80,4 +83,15 @@ int main()
printf("obj(-12.0).to_string(default format)=%s\n", json_object_to_json_string(obj));
json_object_put(obj);

/* Test NaN handling */
obj = json_object_new_double(zero_dot_zero / zero_dot_zero);
printf("obj(0.0/0.0)=%s\n", json_object_to_json_string(obj));

/* Test Infinity and -Infinity handling */
obj = json_object_new_double(1.0/zero_dot_zero);
printf("obj(1.0/0.0)=%s\n", json_object_to_json_string(obj));

obj = json_object_new_double(-1.0/zero_dot_zero);
printf("obj(-1.0/0.0)=%s\n", json_object_to_json_string(obj));

}

+ 3
- 0
tests/test_double_serializer.expected View File

@@ -17,3 +17,6 @@ obj(12.0).to_string(%.0f)=12
obj(12.0).to_string(%.0g)=1e+01
obj(12.0).to_string(%.1g)=12.0
obj(-12.0).to_string(default format)=-12.0
obj(0.0/0.0)=NaN
obj(1.0/0.0)=Infinity
obj(-1.0/0.0)=-Infinity

Loading…
Cancel
Save