code: def test_mixed_dtypes_raises(self):
      base_distribution = {
          "a": normal.Normal(tf.zeros([], dtype=tf.float32), 1.0),
          "b": logistic.Logistic(tf.zeros([], dtype=tf.float64), 1.0),
      }
      operators = [tf.linalg.LinearOperatorDiag] * 2
      with self.assertRaisesRegexp(NotImplementedError, "mixed dtype"):
          (
              init_fn,
              apply_fn,
          ) = surrogate_posteriors.build_affine_surrogate_posterior_from_base_distribution_stateless(
              base_distribution, operators=operators, validate_args=True
          )
          apply_fn(
              init_fn(
                  seed=test_util.test_seed(sampler_type="stateless")
              )
          )
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import exp
  from tensorflow_probability.python.bijectors import fill_triangular
  from tensorflow_probability.python.bijectors import identity
  from tensorflow_probability.python.bijectors import joint_map
  from tensorflow_probability.python.bijectors import masked_autoregressive
  from tensorflow_probability.python.bijectors import sigmoid
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.distributions import deterministic
  from tensorflow_probability.python.distributions import exponential
  from tensorflow_probability.python.distributions import gamma
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import joint_distribution_coroutine
  from tensorflow_probability.python.distributions import joint_distribution_named
  from tensorflow_probability.python.distributions import joint_distribution_sequential
  from tensorflow_probability.python.distributions import laplace
  from tensorflow_probability.python.distributions import logistic
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import sample
  from tensorflow_probability.python.distributions import student_t
  from tensorflow_probability.python.experimental.vi import surrogate_posteriors
  from tensorflow_probability.python.internal import nest_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.internal import tf_keras
  from tensorflow_probability.python.vi import optimization
  from tensorflow.python.util import nest
label_desc: Use image node_id 4 for calling the AffineSurrogatePosterior obj's underlying member method code with example usage: obj.test_mixed_dtypes_raises() without return types