def METHOD_NAME(min_heights,
                         min_ratios,
                         waveform,
                         splitter):
    """
    Test the specified splitting algorithm
    :param min_heights: list of the minimum heights of the peaks to have a split
    :param min_ratios: list of the ratios of the peaks to have a split
    :param waveform: list (will be converted to array) of
    :param splitter: either 'local_minimum' or 'natural_breaks'
    """
    test_splitter = {
        'local_minimum': strax.processing.peak_splitting.LocalMinimumSplitter(),
        'natural_breaks': strax.processing.peak_splitting.NaturalBreaksSplitter()
                     }.get(splitter, None)
    print(f'Testing {splitter}')
    if test_splitter is None:
        raise NotImplementedError(f'Unknown splitter {splitter}')
    NO_MORE_SPLITS = strax.processing.peak_splitting.NO_MORE_SPLITS
    # mimick a peak
    waveform = np.array(waveform)
    for min_height, min_ratio in zip(min_heights, min_ratios):
        # Split according to the different splitters
        if splitter == 'local_minimum':
            my_splits = test_splitter.find_split_points(
                waveform, dt=None, peak_i=None, min_height=min_height,
                min_ratio=min_ratio)
        elif splitter == 'natural_breaks':
            # Use min-height here as threshold (>1 meaningless)
            threshold = np.array([min_height])
            my_splits = test_splitter.find_split_points(
                waveform, dt=1, peak_i=np.int64(0), threshold=threshold, normalize=0,
                split_low=0, filter_wing_width=0)
        my_splits = np.array(list(my_splits))
        assert len(my_splits) >= 1
        # get left and right from found splits
        split_checks = [(int(split - 1), int(split + 1), int(split))
                        for split in my_splits[:, 0]]
        # discard last two split-entries if they exist
        # they are len(w) and NO_MORE_SPLITS --> nothing to test
        split_checks = split_checks[:-2]
        # This test does not have to work for the natural breaks
        # algorithm as we use a moving average
        if test_splitter == 'local_minimum':
            # check if left and right from split index value is bigger or equal
            for left, right, split in split_checks:
                assert waveform[left] >= waveform[split]
                assert waveform[right] >= waveform[split]
        assert len(my_splits) <= int(len(waveform) / 2) + 1
        assert min(my_splits[:, 0]) == NO_MORE_SPLITS
        assert my_splits[-1, 0] == NO_MORE_SPLITS