code: def idmap(self, *args):
      if self.spfunc_first:
          res = self.spfunc(*args)
          if np.isnan(res):
              return np.nan
          args = list(args)
          args[self.index] = res
          with mpmath.workdps(self.dps):
              res = self.mpfunc(*tuple(args))
              # Imaginary parts are spurious
              res = mpf2float(res.real)
      else:
          with mpmath.workdps(self.dps):
              res = self.mpfunc(*args)
              res = mpf2float(res.real)
          args = list(args)
          args[self.index] = res
          res = self.spfunc(*tuple(args))
      return res
  
imports: import itertools
  import numpy
  from numpy.testing import assert_equal, assert_allclose
  import pytest
  import scipy.special
  from scipy.special._testutils import MissingModule, check_version, FuncData
  from scipy.special._mptestutils import Arg, IntArg, get_args, mpf2float, assert_mpmath_equal
label_desc: Use image node_id 2 for calling the _CDFData obj's underlying member method code with example usage: obj.idmap() and returns: res, np