def METHOD_NAME(Iwave, Qwave) -> None:
    """
    Validates a pair of real arrays candidate for upload onto a generator slot of the SHFQA. The function
    additionally snaps the length of the array to the granularity of the generator.
    Args:
        Iwave: real numbers array representing the in-phase component of a candidate complex waveform to be uploaded
               to a device generator slot.
        Qwave: real numbers array representing the quadrature component of a candidate complex waveform to be uploaded
               to a device generator slot.
    """
    if Iwave is not None and Qwave is not None:
        Iwave = preprocess_generator_waveform(Iwave)
        Qwave = preprocess_generator_waveform(Qwave)
        if not (len(Iwave) == len(Iwave)):
            raise ziValueError(
                f"Length of I component {len(Iwave)} does not match length of Q component {len(Qwave)}"
            )
        return np.array([Iwave[i] + 1j * Qwave[i] for i in range(len(Iwave))])
    elif Iwave is not None:
        Iwave = preprocess_generator_waveform(Iwave)
        return np.array(Iwave)
    elif Qwave is not None:
        Qwave = preprocess_generator_waveform(Qwave)
        return np.array([1j * Qwave[i] for i in range(len(Qwave))])