code: def test_cbrt_prim(self, device, dtype):
      make_arg = partial(make_tensor, device=device, dtype=dtype)
      batches = [(), (1,), (2,), (0, 1), (1, 1), (2, 2)]
      shapes = [(), (0,), (1,), (5,)]
  
      # Sets the default dtype to NumPy's default dtype of double
      with set_default_dtype(torch.double):
          # Tested here, as this OP is not currently exposed or tested in ATen
          for b, s in product(batches, shapes):
              x = make_arg(b + s)
              y = prims.cbrt(x)
  
              x_np = x.cpu().numpy()
              y_np = scipy.special.cbrt(x_np)
  
              self.assertEqual(y, y_np, exact_device=False)
  
imports: from functools import partial
  from itertools import product
  import unittest
  import torch
  from torch.testing import make_tensor
  from torch.testing._internal.common_utils import parametrize, run_tests, TestCase, TEST_SCIPY, set_default_dtype
  from torch.testing._internal.common_device_type import instantiate_device_type_tests, onlyCUDA, dtypes, OpDTypes
  from torch.testing._internal.common_methods_invocations import op_db
  from torch.testing._internal.common_device_type import ops
  from torch.testing._internal.logging_tensor import LoggingTensor, capture_logs, log_input
  import torch._prims
  from torch._prims_common import CUDARngStateHelper
  from torch._prims.executor import make_traced
  import torch._refs
label_desc: Use image node_id 3 for calling the TestPrims obj's underlying member method code with example usage: obj.test_cbrt_prim(device, dtype) without return types