docstr: Tests that Euler angles produce the same result as axis-angle.
docstr_tok: ["Tests","that","Euler","angles","produce","the","same","result","as","axis-angle","."]
code: def test_from_euler_random(self):
      """Tests that Euler angles produce the same result as axis-angle."""
      angles = test_helpers.generate_random_test_euler_angles()
      matrix = rotation_matrix_3d.from_euler(angles)
      tensor_tile = angles.shape[:-1]
  
      x_axis = np.tile(td.AXIS_3D_X, tensor_tile + (1,))
      y_axis = np.tile(td.AXIS_3D_Y, tensor_tile + (1,))
      z_axis = np.tile(td.AXIS_3D_Z, tensor_tile + (1,))
      x_angle = np.expand_dims(angles[..., 0], axis=-1)
      y_angle = np.expand_dims(angles[..., 1], axis=-1)
      z_angle = np.expand_dims(angles[..., 2], axis=-1)
      x_rotation = rotation_matrix_3d.from_axis_angle(x_axis, x_angle)
      y_rotation = rotation_matrix_3d.from_axis_angle(y_axis, y_angle)
      z_rotation = rotation_matrix_3d.from_axis_angle(z_axis, z_angle)
      expected_matrix = tf.matmul(
          z_rotation, tf.matmul(y_rotation, x_rotation)
      )
  
      self.assertAllClose(expected_matrix, 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 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 19 for calling the RotationMatrix3dTest obj's underlying member method code with example usage: obj.test_from_euler_random() without return types