code: def test_compute_scaled_registration_error(self):
      xyz = torch.tensor(
          [
              [1.0, 0.0, 0.0],
              [0.0, 1.0, 0.0],
              [0.0, 0.0, 0.0],
              [0.0, 2.0, 0.0],
              [2.0, 0.0, 0.0],
          ]
      )
      R_est = euler_angles_to_rotation_matrix(
          torch.tensor([0, 0, np.pi / 6])
      )
      T_gt = torch.eye(4)
      T_est = torch.eye(4)
      T_est[:3, :3] = R_est
      err = compute_scaled_registration_error(xyz, T_gt, T_est)
      val = 0.55901
      self.assertAlmostEqual(err.item(), val, places=5)
  
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 7 for calling the TestRegistrationMetrics obj's underlying member method code with example usage: obj.test_compute_scaled_registration_error() without return types