code: def test_double_ellipsoid_surface_area(self):
      if USE_SCIKIT:
          import numpy as np
          from skimage.draw import ellipsoid
          from skimage.measure import (
              marching_cubes_classic,
              mesh_surface_area,
          )
  
          ellip_base = ellipsoid(6, 10, 16, levelset=True)
          ellip_double = np.concatenate(
              (ellip_base[:-1, ...], ellip_base[2:, ...]), axis=0
          )
          volume = torch.Tensor(ellip_double).unsqueeze(0)
          volume = volume.permute(0, 3, 2, 1)  # (B, D, H, W)
          verts, faces = marching_cubes_naive(volume, isolevel=0)
          verts_c, faces_c = marching_cubes(volume, isolevel=0)
          verts_sci, faces_sci = marching_cubes_classic(
              volume[0], level=0
          )
  
          surf = mesh_surface_area(verts[0], faces[0])
          surf_c = mesh_surface_area(verts_c[0], faces_c[0])
          surf_sci = mesh_surface_area(verts_sci, faces_sci)
  
          self.assertClose(surf, surf_sci)
          self.assertClose(surf, surf_c)
  
imports: import os
  import pickle
  import unittest
  import torch
  from pytorch3d.ops.marching_cubes import marching_cubes, marching_cubes_naive
  from .common_testing import get_tests_dir, TestCaseMixin
label_desc: Use image node_id 8 for calling the TestMarchingCubes obj's underlying member method code with example usage: obj.test_double_ellipsoid_surface_area() without return types