code: def test_update_random_array(
      self,
      array_size,
      distribution_mean,
      distribution_variance,
      num_vectors,
  ):
      rng = np.random.default_rng(4444444)
      vectors = []
      for _ in range(num_vectors):
          vector = (
              rng.standard_normal(array_size)
              * np.sqrt(distribution_variance)
              + distribution_mean
          )
          vectors.append(vector)
      vectors = np.asarray(vectors)
      accumulator = variance_util.MeanCovAccumulator()
  
      # Iterate over chunks updating - array_size should be divisible by 10.
      batch_size = 10
      for idx in range(0, vectors.size, batch_size):
          accumulator.update(vectors[idx : idx + batch_size])
  
      expected_mean = np.mean(vectors, axis=0)
      expected_covariance = np.cov(vectors, rowvar=False).ravel()
      actual_mean = accumulator.mean
      actual_covariance = accumulator.covariance.ravel()
  
      self.assertEqual(expected_mean.size, actual_mean.size)
      self.assertEqual(expected_covariance.size, actual_covariance.size)
      for expected, actual in zip(expected_mean, actual_mean):
          self.assertAlmostEqual(expected, actual)
      for expected, actual in zip(
          expected_covariance, actual_covariance
      ):
          self.assertAlmostEqual(expected, actual)
  
imports: from absl.testing import absltest
  from absl.testing import parameterized
  import numpy
  from tensorflow_data_validation.utils import variance_util
label_desc: Use image node_id 3 for calling the MeanCovAccumulatorTest obj's underlying member method code with example usage: obj.test_update_random_array(array_size, distribution_mean, distribution_variance, num_vectors) without return types