@Description("Weibull cdf given the a, b parameters and value")
    @ScalarFunction
    @SqlType(StandardTypes.DOUBLE)
    public static double weibullCdf(
            @SqlType(StandardTypes.DOUBLE) double a,
            @SqlType(StandardTypes.DOUBLE) double b,
            @SqlType(StandardTypes.DOUBLE) double value)
    {
        checkCondition(a > 0, INVALID_FUNCTION_ARGUMENT, "weibullCdf Function: a must be greater than 0");
        checkCondition(b > 0, INVALID_FUNCTION_ARGUMENT, "weibullCdf Function: b must be greater than 0");
        WeibullDistribution distribution = new WeibullDistribution(null, a, b, WeibullDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY);
        return distribution.cumulativeProbability(value);
    }
@Test
    public void testWeibullCdf()
    {
        assertFunction("weibull_cdf(1.0, 1.0, 0.0)", DOUBLE, 0.0);
        assertFunction("weibull_cdf(1.0, 1.0, 40.0)", DOUBLE, 1.0);
        assertFunction("round(weibull_cdf(1.0, 0.6, 3.0), 2)", DOUBLE, 0.99);
        assertFunction("round(weibull_cdf(1.0, 0.9, 2.0), 2)", DOUBLE, 0.89);

        assertInvalidFunction("weibull_cdf(0, 3, 0.5)", "weibullCdf Function: a must be greater than 0");
        assertInvalidFunction("weibull_cdf(3, 0, 0.5)", "weibullCdf Function: b must be greater than 0");
    }