code: def test_robust_max_multiclass_eps_k1_changes(
      num_classes: int, initial_epsilon: float, new_epsilon: float
  ) -> None:
      """
      Checks that eps K1 changes when epsilon changes. This used to not happen and had to be
      manually changed.
      """
      likelihood = RobustMax(num_classes, initial_epsilon)
      expected_eps_k1 = initial_epsilon / (num_classes - 1.0)
      actual_eps_k1 = likelihood.eps_k1
      assert_allclose(expected_eps_k1, actual_eps_k1)
  
      likelihood.epsilon = tf.convert_to_tensor(
          new_epsilon, dtype=default_float()
      )
      expected_eps_k2 = new_epsilon / (num_classes - 1.0)
      actual_eps_k2 = likelihood.eps_k1
      assert_allclose(expected_eps_k2, actual_eps_k2)
  
file_path: GPflow/tests/gpflow/likelihoods/test_multiclass.py
imports: import numpy
  import pytest
  import tensorflow
  from check_shapes import inherit_check_shapes
  from numpy.testing import assert_allclose
  from gpflow.base import AnyNDArray, TensorType
  from gpflow.config import default_float, default_int
  from gpflow.likelihoods import Bernoulli, MultiClass, RobustMax, Softmax
  from gpflow.utilities import to_default_float, to_default_int
label_desc: Use image node_id 5 for calling a global function with example usage: test_robust_max_multiclass_eps_k1_changes(num_classes, initial_epsilon, new_epsilon) without return types