code: def skewtest(a, axis=0, nan_policy="propagate"):
      if nan_policy != "propagate":
          raise NotImplementedError(
              "`nan_policy` other than 'propagate' have not been implemented."
          )
  
      b2 = skew(a, axis)
      n = float(a.shape[axis])
      if n < 8:
          raise ValueError(
              "skewtest is not valid with less than 8 samples; %i samples"
              " were given." % int(n)
          )
      y = b2 * math.sqrt(((n + 1) * (n + 3)) / (6.0 * (n - 2)))
      beta2 = (
          3.0
          * (n**2 + 27 * n - 70)
          * (n + 1)
          * (n + 3)
          / ((n - 2.0) * (n + 5) * (n + 7) * (n + 9))
      )
      W2 = -1 + math.sqrt(2 * (beta2 - 1))
      delta = 1 / math.sqrt(0.5 * math.log(W2))
      alpha = math.sqrt(2.0 / (W2 - 1))
      y = np.where(y == 0, 1, y)
      Z = delta * np.log(y / alpha + np.sqrt((y / alpha) ** 2 + 1))
  
      return delayed(SkewtestResult, nout=2)(
          Z, 2 * distributions.norm.sf(np.abs(Z))
      )
  
imports: from __future__ import annotations
  import math
  from collections import namedtuple
  import numpy
  import dask.array
  from dask import delayed
  from dask.array.ufunc import wrap_elemwise
  from dask.utils import derived_from
  from scipy import special
  from scipy.stats import distributions
label_desc: Use image node_id 7 for calling a global function with example usage: skewtest(a, axis, nan_policy) and returns: delayed