code: def test_norm_laplacian(self):
      mesh = self.init_mesh()
      verts = mesh.verts_packed()
      edges = mesh.edges_packed()
      V, E = verts.shape[0], edges.shape[0]
  
      eps = 1e-12
  
      L = norm_laplacian(verts, edges, eps=eps)
  
      Lnaive = torch.zeros(
          (V, V), dtype=torch.float32, device=verts.device
      )
      for e in range(E):
          e0, e1 = edges[e]
          v0 = verts[e0]
          v1 = verts[e1]
  
          w01 = 1.0 / ((v0 - v1).norm() + eps)
          Lnaive[e0, e1] += w01
          Lnaive[e1, e0] += w01
  
      self.assertClose(L.to_dense(), Lnaive)
  
file_path: pytorch3d/tests/test_laplacian_matrices.py
imports: import unittest
  import torch
  from pytorch3d.ops import cot_laplacian, laplacian, norm_laplacian
  from pytorch3d.structures.meshes import Meshes
  from .common_testing import get_random_cuda_device, TestCaseMixin
label_desc: Use image node_id 5 for calling the TestLaplacianMatrices obj's underlying member method code with example usage: obj.test_norm_laplacian() without return types