@@ -284,8 +284,8 @@ BOOST_AUTO_TEST_SUITE(as_test) // {{{
284
284
BOOST_CHECK_EQUAL (v.as <int64_t >(), 123 );
285
285
BOOST_CHECK_EQUAL (v.as_uint64 (), 123 );
286
286
BOOST_CHECK_EQUAL (v.as <uint64_t >(), 123 );
287
- BOOST_CHECK_THROW (v.as_double (), rabbit::type_mismatch );
288
- BOOST_CHECK_THROW (v.as <double >(), rabbit::type_mismatch );
287
+ BOOST_CHECK_CLOSE (v.as_double (), 123.0 , 0.00001 );
288
+ BOOST_CHECK_CLOSE (v.as <double >(), 123.0 , 0.00001 );
289
289
BOOST_CHECK_THROW (v.as_string (), rabbit::type_mismatch);
290
290
BOOST_CHECK_THROW (v.as <std::string>(), rabbit::type_mismatch);
291
291
}
@@ -310,6 +310,28 @@ BOOST_AUTO_TEST_SUITE(as_test) // {{{
310
310
BOOST_CHECK_THROW (v.as <std::string>(), rabbit::type_mismatch);
311
311
}
312
312
313
+ BOOST_AUTO_TEST_CASE (double_from_int_test)
314
+ {
315
+ rabbit::value v (123 );
316
+
317
+ BOOST_CHECK_THROW (v.as_bool (), rabbit::type_mismatch);
318
+ BOOST_CHECK_THROW (v.as <bool >(), rabbit::type_mismatch);
319
+ BOOST_CHECK_EQUAL (v.as_int (), 123 );
320
+ BOOST_CHECK_EQUAL (v.as <int >(), 123 );
321
+ BOOST_CHECK_EQUAL (v.as_uint (), 123 );
322
+ BOOST_CHECK_EQUAL (v.as <unsigned >(), 123 );
323
+ BOOST_CHECK_EQUAL (v.as_int64 (), 123 );
324
+ BOOST_CHECK_EQUAL (v.as <int64_t >(), 123 );
325
+ BOOST_CHECK_EQUAL (v.as_uint64 (), 123 );
326
+ BOOST_CHECK_EQUAL (v.as <uint64_t >(), 123 );
327
+ BOOST_CHECK_CLOSE (v.as_double (), 123.0 , 0.00001 );
328
+ BOOST_CHECK_CLOSE (v.as <double >(), 123.0 , 0.00001 );
329
+ BOOST_CHECK_THROW (v.as_string (), rabbit::type_mismatch);
330
+ BOOST_CHECK_THROW (v.as <std::string>(), rabbit::type_mismatch);
331
+ }
332
+
333
+
334
+
313
335
BOOST_AUTO_TEST_CASE (string_test)
314
336
{
315
337
rabbit::value v (" str" );
@@ -572,4 +594,63 @@ BOOST_AUTO_TEST_CASE(value_insert_string){
572
594
573
595
BOOST_CHECK (v[" xyz" ].as_string () == " abcde" );
574
596
597
+ }
598
+
599
+
600
+
601
+ BOOST_AUTO_TEST_CASE (rabbit_number_is_and_as_compared_to_rapid){
602
+ {
603
+ rabbit::value v (123 );
604
+ BOOST_CHECK_EQUAL (v.is_int (), v.get_native_value_pointer ()->IsInt ());
605
+ BOOST_CHECK_EQUAL (v.is_uint (), v.get_native_value_pointer ()->IsUint ());
606
+ BOOST_CHECK_EQUAL (v.is_int64 (), v.get_native_value_pointer ()->IsInt64 ());
607
+ BOOST_CHECK_EQUAL (v.is_uint64 (), v.get_native_value_pointer ()->IsUint64 ());
608
+ BOOST_CHECK_EQUAL (v.is_double (), v.get_native_value_pointer ()->IsDouble ());
609
+
610
+ BOOST_CHECK_EQUAL (v.as_int (), v.get_native_value_pointer ()->GetInt ());
611
+ BOOST_CHECK_EQUAL (v.as_uint (), v.get_native_value_pointer ()->GetUint ());
612
+ BOOST_CHECK_EQUAL (v.as_int64 (), v.get_native_value_pointer ()->GetInt64 ());
613
+ BOOST_CHECK_EQUAL (v.as_uint64 (), v.get_native_value_pointer ()->GetUint64 ());
614
+ BOOST_CHECK_EQUAL (v.as_double (), v.get_native_value_pointer ()->GetDouble ());
615
+ }
616
+
617
+ {
618
+ rabbit::value v (4294967295 );
619
+ BOOST_CHECK_EQUAL (v.is_int (), v.get_native_value_pointer ()->IsInt ());
620
+ BOOST_CHECK_EQUAL (v.is_uint (), v.get_native_value_pointer ()->IsUint ());
621
+ BOOST_CHECK_EQUAL (v.is_int64 (), v.get_native_value_pointer ()->IsInt64 ());
622
+ BOOST_CHECK_EQUAL (v.is_uint64 (), v.get_native_value_pointer ()->IsUint64 ());
623
+ BOOST_CHECK_EQUAL (v.is_double (), v.get_native_value_pointer ()->IsDouble ());
624
+
625
+ BOOST_CHECK_EQUAL (v.as_uint (), v.get_native_value_pointer ()->GetUint ());
626
+ BOOST_CHECK_EQUAL (v.as_int64 (), v.get_native_value_pointer ()->GetInt64 ());
627
+ BOOST_CHECK_EQUAL (v.as_uint64 (), v.get_native_value_pointer ()->GetUint64 ());
628
+ BOOST_CHECK_EQUAL (v.as_double (), v.get_native_value_pointer ()->GetDouble ());
629
+ }
630
+
631
+
632
+ {
633
+ rabbit::value v (9223372036854775807 );
634
+ BOOST_CHECK_EQUAL (v.is_int (), v.get_native_value_pointer ()->IsInt ());
635
+ BOOST_CHECK_EQUAL (v.is_uint (), v.get_native_value_pointer ()->IsUint ());
636
+ BOOST_CHECK_EQUAL (v.is_int64 (), v.get_native_value_pointer ()->IsInt64 ());
637
+ BOOST_CHECK_EQUAL (v.is_uint64 (), v.get_native_value_pointer ()->IsUint64 ());
638
+ BOOST_CHECK_EQUAL (v.is_double (), v.get_native_value_pointer ()->IsDouble ());
639
+
640
+ BOOST_CHECK_EQUAL (v.as_int64 (), v.get_native_value_pointer ()->GetInt64 ());
641
+ BOOST_CHECK_EQUAL (v.as_uint64 (), v.get_native_value_pointer ()->GetUint64 ());
642
+ BOOST_CHECK_EQUAL (v.as_double (), v.get_native_value_pointer ()->GetDouble ());
643
+ }
644
+
645
+ {
646
+ rabbit::value v (static_cast <uint64_t >(9223372036854775808ULL ));
647
+ BOOST_CHECK_EQUAL (v.is_int (), v.get_native_value_pointer ()->IsInt ());
648
+ BOOST_CHECK_EQUAL (v.is_uint (), v.get_native_value_pointer ()->IsUint ());
649
+ BOOST_CHECK_EQUAL (v.is_int64 (), v.get_native_value_pointer ()->IsInt64 ());
650
+ BOOST_CHECK_EQUAL (v.is_uint64 (), v.get_native_value_pointer ()->IsUint64 ());
651
+ BOOST_CHECK_EQUAL (v.is_double (), v.get_native_value_pointer ()->IsDouble ());
652
+
653
+ BOOST_CHECK_EQUAL (v.as_uint64 (), v.get_native_value_pointer ()->GetUint64 ());
654
+ BOOST_CHECK_EQUAL (v.as_double (), v.get_native_value_pointer ()->GetDouble ());
655
+ }
575
656
}
0 commit comments