MCPcopy Create free account
hub / github.com/boostorg/json / testVariant

Method testVariant

test/value_to.cpp:541–580  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

539 template<
540 template <class...> class Variant, class Monostate, class... Context >
541 static
542 void
543 testVariant( Context const& ... ctx )
544 {
545 using std::get;
546 using Var = Variant<int, ::value_to_test_ns::T2, std::string>;
547
548 value jv(4);
549 auto v = value_to<Var>( jv, ctx... );
550 BOOST_TEST( v.index() == 0 );
551 BOOST_TEST( get<0>(v) == 4 );
552
553 jv = "foobar";
554 v = value_to<Var>( jv, ctx... );
555 BOOST_TEST( v.index() == 2 );
556 BOOST_TEST( get<2>(v) == "foobar" );
557
558 jv = "T2";
559 v = value_to<Var>( jv, ctx... );
560 BOOST_TEST( v.index() == 1 );
561
562 jv = 3.5;
563 BOOST_TEST_THROWS_WITH_LOCATION(
564 value_to<Var>( jv, ctx... ));
565
566 value_to<Monostate>( value(), ctx... );
567 BOOST_TEST_THROWS_WITH_LOCATION(
568 value_to<Monostate>( jv, ctx... ));
569
570 jv = 1024;
571 using VT11 = Variant< value_to_test_ns::T11 >;
572 VT11 v11 = value_to< VT11 >( jv, ctx... );
573 BOOST_TEST( v11.index() == 0 );
574 BOOST_TEST( get<0>(v11).n == 1024 );
575
576 jv = nullptr;
577 using V_T3_T1 = Variant<value_to_test_ns::T3, value_to_test_ns::T1>;
578 auto v_t3_t1 = value_to<V_T3_T1>( jv, ctx... );
579 BOOST_TEST( v_t3_t1.index() == 1 );
580 }
581
582 template< class... Context >
583 static

Callers

nothing calls this directly

Calls 1

valueClass · 0.70

Tested by

no test coverage detected