def METHOD_NAME(self):
    """Ensure monotonic interpolation is actually monotonic."""
    # true function is just linear with a jump discontinuity at x=1.5
    x = np.linspace(-4, 5, 10)
    f = np.heaviside(x - 1.5, 0) + 0.1 * x
    xq = np.linspace(-4, 5, 1000)
    dfc = interp1d(xq, x, f, derivative=1, method="cubic")
    dfm = interp1d(xq, x, f, derivative=1, method="monotonic")
    dfm0 = interp1d(xq, x, f, derivative=1, method="monotonic-0")
    assert dfc.min() < 0  # cubic interpolation undershoots, giving negative slope
    assert dfm.min() > 0  # monotonic interpolation doesn't
    assert dfm0.min() >= 0  # monotonic-0 doesn't overshoot either
    # ensure monotonic-0 has 0 slope at end points
    np.testing.assert_allclose(dfm0[np.array([0, -1])], 0, atol=1e-12)