code: def test_copy_data():
      data = Data(x=torch.randn(20, 5))
  
      out = copy.copy(data)
      assert id(data) != id(out)
      assert id(data._store) != id(out._store)
      assert len(data.stores) == len(out.stores)
      for store1, store2 in zip(data.stores, out.stores):
          assert id(store1) != id(store2)
          assert id(data) == id(store1._parent())
          assert id(out) == id(store2._parent())
      assert data.x.data_ptr() == out.x.data_ptr()
  
      out = copy.deepcopy(data)
      assert id(data) != id(out)
      assert id(data._store) != id(out._store)
      assert len(data.stores) == len(out.stores)
      for store1, store2 in zip(data.stores, out.stores):
          assert id(store1) != id(store2)
          assert id(data) == id(store1._parent())
          assert id(out) == id(store2._parent())
      assert data.x.data_ptr() != out.x.data_ptr()
      assert data.x.tolist() == out.x.tolist()
  
imports: import copy
  import pytest
  import torch
  import torch.multiprocessing
  import torch_geometric
  from torch_geometric.data import Data
  from torch_geometric.data.storage import AttrType
  from torch_geometric.testing import get_random_tensor_frame, withPackage
label_desc: Use image node_id 7 for calling a global function with example usage: test_copy_data() without return types