mirror of
https://github.com/json-c/json-c.git
synced 2026-04-14 17:59:06 +08:00
Extend test_double_serializer to check NaN and Infinity handling.
This commit is contained in:
@@ -8,6 +8,9 @@
|
|||||||
#include "json_object.h"
|
#include "json_object.h"
|
||||||
#include "json_object_private.h"
|
#include "json_object_private.h"
|
||||||
|
|
||||||
|
/* Avoid compiler warnings about diving by constant zero */
|
||||||
|
double zero_dot_zero = 0.0;
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
struct json_object *obj = json_object_new_double(0.5);
|
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));
|
printf("obj(-12.0).to_string(default format)=%s\n", json_object_to_json_string(obj));
|
||||||
json_object_put(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));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,3 +17,6 @@ obj(12.0).to_string(%.0f)=12
|
|||||||
obj(12.0).to_string(%.0g)=1e+01
|
obj(12.0).to_string(%.0g)=1e+01
|
||||||
obj(12.0).to_string(%.1g)=12.0
|
obj(12.0).to_string(%.1g)=12.0
|
||||||
obj(-12.0).to_string(default format)=-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
|
||||||
|
|||||||
Reference in New Issue
Block a user