code: def test_elemwise_update_different_scales(self):
      mu = [1, 2, 3, 4, 5, 100, 1_000, 10_000]
      with pm.Model() as m:
          x = pm.Poisson("x", mu=mu)
          step = pm.Metropolis([x])
          trace = pm.sample(
              draws=1000, chains=2, step=step, random_seed=128
          ).posterior
  
      np.testing.assert_allclose(
          trace["x"].mean(("draw", "chain")), mu, rtol=0.1
      )
      np.testing.assert_allclose(
          trace["x"].var(("draw", "chain")), mu, rtol=0.2
      )
  
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 5 for calling the TestMetropolis obj's underlying member method code with example usage: obj.test_elemwise_update_different_scales() without return types