code: def test_tune_drop_fraction(self):
      tune = 300
      tune_drop_fraction = 0.85
      draws = 200
      with pm.Model() as pmodel:
          pm.Normal("n", 0, 2, size=(3,))
          step = DEMetropolisZ(tune_drop_fraction=tune_drop_fraction)
          idata = pm.sample(
              tune=tune,
              draws=draws,
              step=step,
              cores=1,
              chains=1,
              discard_tuned_samples=False,
          )
          assert len(idata.warmup_posterior.draw) == tune
          assert len(idata.posterior.draw) == draws
          assert (
              len(step._history)
              == (tune - tune * tune_drop_fraction) + draws
          )
  
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 TestDEMetropolisZ obj's underlying member method code with example usage: obj.test_tune_drop_fraction() without return types