docstr: Checks that from_axis_angle works when Ry = pi/2 or -pi/2.
docstr_tok: ["Checks","that","from_axis_angle","works","when","Ry","=","pi\/2","or","-pi\/2","."]
code: def test_from_axis_angle_gimbal(self, gimbal_configuration):
      """Checks that from_axis_angle works when Ry = pi/2 or -pi/2."""
      random_euler_angles = (
          test_helpers.generate_random_test_euler_angles()
      )
      random_euler_angles[..., 1] = gimbal_configuration
  
      random_matrix = rotation_matrix_3d.from_euler(random_euler_angles)
      random_axis, random_angle = axis_angle.from_euler(
          random_euler_angles
      )
      predicted_random_angles = euler.from_axis_angle(
          random_axis, random_angle
      )
      reconstructed_random_matrices = rotation_matrix_3d.from_euler(
          predicted_random_angles
      )
  
      self.assertAllClose(
          reconstructed_random_matrices, random_matrix, atol=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 7 for calling the EulerTest obj's underlying member method code with example usage: obj.test_from_axis_angle_gimbal(gimbal_configuration) without return types