code: def testDiag(self):
      diag = np.array([[1, 2, 3], [2, 5, 6]], dtype=np.float32)
      scale = tf.linalg.LinearOperatorDiag(diag, is_non_singular=True)
      bijector = scale_matvec_linear_operator.ScaleMatvecLinearOperator(
          scale=scale, validate_args=True
      )
  
      x = np.array([[1, 0, -1], [2, 3, 4]], dtype=np.float32)
      y = diag * x
      ildj = -np.sum(np.log(np.abs(diag)), axis=-1)
  
      self.assertStartsWith(
          bijector.name, "scale_matvec_linear_operator"
      )
      self.assertAllClose(y, self.evaluate(bijector.forward(x)))
      self.assertAllClose(x, self.evaluate(bijector.inverse(y)))
      self.assertAllClose(
          ildj,
          self.evaluate(
              bijector.inverse_log_det_jacobian(y, event_ndims=1)
          ),
      )
      self.assertAllClose(
          self.evaluate(
              -bijector.inverse_log_det_jacobian(y, event_ndims=1)
          ),
          self.evaluate(
              bijector.forward_log_det_jacobian(x, event_ndims=1)
          ),
      )
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import scale_matvec_linear_operator
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 1 for calling the ScaleMatvecLinearOperatorTest obj's underlying member method code with example usage: obj.testDiag() without return types