code: def test_mirror():
      verts = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [-1, -1, -1]]
      verts = np.array(verts, "float")
      verts = verts / np.sqrt((verts * verts).sum(-1)[:, None])
      faces = [[0, 1, 3], [0, 2, 3], [1, 2, 3]]
  
      h = HemiSphere(xyz=verts, faces=faces)
      s = h.mirror()
  
      nt.assert_equal(len(s.vertices), 8)
      nt.assert_equal(len(s.faces), 6)
      verts = s.vertices
  
      def _angle(a, b):
          return np.arccos(np.dot(a, b))
  
      for triangle in s.faces:
          a, b, c = triangle
          nt.assert_(_angle(verts[a], verts[b]) <= np.pi / 2)
          nt.assert_(_angle(verts[a], verts[c]) <= np.pi / 2)
          nt.assert_(_angle(verts[b], verts[c]) <= np.pi / 2)
  
imports: import numpy
  import numpy.testing
  import pytest
  import warnings
  from dipy.core.sphere import Sphere, HemiSphere, unique_edges, unique_sets, faces_from_sphere_vertices, disperse_charges, fibonacci_sphere, disperse_charges_alt, _get_forces, _get_forces_alt, unit_octahedron, unit_icosahedron, hemi_icosahedron
  from dipy.core.geometry import cart2sphere, vector_norm
  from dipy.core.sphere_stats import random_uniform_on_sphere
  from dipy.utils.optpkg import optional_package
label_desc: Use image node_id 17 for calling a global function with example usage: test_mirror() and returns: np