docstr: Tests that Euler angles can be retrieved from rotation matrices.
docstr_tok: ["Tests","that","Euler","angles","can","be","retrieved","from","rotation","matrices","."]
code: def test_from_rotation_matrix_random(self):
      """Tests that Euler angles can be retrieved from rotation matrices."""
      matrix = test_helpers.generate_random_test_rotation_matrix_3d()
  
      predicted_angles = euler.from_rotation_matrix(matrix)
      # There is not a unique mapping from rotation matrices to Euler angles. The
      # following constructs the rotation matrices from the `predicted_angles` and
      # compares them with `matrix`.
      reconstructed_matrices = rotation_matrix_3d.from_euler(
          predicted_angles
      )
  
      self.assertAllClose(reconstructed_matrices, matrix, rtol=1e-3)
  
imports: from absl.testing import flagsaver
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tensorflow_graphics.geometry.transformation import axis_angle
  from tensorflow_graphics.geometry.transformation import euler
  from tensorflow_graphics.geometry.transformation import quaternion
  from tensorflow_graphics.geometry.transformation import rotation_matrix_3d
  from tensorflow_graphics.geometry.transformation.tests import test_data
  from tensorflow_graphics.geometry.transformation.tests import test_helpers
  from tensorflow_graphics.util import test_case
label_desc: Use image node_id 21 for calling the EulerTest obj's underlying member method code with example usage: obj.test_from_rotation_matrix_random() without return types