code: def test_deepcopy(self):
      class Foo(nnx.Module):
          def __init__(self) -> None:
              self.a = nnx.Param(1)
              self.b = [1, 2, 3]
              self.c = nnx.Param(jnp.array([1.0]))
              self.self = self
  
      m1 = Foo()
      m2 = deepcopy(m1)
  
      assert m1.a == m2.a
      assert vars(m1)["a"] is not vars(m2)["a"]
      assert m1.b is not m2.b
      assert m1.c is not m2.c
      assert m1.self is m1
  
imports: import dataclasses
  from copy import deepcopy
  from typing import Any, TypeVar
  import jax
  import jax.numpy
  import pytest
  from flax.experimental import nnx
label_desc: Use image node_id 28 for calling the TestModule obj's underlying member method code with example usage: obj.test_deepcopy() without return types