code: def rotation(theta, phi):
      """Returns a rotation 3x3 matrix."""
      cos = np.cos
      sin = np.sin
      a1 = np.array(
          [
              [cos(theta), -sin(theta), 0],
              [sin(theta), cos(theta), 0],
              [0, 0, 1],
          ]
      )
      a2 = np.array(
          [[1, 0, 0], [0, cos(phi), -sin(phi)], [0, sin(phi), cos(phi)]]
      )
      return np.dot(a1, a2)
  
imports: import copy
  import numpy
  import pytest
  from numpy.testing import assert_almost_equal, assert_array_equal
  from ...transforms.affine_transform import AffineTransform
  from ...transforms.affine_utils import from_matrix_vector
  from ...transforms.transform import Transform
  from ..volume_img import CompositionError, VolumeImg
label_desc: Use image node_id 1 for calling a global function with example usage: rotation(theta, phi) and returns: np