code: def test_multivariate(self):
      rng = np.random.default_rng(39)
  
      p_draws = rng.normal(size=(4, 25, 3))
      y_draws = st.dirichlet(np.ones(3)).rvs(10, random_state=rng)
      with Model(
          coords={
              "test_event_dim": range(10),
              "test_support_dim": range(3),
          }
      ) as m:
          p = Normal("p", dims=("test_support_dim",))
          y = Dirichlet(
              "y",
              a=p.exp(),
              observed=y_draws,
              dims=("test_event_dim", "test_support_dim"),
          )
  
          idata = InferenceData(
              posterior=dict_to_dataset({"p": p_draws})
          )
          res = compute_log_likelihood(idata)
  
      assert res.log_likelihood.dims == {
          "chain": 4,
          "draw": 25,
          "test_event_dim": 10,
      }
  
      np.testing.assert_allclose(
          res.log_likelihood["y"].values,
          dirichlet_logpdf(y_draws, np.exp(p_draws)[..., None, :]),
      )
  
file_path: pymc/tests/stats/test_log_likelihood.py
imports: import numpy
  import pytest
  import scipy.stats
  from arviz import InferenceData, dict_to_dataset, from_dict
  from pymc.distributions import Dirichlet, Normal
  from pymc.distributions.transforms import log
  from pymc.model import Model
  from pymc.stats.log_likelihood import compute_log_likelihood
  from tests.distributions.test_multivariate import dirichlet_logpdf
label_desc: Use image node_id 2 for calling the TestComputeLogLikelihood obj's underlying member method code with example usage: obj.test_multivariate() without return types