code: def test_validate_axes(name):
      axes_right = np.eye(3)
      axes_left = np.array([[1, 0.0, 0], [0, 1, 0], [0, 0, -1]])
  
      # test different input args
      axes = validate_axes(axes_right)
      assert np.array_equal(axes, axes_right)
      axes = validate_axes(
          [[1], [0], [0]],
          [[0, 1, 0]],
          must_have_orientation="right",
          must_be_orthogonal=True,
      )
      assert np.array_equal(axes, axes_right)
      axes = validate_axes([1, 0, 0], [[0, 1, 0]], (0, 0, 1))
      assert np.array_equal(axes, axes_right)
  
      # test bad input
      with pytest.raises(
          ValueError, match=f"{name} cannot be parallel."
      ):
          validate_axes([[1, 0, 0], [1, 0, 0], [0, 1, 0]], name=name)
      with pytest.raises(ValueError, match="Axes cannot be parallel."):
          validate_axes([[0, 1, 0], [1, 0, 0], [0, 1, 0]])
      with pytest.raises(ValueError, match=f"{name} cannot be zeros."):
          validate_axes([[1, 0, 0], [0, 1, 0], [0, 0, 0]], name=name)
      with pytest.raises(ValueError, match="Axes cannot be zeros."):
          validate_axes([[1, 0, 0], [0, 0, 0], [0, 0, 1]])
      with pytest.raises(ValueError, match="Axes cannot be zeros."):
          validate_axes([[0, 0, 0], [0, 1, 0], [0, 0, 1]])
  
      # test normalize
      axes_scaled = axes_right * 2
      axes = validate_axes(axes_scaled, normalize=False)
      assert np.array_equal(axes, axes_scaled)
      axes = validate_axes(axes_scaled, normalize=True)
      assert np.array_equal(axes, axes_right)
  
      # test orientation
      validate_axes([1, 0, 0], [0, 1, 0], must_have_orientation="left")
      validate_axes(axes_left, must_have_orientation=None)
      validate_axes(axes_left, must_have_orientation="left")
      with pytest.raises(
          ValueError,
          match=f"{name} do not have a right-handed orientation.",
      ):
          validate_axes(
              axes_left, must_have_orientation="right", name=name
          )
  
      validate_axes(axes_right, must_have_orientation=None)
      validate_axes(axes_right, must_have_orientation="right")
      with pytest.raises(
          ValueError,
          match=f"{name} do not have a left-handed orientation.",
      ):
          validate_axes(
              axes_right, must_have_orientation="left", name=name
          )
  
      # test specifying two vectors without orientation raises error (3rd cannot be computed)
      with pytest.raises(
          ValueError,
          match=f"{name} orientation must be specified when only two vectors are given.",
      ):
          validate_axes(
              [1, 0, 0],
              [0, 1, 0],
              must_have_orientation=None,
              name=name,
          )
  
imports: from collections import namedtuple
  from re import escape
  import sys
  from typing import Union, get_args, get_origin
  import numpy
  import pytest
  from vtk import vtkTransform
  from pyvista.core import pyvista_ndarray
  from pyvista.core.input_validation.check import _validate_shape_value, check_has_length, check_has_shape, check_is_arraylike, check_is_dtypelike, check_is_finite, check_is_greater_than, check_is_in_range, check_is_instance, check_is_integerlike, check_is_iterable, check_is_iterable_of_some_type, check_is_iterable_of_strings, check_is_less_than, check_is_nonnegative, check_is_number, check_is_real, check_is_scalar, check_is_sequence, check_is_sorted, check_is_string, check_is_string_in_iterable, check_is_subdtype, check_is_type
  from pyvista.core.input_validation.validate import _set_default_kwarg_mandatory, validate_array, validate_array3, validate_arrayN, validate_arrayN_uintlike, validate_arrayNx3, validate_axes, validate_data_range, validate_dtype, validate_number, validate_transform3x3, validate_transform4x4
  from pyvista.core.utilities.arrays import cast_to_tuple_array, vtkmatrix_from_array
label_desc: Use image node_id 41 for calling a global function with example usage: test_validate_axes(name) without return types