@@ -7,69 +7,88 @@ void test_constructors()
7
7
{
8
8
json::json j0;
9
9
assert (j0.get_type () == json::json_type::object);
10
+ assert (j0.is_object ());
10
11
assert (j0.size () == 0 );
11
12
12
13
json::json j1 (1 );
13
14
assert (j1.get_type () == json::json_type::number);
15
+ assert (j1.is_number ());
16
+ assert (j1.is_integer ());
17
+ assert (!j1.is_float ());
14
18
assert (j1 == 1 );
15
19
assert (j1.size () == 0 );
16
20
17
21
json::json j2 (2.0 );
18
22
assert (j2.get_type () == json::json_type::number);
23
+ assert (j2.is_number ());
24
+ assert (!j2.is_integer ());
25
+ assert (j2.is_float ());
19
26
assert (j2 == 2.0 );
20
27
assert (j2.size () == 0 );
21
28
22
29
json::json j3 (" 3" );
23
30
assert (j3.get_type () == json::json_type::string);
31
+ assert (j3.is_string ());
24
32
assert (j3 == " 3" );
25
33
assert (j3.size () == 0 );
26
34
27
35
json::json j4 (true );
28
36
assert (j4.get_type () == json::json_type::boolean);
37
+ assert (j4.is_boolean ());
29
38
assert (j4 == true );
30
39
assert (j4.size () == 0 );
31
40
32
41
json::json j5 (nullptr );
33
42
assert (j5.get_type () == json::json_type::null);
43
+ assert (j5.is_null ());
34
44
assert (j5 == nullptr );
35
45
assert (j5.size () == 0 );
36
46
37
47
json::json j6 (json::json_type::array);
38
48
assert (j6.get_type () == json::json_type::array);
49
+ assert (j6.is_array ());
39
50
assert (j6.size () == 0 );
40
51
41
52
json::json j7 (json::json_type::object);
42
53
assert (j7.get_type () == json::json_type::object);
54
+ assert (j7.is_object ());
43
55
assert (j7.size () == 0 );
44
56
}
45
57
46
58
void test_constructors2 ()
47
59
{
48
60
json::json j0 (json::json_type::null);
49
61
assert (j0.get_type () == json::json_type::null);
62
+ assert (j0.is_null ());
50
63
assert (j0 == nullptr );
51
64
assert (j0.size () == 0 );
52
65
53
66
json::json j1 (json::json_type::array);
54
67
assert (j1.get_type () == json::json_type::array);
68
+ assert (j1.is_array ());
55
69
assert (j1.size () == 0 );
56
70
57
71
json::json j2 (json::json_type::object);
58
72
assert (j2.get_type () == json::json_type::object);
73
+ assert (j2.is_object ());
59
74
assert (j2.size () == 0 );
60
75
61
76
json::json j3 (json::json_type::number);
62
77
assert (j3.get_type () == json::json_type::number);
78
+ assert (j3.is_number ());
79
+ assert (j3.is_integer () || j3.is_float ());
63
80
assert (j3 == 0 );
64
81
assert (j3.size () == 0 );
65
82
66
83
json::json j4 (json::json_type::string);
67
84
assert (j4.get_type () == json::json_type::string);
85
+ assert (j4.is_string ());
68
86
assert (j4 == " " );
69
87
assert (j4.size () == 0 );
70
88
71
89
json::json j5 (json::json_type::boolean);
72
90
assert (j5.get_type () == json::json_type::boolean);
91
+ assert (j5.is_boolean ());
73
92
assert (j5 == false );
74
93
assert (j5.size () == 0 );
75
94
@@ -78,11 +97,14 @@ void test_constructors2()
78
97
j6.push_back (2 );
79
98
j6.push_back (3 );
80
99
assert (j6.get_type () == json::json_type::array);
100
+ assert (j6.is_array ());
81
101
assert (j6.size () == 3 );
82
102
83
103
json::json j7 (std::move (j6));
84
104
assert (j6.get_type () == json::json_type::null);
105
+ assert (j6.is_null ());
85
106
assert (j7.get_type () == json::json_type::array);
107
+ assert (j7.is_array ());
86
108
assert (j7.size () == 3 );
87
109
assert (j7[0 ] == 1 );
88
110
assert (j7[1 ] == 2 );
@@ -98,35 +120,46 @@ void test_assignments()
98
120
99
121
json::json j1 = 1 ;
100
122
assert (j1.get_type () == json::json_type::number);
123
+ assert (j1.is_number ());
124
+ assert (j1.is_integer ());
125
+ assert (!j1.is_float ());
101
126
assert (j1 == 1 );
102
127
assert (j1.size () == 0 );
103
128
104
129
json::json j2 = 2.0 ;
105
130
assert (j2.get_type () == json::json_type::number);
131
+ assert (j2.is_number ());
132
+ assert (!j2.is_integer ());
133
+ assert (j2.is_float ());
106
134
assert (j2 == 2.0 );
107
135
assert (j2.size () == 0 );
108
136
109
137
json::json j3 = " 3" ;
110
138
assert (j3.get_type () == json::json_type::string);
139
+ assert (j3.is_string ());
111
140
assert (j3 == " 3" );
112
141
assert (j3.size () == 0 );
113
142
114
143
json::json j4 = true ;
115
144
assert (j4.get_type () == json::json_type::boolean);
145
+ assert (j4.is_boolean ());
116
146
assert (j4 == true );
117
147
assert (j4.size () == 0 );
118
148
119
149
json::json j5 = nullptr ;
120
150
assert (j5.get_type () == json::json_type::null);
151
+ assert (j5.is_null ());
121
152
assert (j5 == nullptr );
122
153
assert (j5.size () == 0 );
123
154
124
155
json::json j6 = json::json_type::array;
125
156
assert (j6.get_type () == json::json_type::array);
157
+ assert (j6.is_array ());
126
158
assert (j6.size () == 0 );
127
159
128
160
json::json j7 = json::json_type::object;
129
161
assert (j7.get_type () == json::json_type::object);
162
+ assert (j7.is_object ());
130
163
assert (j7.size () == 0 );
131
164
}
132
165
@@ -329,35 +362,47 @@ void test_null()
329
362
json::json j0 = nullptr ;
330
363
assert (j0 == nullptr );
331
364
assert (j0.get_type () == json::json_type::null);
365
+ assert (j0.is_null ());
332
366
assert (j0.dump () == " null" );
333
367
}
334
368
335
369
void test_empty_array ()
336
370
{
337
371
json::json j0 = json::json_type::array;
338
372
assert (j0.get_type () == json::json_type::array);
373
+ assert (j0.is_array ());
339
374
assert (j0.dump () == " []" );
340
375
}
341
376
342
377
void test_empty_object ()
343
378
{
344
379
json::json j0 = json::json_type::object;
345
380
assert (j0.get_type () == json::json_type::object);
381
+ assert (j0.is_object ());
346
382
assert (j0.dump () == " {}" );
347
383
}
348
384
349
385
void test_scientific_numbers ()
350
386
{
351
387
json::json j0 = 1e+10 ;
352
388
assert (j0.get_type () == json::json_type::number);
389
+ assert (j0.is_number ());
390
+ assert (!j0.is_integer ());
391
+ assert (j0.is_float ());
353
392
assert (j0.dump () == std::to_string (1e+10 ));
354
393
355
394
json::json j1 = 1.23e+10 ;
356
395
assert (j1.get_type () == json::json_type::number);
396
+ assert (j1.is_number ());
397
+ assert (!j1.is_integer ());
398
+ assert (j1.is_float ());
357
399
assert (j1.dump () == std::to_string (1.23e+10 ));
358
400
359
401
json::json j2 = .23e+10 ;
360
402
assert (j2.get_type () == json::json_type::number);
403
+ assert (j2.is_number ());
404
+ assert (!j2.is_integer ());
405
+ assert (j2.is_float ());
361
406
assert (j2.dump () == std::to_string (.23e+10 ));
362
407
}
363
408
@@ -368,6 +413,15 @@ void test_array_of_scientific_numbers()
368
413
j0.push_back (1.23e+10 );
369
414
j0.push_back (.23e+10 );
370
415
assert (j0.get_type () == json::json_type::array);
416
+ assert (j0[0 ].is_number ());
417
+ assert (!j0[0 ].is_integer ());
418
+ assert (j0[0 ].is_float ());
419
+ assert (j0[1 ].is_number ());
420
+ assert (!j0[1 ].is_integer ());
421
+ assert (j0[1 ].is_float ());
422
+ assert (j0[2 ].is_number ());
423
+ assert (!j0[2 ].is_integer ());
424
+ assert (j0[2 ].is_float ());
371
425
assert (j0.dump () == " [" + std::to_string (1e+10 ) + " ," + std::to_string (1.23e+10 ) + " ," + std::to_string (.23e+10 ) + " ]" );
372
426
}
373
427
0 commit comments