code: def test_svgp_vs_sgpr(sgpr_and_svgp: Tuple[SGPR, SVGP]) -> None:
      """
      With a Gaussian likelihood the sparse Gaussian variational (SVGP) model
      should be equivalent to the analytically optimial sparse regression model (SGPR)
      after a single nat grad step of size 1.0
      """
      sgpr, svgp = sgpr_and_svgp
      assert_sgpr_vs_svgp(sgpr, svgp)
  
imports: from typing import Any, Optional, Tuple
  import numpy
  import pytest
  import tensorflow
  from check_shapes import check_shapes
  import gpflow
  from gpflow import set_trainable
  from gpflow.config import default_float
  from gpflow.kernels import Kernel, SquaredExponential
  from gpflow.likelihoods import Gaussian, Likelihood
  from gpflow.models import GPR, SGPR, SVGP, VGP, BayesianModel
  from gpflow.optimizers import NaturalGradient
label_desc: Use image node_id 12 for calling a global function with example usage: test_svgp_vs_sgpr(sgpr_and_svgp) without return types