#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN #include "doctest.h" #include TEST_CASE("testing storage construct") { toml::detail::storage x(42); REQUIRE_UNARY(x.is_ok()); CHECK_EQ(x.get(), 42); CHECK_NE(x.get(), 6*9); x.get() = 6 * 9; CHECK_EQ(x.get(), 6*9); CHECK_NE(x.get(), 42); } TEST_CASE("testing storage copy") { toml::detail::storage x(42); toml::detail::storage y(x); REQUIRE_UNARY(x.is_ok()); REQUIRE_UNARY(y.is_ok()); CHECK_EQ(x.get(), 42); CHECK_NE(x.get(), 6*9); CHECK_EQ(y.get(), 42); CHECK_NE(y.get(), 6*9); x.get() = 6 * 9; CHECK_EQ(x.get(), 6*9); CHECK_NE(x.get(), 42); CHECK_EQ(y.get(), 42); CHECK_NE(y.get(), 6*9); x = y; CHECK_EQ(x.get(), 42); CHECK_NE(x.get(), 6*9); CHECK_EQ(y.get(), 42); CHECK_NE(y.get(), 6*9); } TEST_CASE("testing storage move") { toml::detail::storage x(42); toml::detail::storage y(x); REQUIRE_UNARY(x.is_ok()); REQUIRE_UNARY(y.is_ok()); CHECK_EQ(x.get(), 42); CHECK_NE(x.get(), 6*9); CHECK_EQ(y.get(), 42); CHECK_NE(y.get(), 6*9); x.get() = 6 * 9; CHECK_EQ(x.get(), 6*9); CHECK_NE(x.get(), 42); CHECK_EQ(y.get(), 42); CHECK_NE(y.get(), 6*9); x = std::move(y); CHECK_EQ(x.get(), 42); CHECK_NE(x.get(), 6*9); }