code: def testStructuredBaseKernel(self):
      base_kernel = exponentiated_quadratic.ExponentiatedQuadratic()
      structured_kernel = psd_kernel_test_util.MultipartTestKernel(
          base_kernel
      )
      fixed_inputs = np.random.uniform(-1, 1, (10, 7)).astype(
          np.float32
      )
      structured_fixed_inputs = dict(
          zip(("foo", "bar"), tf.split(fixed_inputs, [4, 3], axis=-1))
      )
  
      schur = schur_complement.SchurComplement(
          base_kernel, fixed_inputs
      )
      structured_schur = schur_complement.SchurComplement(
          structured_kernel, structured_fixed_inputs
      )
      structured_precomputed_schur = (
          schur_complement.SchurComplement.with_precomputed_divisor(
              structured_kernel, structured_fixed_inputs
          )
      )
  
      x = np.random.uniform(-1, 1, (4, 7)).astype(np.float32)
      y = np.random.uniform(-1, 1, (4, 7)).astype(np.float32)
      struct_x = dict(zip(("foo", "bar"), tf.split(x, [4, 3], axis=-1)))
      struct_y = dict(zip(("foo", "bar"), tf.split(y, [4, 3], axis=-1)))
      expected_apply_result = schur.apply(x, y)
      expected_matrix_result = schur.matrix(x, y)
  
      self.assertAllEqual(
          schur.batch_shape, structured_schur.batch_shape
      )
      self.assertAllEqual(
          schur.batch_shape, structured_precomputed_schur.batch_shape
      )
      self.assertAllClose(
          expected_apply_result,
          structured_schur.apply(struct_x, struct_y),
      )
      self.assertAllClose(
          expected_apply_result,
          structured_precomputed_schur.apply(struct_x, struct_y),
      )
      self.assertAllClose(
          expected_matrix_result,
          structured_schur.matrix(struct_x, struct_y),
      )
      self.assertAllClose(
          expected_matrix_result,
          structured_precomputed_schur.matrix(struct_x, struct_y),
      )
  
      # Test input masking.
      mask = np.random.randint(2, size=(10,), dtype=bool)
      masked_schur = schur_complement.SchurComplement(
          base_kernel, fixed_inputs, fixed_inputs_is_missing=~mask
      )
      masked_structured_schur = schur_complement.SchurComplement(
          structured_kernel,
          structured_fixed_inputs,
          fixed_inputs_is_missing=~mask,
      )
      self.assertAllClose(
          masked_schur.apply(x, y),
          masked_structured_schur.apply(struct_x, struct_y),
      )
  
imports: import functools
  import itertools
  from unittest import mock
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import cholesky_util
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
  from tensorflow_probability.python.math.psd_kernels import exponentiated_quadratic
  from tensorflow_probability.python.math.psd_kernels import schur_complement
  from tensorflow_probability.python.math.psd_kernels.internal import test_util
label_desc: Use image node_id 13 for calling the SchurComplementTest obj's underlying member method code with example usage: obj.testStructuredBaseKernel() without return types