Add test cases for smart pointers