7 #include <throwing/shared_ptr.hpp>     9 TEST_CASE(
"shared_ptr swap swaps pointers", 
"[shared_ptr][swap]") {
    11     throwing::shared_ptr<
int> t_ptr1(ptr1);
    13     throwing::shared_ptr<
int> t_ptr2(ptr2);
    14     REQUIRE(t_ptr1.get() == ptr1);
    15     REQUIRE(t_ptr2.get() == ptr2);
    17     REQUIRE(t_ptr1.get() == ptr2);
    18     REQUIRE(t_ptr2.get() == ptr1);
    19     std::swap(t_ptr1, t_ptr2);
    20     REQUIRE(t_ptr1.get() == ptr1);
    21     REQUIRE(t_ptr2.get() == ptr2);
    24 TEST_CASE(
"shared_ptr swap null pointers", 
"[shared_ptr][swap][nullptr]") {
    25     throwing::shared_ptr<
int> t_ptr1;
    26     throwing::shared_ptr<
int> t_ptr2;
    27     REQUIRE(t_ptr1.get() == 
nullptr);
    28     REQUIRE(t_ptr2.get() == 
nullptr);
    30     REQUIRE(t_ptr1.get() == 
nullptr);
    31     REQUIRE(t_ptr2.get() == 
nullptr);
    32     std::swap(t_ptr1, t_ptr2);
    33     REQUIRE(t_ptr1.get() == 
nullptr);
    34     REQUIRE(t_ptr2.get() == 
nullptr);
 TEST_CASE("unique_ptr to array reset to convertible", "[unique_ptr][array][reset][conv.qual]")