def METHOD_NAME(amplitudes, shape_filtered, sampling_rate):
    """
    Verify the entire filter bank processing with a round trip using single and
    multi channel signals of different sampling rates. Assert shape of
    intermediate results. Assert values of final result.
    """
    # initialize filter bank
    GFB = filter.GammatoneBands(
        [0, 22050], resolution=.5, sampling_rate=sampling_rate)
    # filter and sum an impulse signal
    impulse = pf.signals.impulse(
        2048, amplitude=amplitudes, sampling_rate=sampling_rate)
    real, imag = GFB.process(impulse)
    reconstructed = GFB.reconstruct(real, imag)
    # assert shapes
    assert real.time.shape == shape_filtered
    assert imag.time.shape == shape_filtered
    assert reconstructed.time.shape == impulse.time.shape
    for idx in np.ndindex(impulse.cshape):
        # assert magnitude spectrum: must be constant
        log_mag = pf.dsp.decibel(reconstructed[idx] / amplitudes[idx])
        f_max = reconstructed.find_nearest_frequency(20e3)
        assert np.all(np.abs(log_mag[..., :f_max]) < 0.5)
        # assert group delay in seconds: must be constant above freq. limit
        grp_del = pf.dsp.group_delay(
            reconstructed[idx], [1e3, 2e3, 4e3, 8e3, 16e3], 'scipy')
        assert np.all(np.abs(
            grp_del / reconstructed.sampling_rate - GFB.delay) < .0001)