code: def test_fast_global_registration(self):
      a = torch.randn(100, 3)
  
      R_gt = euler_angles_to_rotation_matrix(torch.rand(3) * np.pi)
      t_gt = torch.rand(3)
      T_gt = torch.eye(4)
      T_gt[:3, :3] = R_gt
      T_gt[:3, 3] = t_gt
      b = a.mm(R_gt.T) + t_gt
      T_pred = fast_global_registration(a, b, mu_init=1, num_iter=20)
      npt.assert_allclose(T_pred.numpy(), T_gt.numpy(), rtol=1e-3)
  
imports: import numpy
  import torch
  import unittest
  import numpy.testing
  import os
  import sys
  from torch_points3d.utils.registration import estimate_transfo
  from torch_points3d.utils.registration import fast_global_registration
  from torch_points3d.utils.registration import ransac_registration
  from torch_points3d.metrics.registration_metrics import compute_hit_ratio
  from torch_points3d.metrics.registration_metrics import compute_transfo_error
  from torch_points3d.metrics.registration_metrics import compute_scaled_registration_error
  from torch_points3d.utils.geometry import rodrigues
  from torch_points3d.utils.geometry import euler_angles_to_rotation_matrix
label_desc: Use image node_id 2 for calling the TestRegistrationMetrics obj's underlying member method code with example usage: obj.test_fast_global_registration() without return types