code: def test_copy_linear(lazy, device):
      lin = Linear(-1 if lazy else 16, 32).to(device)
  
      copied_lin = copy.copy(lin).to(device)
      assert id(copied_lin) != id(lin)
      assert id(copied_lin.weight) == id(lin.weight)
      if not isinstance(copied_lin.weight, UninitializedParameter):
          assert copied_lin.weight.data_ptr() == lin.weight.data_ptr()
      assert id(copied_lin.bias) == id(lin.bias)
      assert copied_lin.bias.data_ptr() == lin.bias.data_ptr()
  
      copied_lin = copy.deepcopy(lin).to(device)
      assert id(copied_lin) != id(lin)
      assert id(copied_lin.weight) != id(lin.weight)
      if not isinstance(copied_lin.weight, UninitializedParameter):
          assert copied_lin.weight.data_ptr() != lin.weight.data_ptr()
          assert torch.allclose(copied_lin.weight, lin.weight)
      assert id(copied_lin.bias) != id(lin.bias)
      assert copied_lin.bias.data_ptr() != lin.bias.data_ptr()
      if int(torch.isnan(lin.bias).sum()) == 0:
          assert torch.allclose(copied_lin.bias, lin.bias)
  
imports: import copy
  import warnings
  from typing import List
  import pytest
  import torch
  from torch import Tensor
  from torch.nn import Linear
  from torch.nn.parameter import UninitializedParameter
  import torch_geometric.backend
  from torch_geometric.nn import HeteroDictLinear, HeteroLinear, Linear
  from torch_geometric.profile import benchmark
  from torch_geometric.testing import withCUDA, withPackage
  from torch_geometric.typing import pyg_lib
  from torch_geometric.utils import cumsum
label_desc: Use image node_id 6 for calling a global function with example usage: test_copy_linear(lazy, device) without return types