code: def test_check_is_subdtype_changes_type():
      # test coercing some types (e.g. np.number) can lead to unexpected
      # failed `np.issubtype` checks due to an implicit change of type
      int_array = np.array([1, 2, 3])
      dtype_expected = np.number
      check_is_subdtype(
          int_array, dtype_expected
      )  # int is subtype of np.number
  
      dtype_coerced = validate_dtype(dtype_expected)
      assert (
          dtype_coerced.type is np.float64
      )  # np.number is coerced (by NumPy) as a float
      with pytest.raises(TypeError):
          # this check will now fail since int is not subtype of float
          check_is_subdtype(int_array, dtype_coerced)
  
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 7 for calling a global function with example usage: test_check_is_subdtype_changes_type() without return types