code: def test_from_axis_angle_translation_random(self):
      (
          axis_gt,
          angle_gt,
          translation_gt,
      ) = test_helpers.generate_random_test_axis_angle_translation()
  
      rotation_gt = quaternion.from_axis_angle(axis_gt, angle_gt)
      dual_quaternion_output = (
          dual_quaternion.from_axis_angle_translation(
              axis_gt, angle_gt, translation_gt
          )
      )
  
      rotation, translation = dual_quaternion.to_rotation_translation(
          dual_quaternion_output
      )
  
      self.assertAllClose(rotation_gt, rotation)
      self.assertAllClose(translation_gt, translation)
  
imports: from absl.testing import flagsaver
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tensorflow_graphics.geometry.transformation import dual_quaternion
  from tensorflow_graphics.geometry.transformation import quaternion
  from tensorflow_graphics.geometry.transformation import rotation_matrix_3d
  from tensorflow_graphics.geometry.transformation.tests import test_helpers
  from tensorflow_graphics.util import test_case
label_desc: Use image node_id 32 for calling the DualQuaternionTest obj's underlying member method code with example usage: obj.test_from_axis_angle_translation_random() without return types