def validate_wavetable(self):
        """Enforce monotonic, ascending wavelength array with no zero or
        negative values.

        Raises
        ------
        pysynphot.exceptions.DuplicateWavelength
            Wavelength array contains duplicate entries.

        pysynphot.exceptions.UnsortedWavelength
            Wavelength array is not monotonic ascending or descending.

        pysynphot.exceptions.ZeroWavelength
            Wavelength array has zero or negative value(s).

        """
        # First check for invalid values
        wave = self._wavetable
        if N.any(wave <= 0):
            wrong = N.where(wave <= 0)[0]
            raise exceptions.ZeroWavelength(
                'Negative or Zero wavelength occurs in wavelength array',
                rows=wrong)

        # Now check for monotonicity & enforce ascending
        sorted = N.sort(wave)
        if not N.alltrue(sorted == wave):
            if N.alltrue(sorted[::-1] == wave):
                # monotonic descending is allowed
                pass
            else:
                wrong = N.where(sorted != wave)[0]
                raise exceptions.UnsortedWavelength(
                    'Wavelength array is not monotonic', rows=wrong)

        # Check for duplicate values
        dw = sorted[1:] - sorted[:-1]
        if N.any(dw == 0):
            wrong = N.where(dw == 0)[0]
            raise exceptions.DuplicateWavelength(
                "Wavelength array contains duplicate entries", rows=wrong)
Enforce monotonic, ascending wavelength array with no zero or
        negative values.

        Raises
        ------
        pysynphot.exceptions.DuplicateWavelength
            Wavelength array contains duplicate entries.

        pysynphot.exceptions.UnsortedWavelength
            Wavelength array is not monotonic ascending or descending.

        pysynphot.exceptions.ZeroWavelength
            Wavelength array has zero or negative value(s).