def METHOD_NAME(fir_filter, art_warning, expected_values):
    try:
        # Load data for testing
        expected_data = expected_values()
        x1 = expected_data[0]
        x2 = expected_data[1]
        x3 = expected_data[2]
        result_0 = expected_data[3]
        result_1 = expected_data[4]
        result_2 = expected_data[5]
        # Create signal data
        x = np.array([np.array(x1 * 2), np.array(x2 * 2), np.array(x3 * 2)], dtype=object)
        # Filter params
        numerator_coef = np.array([0.1, 0.2, -0.1, -0.2])
        if fir_filter:
            denominator_coef = np.array([1.0])
        else:
            denominator_coef = np.array([1.0, 0.1, 0.3, 0.4])
        # Create filter
        audio_filter = LFilter(numerator_coef=numerator_coef, denominator_coef=denominator_coef)
        # Apply filter
        result = audio_filter(x)
        # Test
        assert result[1] is None
        np.testing.assert_array_almost_equal(result_0, result[0][0], decimal=0)
        np.testing.assert_array_almost_equal(result_1, result[0][1], decimal=0)
        np.testing.assert_array_almost_equal(result_2, result[0][2], decimal=0)
    except ARTTestException as e:
        art_warning(e)