code: def test_construct_vol_no_covar_and_vol_matrix(self):
      dtype = np.float64
      vol_matrix = np.array(
          [[1.0, 0.21, -0.33], [0.61, 1.5, 1.77], [-0.3, 1.19, -0.55]]
      ).astype(dtype)
      covar_matrix = np.matmul(vol_matrix, vol_matrix.transpose())
      times = np.array([[0.12, 0.44], [0.48, 1.698]]).astype(dtype)
      actual_vol_fn, actual_tc_fn = bm_utils.construct_vol_data(
          vol_matrix, None, 3, dtype
      )
      actual_vols = self.evaluate(actual_vol_fn(times))
      np.testing.assert_array_equal(actual_vols.shape, [2, 2, 3, 3])
      for i in range(2):
          for j in range(2):
              np.testing.assert_allclose(actual_vols[i, j], vol_matrix)
  
      dt = np.array([[0.12, 0.34], [0.56, 0.78]]).astype(dtype)
      times2 = times + dt
      actual_tc = self.evaluate(actual_tc_fn(times, times2))
      np.testing.assert_array_equal(actual_tc.shape, [2, 2, 3, 3])
      for i in range(2):
          for j in range(2):
              np.testing.assert_allclose(
                  actual_tc[i, j], covar_matrix * dt[i, j]
              )
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow.python.framework import test_util
  from tf_quant_finance.models.legacy import brownian_motion_utils
label_desc: Use image node_id 15 for calling the BrownianMotionUtilsTest obj's underlying member method code with example usage: obj.test_construct_vol_no_covar_and_vol_matrix() without return types