def test01_shared_ptr(self): """Usage and access of std::shared_ptr<>""" from cppyy.gbl import TestSharedPtr, create_shared_ptr_instance # proper memory accounting assert TestSharedPtr.s_counter == 0 ptr1 = create_shared_ptr_instance() assert ptr1 assert not not ptr1 assert TestSharedPtr.s_counter == 1 ptr2 = create_shared_ptr_instance() assert ptr2 assert not not ptr2 assert TestSharedPtr.s_counter == 2 del ptr2 import gc; gc.collect() assert TestSharedPtr.s_counter == 1 del ptr1 gc.collect() assert TestSharedPtr.s_counter == 0