def METHOD_NAME(
    num_datapoints: int, num_dims: int, negative: bool, jit_compile: bool, key_val: int
):
    key = jr.PRNGKey(key_val)
    D = build_data(num_datapoints, num_dims, key, binary=True)
    # Build model
    p = Prior(
        kernel=gpx.RBF(active_dims=list(range(num_dims))), mean_function=gpx.Constant()
    )
    likelihood = Bernoulli(num_datapoints=num_datapoints)
    post = p * likelihood
    mll = NonConjugateMLL(negative=negative)
    assert isinstance(mll, AbstractObjective)
    if jit_compile:
        mll = jax.jit(mll)
    evaluation = mll(post, D)
    assert isinstance(evaluation, jax.Array)
    assert evaluation.shape == ()
    mll2 = LogPosteriorDensity(negative=negative)
    if jit_compile:
        mll2 = jax.jit(mll2)
    assert mll2(post, D) == evaluation