@@ -178,6 +178,110 @@ TEST(MSGPACK, simple_buffer_float)
178
178
}
179
179
}
180
180
181
+ TEST (MSGPACK, simple_buffer_float_from_signed_long_long)
182
+ {
183
+ vector<signed long long > v;
184
+ v.push_back (0 );
185
+ v.push_back (1 );
186
+ v.push_back (-1 );
187
+ v.push_back (numeric_limits<signed long long >::min ());
188
+ v.push_back (numeric_limits<signed long long >::max ());
189
+ for (unsigned int i = 0 ; i < kLoop ; i++) {
190
+ v.push_back (rand ());
191
+ }
192
+ for (unsigned int i = 0 ; i < v.size () ; i++) {
193
+ msgpack::sbuffer sbuf;
194
+ signed long long val1 = v[i];
195
+ msgpack::pack (sbuf, val1);
196
+ msgpack::zone z;
197
+ msgpack::object obj;
198
+ msgpack::unpack_return ret =
199
+ msgpack::unpack (sbuf.data (), sbuf.size (), NULL , &z, &obj);
200
+ EXPECT_EQ (msgpack::UNPACK_SUCCESS, ret);
201
+ float val2;
202
+ obj.convert (&val2);
203
+ EXPECT_TRUE (fabs (val2 - val1) <= kEPS );
204
+ }
205
+ }
206
+
207
+ TEST (MSGPACK, simple_buffer_float_from_unsigned_long_long)
208
+ {
209
+ vector<unsigned long long > v;
210
+ v.push_back (0 );
211
+ v.push_back (1 );
212
+ v.push_back (2 );
213
+ v.push_back (numeric_limits<unsigned long long >::min ());
214
+ v.push_back (numeric_limits<unsigned long long >::max ());
215
+ for (unsigned int i = 0 ; i < kLoop ; i++) {
216
+ v.push_back (rand ());
217
+ }
218
+ for (unsigned int i = 0 ; i < v.size () ; i++) {
219
+ msgpack::sbuffer sbuf;
220
+ unsigned long long val1 = v[i];
221
+ msgpack::pack (sbuf, val1);
222
+ msgpack::zone z;
223
+ msgpack::object obj;
224
+ msgpack::unpack_return ret =
225
+ msgpack::unpack (sbuf.data (), sbuf.size (), NULL , &z, &obj);
226
+ EXPECT_EQ (msgpack::UNPACK_SUCCESS, ret);
227
+ float val2;
228
+ obj.convert (&val2);
229
+ EXPECT_TRUE (fabs (val2 - val1) <= kEPS );
230
+ }
231
+ }
232
+
233
+ TEST (MSGPACK, simple_buffer_double_from_signed_long_long)
234
+ {
235
+ vector<signed long long > v;
236
+ v.push_back (0 );
237
+ v.push_back (1 );
238
+ v.push_back (-1 );
239
+ v.push_back (numeric_limits<signed long long >::min ());
240
+ v.push_back (numeric_limits<signed long long >::max ());
241
+ for (unsigned int i = 0 ; i < kLoop ; i++) {
242
+ v.push_back (rand ());
243
+ }
244
+ for (unsigned int i = 0 ; i < v.size () ; i++) {
245
+ msgpack::sbuffer sbuf;
246
+ signed long long val1 = v[i];
247
+ msgpack::pack (sbuf, val1);
248
+ msgpack::zone z;
249
+ msgpack::object obj;
250
+ msgpack::unpack_return ret =
251
+ msgpack::unpack (sbuf.data (), sbuf.size (), NULL , &z, &obj);
252
+ EXPECT_EQ (msgpack::UNPACK_SUCCESS, ret);
253
+ double val2;
254
+ obj.convert (&val2);
255
+ EXPECT_TRUE (fabs (val2 - val1) <= kEPS );
256
+ }
257
+ }
258
+
259
+ TEST (MSGPACK, simple_buffer_double_from_unsigned_long_long)
260
+ {
261
+ vector<unsigned long long > v;
262
+ v.push_back (0 );
263
+ v.push_back (1 );
264
+ v.push_back (2 );
265
+ v.push_back (numeric_limits<unsigned long long >::min ());
266
+ v.push_back (numeric_limits<unsigned long long >::max ());
267
+ for (unsigned int i = 0 ; i < kLoop ; i++) {
268
+ v.push_back (rand ());
269
+ }
270
+ for (unsigned int i = 0 ; i < v.size () ; i++) {
271
+ msgpack::sbuffer sbuf;
272
+ unsigned long long val1 = v[i];
273
+ msgpack::pack (sbuf, val1);
274
+ msgpack::zone z;
275
+ msgpack::object obj;
276
+ msgpack::unpack_return ret =
277
+ msgpack::unpack (sbuf.data (), sbuf.size (), NULL , &z, &obj);
278
+ EXPECT_EQ (msgpack::UNPACK_SUCCESS, ret);
279
+ double val2;
280
+ obj.convert (&val2);
281
+ EXPECT_TRUE (fabs (val2 - val1) <= kEPS );
282
+ }
283
+ }
284
+
181
285
TEST (MSGPACK, simple_buffer_double)
182
286
{
183
287
vector<double > v;
0 commit comments