docstr: Tests whether we can estimate a rigid/similarity motion between
  a randomly initialized point cloud and its randomly transformed version.
  
  The tests are done for all possible combinations
  of the following boolean flags:
      - estimate_scale ... Estimate also a scaling component of
                           the transformation.
      - reflect ... The ground truth orthonormal part of the generated
                   transformation is a reflection (det==-1).
      - allow_reflection ... If True, the orthonormal matrix of the
                            estimated transformation is allowed to be
                            a reflection (det==-1).
      - use_pointclouds ... If True, passes the Pointclouds objects
                            to corresponding_points_alignment.
docstr_tok: ["Tests","whether","we","can","estimate","a","rigid\/similarity","motion","between","a","randomly","initialized","point","cloud","and","its","randomly","transformed","version",".","The","tests","are","done","for","all","possible","combinations","of","the","following","boolean","flags",":","-","estimate_scale","...","Estimate","also","a","scaling","component","of","the","transformation",".","-","reflect","...","The","ground","truth","orthonormal","part","of","the","generated","transformation","is","a","reflection","(","det==-1",")",".","-","allow_reflection","...","If","True",",","the","orthonormal","matrix","of","the","estimated","transformation","is","allowed","to","be","a","reflection","(","det==-1",")",".","-","use_pointclouds","...","If","True",",","passes","the","Pointclouds","objects","to","corresponding_points_alignment","."]
code: def test_corresponding_points_alignment(self, batch_size=10):
      """
      Tests whether we can estimate a rigid/similarity motion between
      a randomly initialized point cloud and its randomly transformed version.
  
      The tests are done for all possible combinations
      of the following boolean flags:
          - estimate_scale ... Estimate also a scaling component of
                               the transformation.
          - reflect ... The ground truth orthonormal part of the generated
                       transformation is a reflection (det==-1).
          - allow_reflection ... If True, the orthonormal matrix of the
                                estimated transformation is allowed to be
                                a reflection (det==-1).
          - use_pointclouds ... If True, passes the Pointclouds objects
                                to corresponding_points_alignment.
      """
      # run this for several different point cloud sizes
      for n_points in (100, 3, 2, 1):
          # run this for several different dimensionalities
          for dim in range(2, 10):
              # switches whether we should use the Pointclouds inputs
              use_point_clouds_cases = (
                  (True, False)
                  if dim == 3 and n_points > 3
                  else (False,)
              )
              for random_weights in (False, True):
                  for use_pointclouds in use_point_clouds_cases:
                      for estimate_scale in (False, True):
                          for reflect in (False, True):
                              for allow_reflection in (False, True):
                                  self._test_single_corresponding_points_alignment(
                                      batch_size=10,
                                      n_points=n_points,
                                      dim=dim,
                                      use_pointclouds=use_pointclouds,
                                      estimate_scale=estimate_scale,
                                      reflect=reflect,
                                      allow_reflection=allow_reflection,
                                      random_weights=random_weights,
                                  )
  
imports: import unittest
  import numpy
  import torch
  from pytorch3d.ops import points_alignment
  from pytorch3d.structures.pointclouds import Pointclouds
  from pytorch3d.transforms import rotation_conversions
  from .common_testing import get_tests_dir, TestCaseMixin
label_desc: Use image node_id 7 for calling the TestCorrespondingPointsAlignment obj's underlying member method code with example usage: obj.test_corresponding_points_alignment(batch_size) without return types