code: def test_variational_multivariate_prior_KL_full_q(
      whiten: bool,
  ) -> None:
      cov_q: AnyNDArray = (
          MultiDatum.q_sqrt_full @ MultiDatum.q_sqrt_full.T
      )
      mean_prior = np.zeros((MultiDatum.dim, 1))
      cov_prior = (
          np.eye(MultiDatum.dim)
          if whiten
          else ref_rbf_kernel(
              MultiDatum.X, MultiDatum.ls, MultiDatum.signal_var
          )
      )
      reference_kl = multivariate_prior_KL(
          MultiDatum.q_mean, cov_q, mean_prior, cov_prior
      )
  
      q_sqrt = MultiDatum.q_sqrt_full[None, :, :]
      model = gpflow.models.SVGP(
          kernel=SquaredExponential(
              variance=MultiDatum.signal_var, lengthscales=MultiDatum.ls
          ),
          likelihood=Gaussian(MultiDatum.noise_var),
          inducing_variable=MultiDatum.Z,
          num_latent_gps=MultiDatum.num_latent_gps,
          q_diag=False,
          whiten=whiten,
          q_mu=MultiDatum.q_mean,
          q_sqrt=q_sqrt,
      )
  
      assert_allclose(model.prior_kl(), reference_kl, atol=4)
  
imports: from typing import Tuple, cast
  import numpy
  import pytest
  from check_shapes import check_shapes
  from numpy.testing import assert_allclose
  import gpflow
  from gpflow.base import AnyNDArray
  from gpflow.kernels import SquaredExponential
  from gpflow.likelihoods import Gaussian
  from tests.gpflow.kernels.reference import ref_rbf_kernel
label_desc: Use image node_id 9 for calling a global function with example usage: test_variational_multivariate_prior_KL_full_q(whiten) without return types