code: def test_clone(self):
      self.piv_chol.diag.requires_grad_(True)
      try:
          other = self.piv_chol.clone()
          for key in ("tril", "perm", "diag"):
              a = getattr(self.piv_chol, key)
              b = getattr(other, key)
              self.assertTrue(a.equal(b))
              self.assertFalse(a is b)
  
          other.diag.sum().backward()
          self.assertTrue(self.piv_chol.diag.grad.eq(1).all())
      finally:
          self.piv_chol.diag.requires_grad_(False)
  
file_path: botorch/test/utils/probability/test_linalg.py
imports: from __future__ import annotations
  from copy import deepcopy
  import torch
  from botorch.utils.probability.linalg import augment_cholesky, PivotedCholesky
  from botorch.utils.testing import BotorchTestCase
label_desc: Use image node_id 5 for calling the TestPivotedCholesky obj's underlying member method code with example usage: obj.test_clone() without return types