code: def test_kde_output_dtype(
      point_type, dataset_type, weights_type, bw_type
  ):
      # Check whether the datatypes are available
      point_type = getattr(np, point_type, None)
      dataset_type = getattr(np, weights_type, None)
      weights_type = getattr(np, weights_type, None)
  
      if bw_type in ["scott", "silverman"]:
          bw = bw_type
      else:
          bw_type = getattr(np, bw_type, None)
          bw = bw_type(3) if bw_type else None
  
      if any(
          dt is None
          for dt in [point_type, dataset_type, weights_type, bw]
      ):
          pytest.skip()
  
      weights = np.arange(5, dtype=weights_type)
      dataset = np.arange(5, dtype=dataset_type)
      k = stats.kde.gaussian_kde(dataset, bw_method=bw, weights=weights)
      points = np.arange(5, dtype=point_type)
      result = k(points)
      # weights are always cast to float64
      assert result.dtype == np.result_type(
          dataset, points, np.float64(weights), k.factor
      )
  
imports: from scipy import stats
  import numpy
  from numpy.testing import assert_almost_equal, assert_, assert_array_almost_equal, assert_array_almost_equal_nulp, assert_allclose
  import pytest
  from pytest import raises
label_desc: Use image node_id 11 for calling a global function with example usage: test_kde_output_dtype(point_type, dataset_type, weights_type, bw_type) without return types