code: def test_elemwise_update(self, batched_dist):
      with pm.Model() as m:
          m.register_rv(batched_dist, name="batched_dist")
          step = pm.Metropolis([batched_dist])
          assert step.elemwise_update == (batched_dist.ndim > 0)
          trace = pm.sample(
              draws=1000, chains=2, step=step, random_seed=428
          )
  
      assert az.rhat(trace).max()["batched_dist"].values < 1.1
      assert az.ess(trace).min()["batched_dist"].values > 50
  
imports: import warnings
  import arviz
  import numpy
  import numpy.testing
  import pytensor
  import pytest
  import pymc
  from pymc.step_methods.metropolis import BinaryGibbsMetropolis, CategoricalGibbsMetropolis, DEMetropolis, DEMetropolisZ, Metropolis, MultivariateNormalProposal, NormalProposal
  from pymc.testing import fast_unstable_sampling_mode
  from tests import sampler_fixtures
  from tests.helpers import RVsAssignmentStepsTester, StepMethodTester
  from tests.models import mv_simple, mv_simple_discrete, simple_categorical
label_desc: Use image node_id 4 for calling the TestMetropolis obj's underlying member method code with example usage: obj.test_elemwise_update(batched_dist) without return types