def _arg_for_type(self, a_letter_type, index=0):
        """return a suitable array argument for testing the letter type"""
        # Note all possible arrays must have the same size, since they
        # may be used as inputs to the same func.
        if a_letter_type in 'bhilq':
            # an integral
            return np.array([1, 4, 0, -2], dtype=a_letter_type)
        if a_letter_type in 'BHILQ':
            return np.array([1, 2, 4, 0], dtype=a_letter_type)
        elif a_letter_type in '?':
            # a boolean
            return np.array([True, False, False, True], dtype=a_letter_type)
        elif a_letter_type[0] == 'm':
            # timedelta64
            if len(a_letter_type) == 1:
                a_letter_type = 'm8[D]'
            return np.array([2, -3, 'NaT', 0], dtype=a_letter_type)
        elif a_letter_type[0] == 'M':
            # datetime64
            if len(a_letter_type) == 1:
                a_letter_type = 'M8[D]'
            return np.array(['Nat', 1, 25, 0], dtype=a_letter_type)
        elif a_letter_type in 'fd':
            # floating point
            return np.array([1.5, -3.5, 0.0, float('nan')],
                            dtype=a_letter_type)
        elif a_letter_type in 'FD':
            # complex
            if sys.platform != 'win32':
                # Other platforms have better handling of negative zeros,
                # test them
                negzero = -(0.0 + 1.0j)
            else:
                negzero = 0.0 - 1.0j
            return np.array([negzero, 1.5 + 1.5j, 1j * float('nan'), 0j],
                            dtype=a_letter_type)
        else:
            raise RuntimeError("type %r not understood" % (a_letter_type,))
return a suitable array argument for testing the letter type
numba/tests/test_ufuncs.py