@@ -43,79 +43,85 @@ static Buffer buffer = {
43
43
.data = static_memory_for_buffer
44
44
};
45
45
46
- void case_01 (Jim * jim )
46
+ void null_case (Jim * jim )
47
47
{
48
- jim_object_begin (jim );
49
- {
50
- jim_member_key (jim , "keys" , NULL );
51
- jim_array_begin (jim );
52
- {
53
- for (int key = 0 ; key < 10 ; ++ key ) {
54
- jim_integer (jim , key );
55
- }
56
- }
57
- jim_array_end (jim );
58
-
59
- jim_member_key (jim , "names" , NULL );
60
- jim_array_begin (jim );
61
- {
62
- jim_string (jim , "foo" , NULL );
63
- jim_string (jim , "bar" , NULL );
64
- jim_string (jim , "baz" , NULL );
65
- }
66
- jim_array_end (jim );
48
+ jim_array_begin (jim );
49
+ jim_null (jim );
50
+ jim_array_end (jim );
51
+ }
52
+
53
+ void bool_case (Jim * jim )
54
+ {
55
+ jim_array_begin (jim );
56
+ jim_bool (jim , 0 );
57
+ jim_bool (jim , 1 );
58
+ jim_array_end (jim );
59
+ }
60
+
61
+ void integer_case (Jim * jim )
62
+ {
63
+ jim_array_begin (jim );
64
+ for (int i = -10 ; i <= 10 ; ++ i ) {
65
+ jim_integer (jim , i );
67
66
}
68
- jim_object_end (jim );
67
+ jim_array_end (jim );
69
68
}
70
69
71
- void case_02 (Jim * jim )
70
+ void float_case (Jim * jim )
72
71
{
73
- jim_object_begin (jim );
74
- {
75
- jim_member_key (jim , "null" , NULL );
76
- jim_null (jim );
77
-
78
- jim_member_key (jim , "bool" , NULL );
79
- jim_array_begin (jim );
80
- {
81
- jim_bool (jim , 0 );
82
- jim_bool (jim , 1 );
83
- }
84
- jim_array_end (jim );
85
-
86
- jim_member_key (jim , "integers" , NULL );
87
- jim_array_begin (jim );
88
- {
89
- for (int i = -3 ; i <= 3 ; ++ i ) {
90
- jim_integer (jim , i );
91
- }
92
- }
93
- jim_array_end (jim );
94
-
95
- jim_member_key (jim , "floats" , NULL );
96
- jim_array_begin (jim );
97
- {
98
- jim_float (jim , 0.0 , 4 );
99
- jim_float (jim , -0.0 , 4 );
100
- jim_float (jim , 3.1415 , 4 );
101
- jim_float (jim , 2.71828 , 5 );
102
- jim_float (jim , 1.6180 , 4 );
103
- jim_float (jim , 0.0 / 0.0 , 4 );
104
- jim_float (jim , 1.0 / 0.0 , 4 );
105
- jim_float (jim , -1.0 / 0.0 , 4 );
106
- }
107
- jim_array_end (jim );
108
-
109
- jim_member_key (jim , "string" , NULL );
110
- jim_array_begin (jim );
111
- {
112
- jim_string (jim , "Hello\tWorld\n" , NULL );
113
- unsigned int size = 4 ;
114
- jim_string (jim , "\0\0\0\0" , & size );
115
- }
116
- jim_array_end (jim );
72
+ jim_array_begin (jim );
73
+ jim_float (jim , 0.0 , 4 );
74
+ jim_float (jim , -0.0 , 4 );
75
+ jim_float (jim , 3.1415 , 4 );
76
+ jim_float (jim , 2.71828 , 5 );
77
+ jim_float (jim , 1.6180 , 1 );
78
+ jim_float (jim , 0.0 / 0.0 , 4 );
79
+ jim_float (jim , 1.0 / 0.0 , 4 );
80
+ jim_float (jim , -1.0 / 0.0 , 4 );
81
+ jim_array_end (jim );
82
+ }
83
+
84
+ void string_case (Jim * jim )
85
+ {
86
+ jim_array_begin (jim );
87
+ jim_string (jim , "hello" , NULL );
88
+ jim_string (jim , "world" , NULL );
89
+ jim_string (jim , "\n\b\t" , NULL );
90
+ const unsigned int size = 4 ;
91
+ jim_string (jim , "\0\0\0\0" , & size );
92
+ jim_array_end (jim );
93
+ }
94
+
95
+ void array_case (Jim * jim )
96
+ {
97
+ jim_array_begin (jim );
98
+
99
+ for (int n = 1 ; n <= 5 ; ++ n ) {
100
+ for (int i = 0 ; i < n ; ++ i ) jim_array_begin (jim );
101
+ for (int i = 0 ; i < n ; ++ i ) jim_array_end (jim );
102
+ }
103
+
104
+ jim_array_end (jim );
105
+ }
106
+
107
+ void object_case_rec (Jim * jim , int level , int * counter )
108
+ {
109
+ if (level < 3 ) {
110
+ jim_object_begin (jim );
111
+ jim_member_key (jim , "l" , NULL );
112
+ object_case_rec (jim , level + 1 , counter );
113
+ jim_member_key (jim , "r" , NULL );
114
+ object_case_rec (jim , level + 1 , counter );
115
+ jim_object_end (jim );
116
+ } else {
117
+ jim_integer (jim , (* counter )++ );
117
118
}
118
- jim_object_end (jim );
119
+ }
120
+
121
+ void object_case (Jim * jim )
122
+ {
123
+ int counter = 0 ;
124
+ object_case_rec (jim , 0 , & counter );
119
125
}
120
126
121
127
typedef struct {
@@ -130,8 +136,13 @@ typedef struct {
130
136
}
131
137
132
138
const Test_Case test_cases [] = {
133
- TEST_CASE (case_01 ),
134
- TEST_CASE (case_02 )
139
+ TEST_CASE (null_case ),
140
+ TEST_CASE (bool_case ),
141
+ TEST_CASE (integer_case ),
142
+ TEST_CASE (float_case ),
143
+ TEST_CASE (string_case ),
144
+ TEST_CASE (array_case ),
145
+ TEST_CASE (object_case ),
135
146
};
136
147
137
148
void record (const char * header_path )
0 commit comments