From 4d0ed847f99e6459b0f48280ffc17f5b805262cd Mon Sep 17 00:00:00 2001 From: ToruNiina Date: Mon, 30 Mar 2020 15:04:51 +0900 Subject: [PATCH] test: remove default ctor from test code --- tests/test_extended_conversions.cpp | 63 +++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 4 deletions(-) diff --git a/tests/test_extended_conversions.cpp b/tests/test_extended_conversions.cpp index f9653b2..428f477 100644 --- a/tests/test_extended_conversions.cpp +++ b/tests/test_extended_conversions.cpp @@ -47,8 +47,6 @@ struct qux struct foobar { - foobar() = default; // later we use std::vector, default ctor is required. - // via constructor explicit foobar(const toml::value& v) : a(toml::find(v, "a")), b(toml::find(v, "b")) @@ -137,8 +135,6 @@ struct qux struct foobar { - foobar() = default; // later we use std::vector, default ctor is required. - template class M, template class A> explicit foobar(const toml::basic_value& v) : a(toml::find(v, "a")), b(toml::find(v, "b")) @@ -488,5 +484,64 @@ BOOST_AUTO_TEST_CASE(test_recursive_conversion) BOOST_TEST(foobars.at(2).b == "quux"); BOOST_TEST(foobars.at(3).b == "foobar"); } + + // via constructor + { + const toml::value v{ + {"0", toml::table{{"a", 42}, {"b", "baz"}}}, + {"1", toml::table{{"a", 43}, {"b", "qux"}}}, + {"2", toml::table{{"a", 44}, {"b", "quux"}}}, + {"3", toml::table{{"a", 45}, {"b", "foobar"}}} + }; + + { + const auto foobars = toml::get>(v); + BOOST_TEST(foobars.size() == 4ul); + BOOST_TEST(foobars.at("0").a == 42); + BOOST_TEST(foobars.at("1").a == 43); + BOOST_TEST(foobars.at("2").a == 44); + BOOST_TEST(foobars.at("3").a == 45); + + BOOST_TEST(foobars.at("0").b == "baz"); + BOOST_TEST(foobars.at("1").b == "qux"); + BOOST_TEST(foobars.at("2").b == "quux"); + BOOST_TEST(foobars.at("3").b == "foobar"); + } + { + const auto foobars = toml::get>(v); + BOOST_TEST(foobars.size() == 4ul); + BOOST_TEST(foobars.at("0").a == 42); + BOOST_TEST(foobars.at("1").a == 43); + BOOST_TEST(foobars.at("2").a == 44); + BOOST_TEST(foobars.at("3").a == 45); + + BOOST_TEST(foobars.at("0").b == "baz"); + BOOST_TEST(foobars.at("1").b == "qux"); + BOOST_TEST(foobars.at("2").b == "quux"); + BOOST_TEST(foobars.at("3").b == "foobar"); + } + } + { + const toml::basic_value + v{ + {"0", toml::table{{"a", 42}, {"b", "baz"}}}, + {"1", toml::table{{"a", 43}, {"b", "qux"}}}, + {"2", toml::table{{"a", 44}, {"b", "quux"}}}, + {"3", toml::table{{"a", 45}, {"b", "foobar"}}} + }; + + const auto foobars = toml::get>(v); + BOOST_TEST(foobars.size() == 4ul); + BOOST_TEST(foobars.at("0").a == 42); + BOOST_TEST(foobars.at("1").a == 43); + BOOST_TEST(foobars.at("2").a == 44); + BOOST_TEST(foobars.at("3").a == 45); + + BOOST_TEST(foobars.at("0").b == "baz"); + BOOST_TEST(foobars.at("1").b == "qux"); + BOOST_TEST(foobars.at("2").b == "quux"); + BOOST_TEST(foobars.at("3").b == "foobar"); + } + }