def METHOD_NAME(
    kernel: AbstractKernel,
    num_basis_fns: int,
    n_dims: int,
    n_datas: Tuple[int, int],
):
    nd1, nd2 = n_datas
    key = jr.PRNGKey(123)
    x1 = jr.uniform(key, shape=(nd1, 1), minval=-3.0, maxval=3.0)
    if n_dims > 1:
        x1 = jnp.hstack([x1] * n_dims)
    x2 = jr.uniform(key, shape=(nd2, 1), minval=-3.0, maxval=3.0)
    if n_dims > 1:
        x2 = jnp.hstack([x2] * n_dims)
    base_kernel = kernel(active_dims=list(range(n_dims)))
    approximate = RFF(base_kernel=base_kernel, num_basis_fns=num_basis_fns)
    Kxx = approximate.cross_covariance(x1, x2)
    # Check the return type
    assert isinstance(Kxx, jax.Array)
    # Check that the shape is correct
    assert Kxx.shape == (nd1, nd2)