pymc3/step_methods/metropolis.py

Killed 59 out of 147 mutants

Survived

Survived mutation testing. These mutants show holes in your test suite.

Mutant 81

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -67,7 +67,7 @@
         if n != m:
             raise ValueError("Covariance matrix is not symmetric.")
         self.n = n
-        self.chol = scipy.linalg.cholesky(s, lower=True)
+        self.chol = scipy.linalg.cholesky(s, lower=False)
 
     def __call__(self, num_draws=None):
         if num_draws is not None:

Mutant 85

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -102,7 +102,7 @@
     mode :  string or `Mode` instance.
         compilation mode passed to Theano functions
     """
-    name = 'metropolis'
+    name = 'XXmetropolisXX'
 
     default_blocked = False
     generates_stats = True

Mutant 86

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -102,7 +102,7 @@
     mode :  string or `Mode` instance.
         compilation mode passed to Theano functions
     """
-    name = 'metropolis'
+    name = None
 
     default_blocked = False
     generates_stats = True

Mutant 87

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -104,7 +104,7 @@
     """
     name = 'metropolis'
 
-    default_blocked = False
+    default_blocked = True
     generates_stats = True
     stats_dtypes = [{
         'accept': np.float64,

Mutant 88

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -104,7 +104,7 @@
     """
     name = 'metropolis'
 
-    default_blocked = False
+    default_blocked = None
     generates_stats = True
     stats_dtypes = [{
         'accept': np.float64,

Mutant 89

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -105,7 +105,7 @@
     name = 'metropolis'
 
     default_blocked = False
-    generates_stats = True
+    generates_stats = False
     stats_dtypes = [{
         'accept': np.float64,
         'accepted': np.bool,

Mutant 90

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -105,7 +105,7 @@
     name = 'metropolis'
 
     default_blocked = False
-    generates_stats = True
+    generates_stats = None
     stats_dtypes = [{
         'accept': np.float64,
         'accepted': np.bool,

Mutant 95

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -114,7 +114,7 @@
     }]
 
     def __init__(self, vars=None, S=None, proposal_dist=None, scaling=1.,
-                 tune=True, tune_interval=100, model=None, mode=None, **kwargs):
+                 tune=False, tune_interval=100, model=None, mode=None, **kwargs):
 
         model = pm.modelcontext(model)
 

Mutant 96

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -114,7 +114,7 @@
     }]
 
     def __init__(self, vars=None, S=None, proposal_dist=None, scaling=1.,
-                 tune=True, tune_interval=100, model=None, mode=None, **kwargs):
+                 tune=True, tune_interval=101, model=None, mode=None, **kwargs):
 
         model = pm.modelcontext(model)
 

Mutant 109

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -135,7 +135,7 @@
             raise ValueError("Invalid rank for variance: %s" % S.ndim)
 
         self.scaling = np.atleast_1d(scaling).astype('d')
-        self.tune = tune
+        self.tune = None
         self.tune_interval = tune_interval
         self.steps_until_tune = tune_interval
         self.accepted = 0

Mutant 111

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -137,7 +137,7 @@
         self.scaling = np.atleast_1d(scaling).astype('d')
         self.tune = tune
         self.tune_interval = tune_interval
-        self.steps_until_tune = tune_interval
+        self.steps_until_tune = None
         self.accepted = 0
 
         # Determine type of variables

Mutant 112

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -138,7 +138,7 @@
         self.tune = tune
         self.tune_interval = tune_interval
         self.steps_until_tune = tune_interval
-        self.accepted = 0
+        self.accepted = 1
 
         # Determine type of variables
         self.discrete = np.concatenate(

Mutant 116

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -142,7 +142,7 @@
 
         # Determine type of variables
         self.discrete = np.concatenate(
-            [[v.dtype in pm.discrete_types] * (v.dsize or 1) for v in vars])
+            [[v.dtype in pm.discrete_types] * (v.dsize or 2) for v in vars])
         self.any_discrete = self.discrete.any()
         self.all_discrete = self.discrete.all()
 

Mutant 117

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -142,7 +142,7 @@
 
         # Determine type of variables
         self.discrete = np.concatenate(
-            [[v.dtype in pm.discrete_types] * (v.dsize or 1) for v in vars])
+            [[v.dtype in pm.discrete_types] * (v.dsize and 1) for v in vars])
         self.any_discrete = self.discrete.any()
         self.all_discrete = self.discrete.all()
 

Mutant 119

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -143,7 +143,7 @@
         # Determine type of variables
         self.discrete = np.concatenate(
             [[v.dtype in pm.discrete_types] * (v.dsize or 1) for v in vars])
-        self.any_discrete = self.discrete.any()
+        self.any_discrete = None
         self.all_discrete = self.discrete.all()
 
         # remember initial settings before tuning so they can be reset

Mutant 120

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -144,7 +144,7 @@
         self.discrete = np.concatenate(
             [[v.dtype in pm.discrete_types] * (v.dsize or 1) for v in vars])
         self.any_discrete = self.discrete.any()
-        self.all_discrete = self.discrete.all()
+        self.all_discrete = None
 
         # remember initial settings before tuning so they can be reset
         self._untuned_settings = dict(

Mutant 121

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -148,7 +148,7 @@
 
         # remember initial settings before tuning so they can be reset
         self._untuned_settings = dict(
-            scaling=self.scaling,
+            scalingXX=self.scaling,
             steps_until_tune=tune_interval,
             accepted=self.accepted
         )

Mutant 123

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -150,7 +150,7 @@
         self._untuned_settings = dict(
             scaling=self.scaling,
             steps_until_tune=tune_interval,
-            accepted=self.accepted
+            acceptedXX=self.accepted
         )
 
         self.mode = mode

Mutant 124

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -153,7 +153,7 @@
             accepted=self.accepted
         )
 
-        self.mode = mode
+        self.mode = None
 
         shared = pm.make_shared_replacements(vars, model)
         self.delta_logp = delta_logp(model.logpt, vars, shared)

Mutant 127

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -166,7 +166,7 @@
         return
 
     def astep(self, q0):
-        if not self.steps_until_tune and self.tune:
+        if  self.steps_until_tune and self.tune:
             # Tune scaling parameter
             self.scaling = tune(
                 self.scaling, self.accepted / float(self.tune_interval))

Mutant 128

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -166,7 +166,7 @@
         return
 
     def astep(self, q0):
-        if not self.steps_until_tune and self.tune:
+        if not self.steps_until_tune or self.tune:
             # Tune scaling parameter
             self.scaling = tune(
                 self.scaling, self.accepted / float(self.tune_interval))

Mutant 132

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -172,7 +172,7 @@
                 self.scaling, self.accepted / float(self.tune_interval))
             # Reset counter
             self.steps_until_tune = self.tune_interval
-            self.accepted = 0
+            self.accepted = 1
 
         delta = self.proposal_dist() * self.scaling
 

Mutant 136

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -186,7 +186,7 @@
                     delta[self.discrete], 0)
                 q = (q0 + delta)
         else:
-            q = floatX(q0 + delta)
+            q = floatX(q0 - delta)
 
         accept = self.delta_logp(q, q0)
         q_new, accepted = metrop_select(accept, q, q0)

Mutant 149

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -203,7 +203,6 @@
 
         return q_new, [stats]
 
-    @staticmethod
     def competence(var, has_grad):
         return Competence.COMPATIBLE
 

Mutant 150

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -223,7 +223,7 @@
     >0.95         x 10
 
     """
-    if acc_rate < 0.001:
+    if acc_rate <= 0.001:
         # reduce by 90 percent
         return scale * 0.1
     elif acc_rate < 0.05:

Mutant 152

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -226,7 +226,7 @@
     if acc_rate < 0.001:
         # reduce by 90 percent
         return scale * 0.1
-    elif acc_rate < 0.05:
+    elif acc_rate <= 0.05:
         # reduce by 50 percent
         return scale * 0.5
     elif acc_rate < 0.2:

Mutant 154

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -229,7 +229,7 @@
     elif acc_rate < 0.05:
         # reduce by 50 percent
         return scale * 0.5
-    elif acc_rate < 0.2:
+    elif acc_rate <= 0.2:
         # reduce by ten percent
         return scale * 0.9
     elif acc_rate > 0.95:

Mutant 156

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -232,7 +232,7 @@
     elif acc_rate < 0.2:
         # reduce by ten percent
         return scale * 0.9
-    elif acc_rate > 0.95:
+    elif acc_rate >= 0.95:
         # increase by factor of ten
         return scale * 10.0
     elif acc_rate > 0.75:

Mutant 157

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -232,7 +232,7 @@
     elif acc_rate < 0.2:
         # reduce by ten percent
         return scale * 0.9
-    elif acc_rate > 0.95:
+    elif acc_rate > 1.95:
         # increase by factor of ten
         return scale * 10.0
     elif acc_rate > 0.75:

Mutant 158

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -235,7 +235,7 @@
     elif acc_rate > 0.95:
         # increase by factor of ten
         return scale * 10.0
-    elif acc_rate > 0.75:
+    elif acc_rate >= 0.75:
         # increase by double
         return scale * 2.0
     elif acc_rate > 0.5:

Mutant 159

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -235,7 +235,7 @@
     elif acc_rate > 0.95:
         # increase by factor of ten
         return scale * 10.0
-    elif acc_rate > 0.75:
+    elif acc_rate > 1.75:
         # increase by double
         return scale * 2.0
     elif acc_rate > 0.5:

Mutant 160

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -237,7 +237,7 @@
         return scale * 10.0
     elif acc_rate > 0.75:
         # increase by double
-        return scale * 2.0
+        return scale / 2.0
     elif acc_rate > 0.5:
         # increase by ten percent
         return scale * 1.1

Mutant 161

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -237,7 +237,7 @@
         return scale * 10.0
     elif acc_rate > 0.75:
         # increase by double
-        return scale * 2.0
+        return scale * 3.0
     elif acc_rate > 0.5:
         # increase by ten percent
         return scale * 1.1

Mutant 162

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -238,7 +238,7 @@
     elif acc_rate > 0.75:
         # increase by double
         return scale * 2.0
-    elif acc_rate > 0.5:
+    elif acc_rate >= 0.5:
         # increase by ten percent
         return scale * 1.1
 

Mutant 163

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -238,7 +238,7 @@
     elif acc_rate > 0.75:
         # increase by double
         return scale * 2.0
-    elif acc_rate > 0.5:
+    elif acc_rate > 1.5:
         # increase by ten percent
         return scale * 1.1
 

Mutant 165

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -240,7 +240,7 @@
         return scale * 2.0
     elif acc_rate > 0.5:
         # increase by ten percent
-        return scale * 1.1
+        return scale * 2.1
 
     return scale
 

Mutant 166

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -262,7 +262,7 @@
         Optional model for sampling step. Defaults to None (taken from context).
 
     """
-    name = 'binary_metropolis'
+    name = 'XXbinary_metropolisXX'
 
     generates_stats = True
     stats_dtypes = [{

Mutant 167

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -262,7 +262,7 @@
         Optional model for sampling step. Defaults to None (taken from context).
 
     """
-    name = 'binary_metropolis'
+    name = None
 
     generates_stats = True
     stats_dtypes = [{

Mutant 168

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -264,7 +264,7 @@
     """
     name = 'binary_metropolis'
 
-    generates_stats = True
+    generates_stats = False
     stats_dtypes = [{
         'accept': np.float64,
         'tune': np.bool,

Mutant 169

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -264,7 +264,7 @@
     """
     name = 'binary_metropolis'
 
-    generates_stats = True
+    generates_stats = None
     stats_dtypes = [{
         'accept': np.float64,
         'tune': np.bool,

Mutant 170

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -266,7 +266,7 @@
 
     generates_stats = True
     stats_dtypes = [{
-        'accept': np.float64,
+        'XXacceptXX': np.float64,
         'tune': np.bool,
         'p_jump': np.float64,
     }]

Mutant 171

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -267,7 +267,7 @@
     generates_stats = True
     stats_dtypes = [{
         'accept': np.float64,
-        'tune': np.bool,
+        'XXtuneXX': np.bool,
         'p_jump': np.float64,
     }]
 

Mutant 172

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -268,7 +268,7 @@
     stats_dtypes = [{
         'accept': np.float64,
         'tune': np.bool,
-        'p_jump': np.float64,
+        'XXp_jumpXX': np.float64,
     }]
 
     def __init__(self, vars, scaling=1., tune=True, tune_interval=100, model=None):

Mutant 173

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -271,7 +271,7 @@
         'p_jump': np.float64,
     }]
 
-    def __init__(self, vars, scaling=1., tune=True, tune_interval=100, model=None):
+    def __init__(self, vars, scaling=2.0, tune=True, tune_interval=100, model=None):
 
         model = pm.modelcontext(model)
 

Mutant 174

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -271,7 +271,7 @@
         'p_jump': np.float64,
     }]
 
-    def __init__(self, vars, scaling=1., tune=True, tune_interval=100, model=None):
+    def __init__(self, vars, scaling=1., tune=False, tune_interval=100, model=None):
 
         model = pm.modelcontext(model)
 

Mutant 175

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -271,7 +271,7 @@
         'p_jump': np.float64,
     }]
 
-    def __init__(self, vars, scaling=1., tune=True, tune_interval=100, model=None):
+    def __init__(self, vars, scaling=1., tune=True, tune_interval=101, model=None):
 
         model = pm.modelcontext(model)
 

Mutant 176

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -310,7 +310,6 @@
 
         return q_new, [stats]
 
-    @staticmethod
     def competence(var):
         '''
         BinaryMetropolis is only suitable for binary (bool)

Mutant 177

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -342,7 +342,7 @@
         Optional model for sampling step. Defaults to None (taken from context).
 
     """
-    name = 'binary_gibbs_metropolis'
+    name = 'XXbinary_gibbs_metropolisXX'
 
     def __init__(self, vars, order='random', transit_p=.8, model=None):
 

Mutant 178

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -342,7 +342,7 @@
         Optional model for sampling step. Defaults to None (taken from context).
 
     """
-    name = 'binary_gibbs_metropolis'
+    name = None
 
     def __init__(self, vars, order='random', transit_p=.8, model=None):
 

Mutant 179

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -344,7 +344,7 @@
     """
     name = 'binary_gibbs_metropolis'
 
-    def __init__(self, vars, order='random', transit_p=.8, model=None):
+    def __init__(self, vars, order='XXrandomXX', transit_p=.8, model=None):
 
         model = pm.modelcontext(model)
 

Mutant 180

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -344,7 +344,7 @@
     """
     name = 'binary_gibbs_metropolis'
 
-    def __init__(self, vars, order='random', transit_p=.8, model=None):
+    def __init__(self, vars, order='random', transit_p=1.8, model=None):
 
         model = pm.modelcontext(model)
 

Mutant 181

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -388,7 +388,6 @@
 
         return q
 
-    @staticmethod
     def competence(var):
         '''
         BinaryMetropolis is only suitable for Bernoulli

Mutant 182

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -411,7 +411,7 @@
        which was introduced by Liu in his 1996 technical report
        "Metropolized Gibbs Sampler: An Improvement".
     """
-    name = 'categorical_gibbs_metropolis'
+    name = 'XXcategorical_gibbs_metropolisXX'
 
     def __init__(self, vars, proposal='uniform', order='random', model=None):
 

Mutant 183

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -411,7 +411,7 @@
        which was introduced by Liu in his 1996 technical report
        "Metropolized Gibbs Sampler: An Improvement".
     """
-    name = 'categorical_gibbs_metropolis'
+    name = None
 
     def __init__(self, vars, proposal='uniform', order='random', model=None):
 

Mutant 184

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -413,7 +413,7 @@
     """
     name = 'categorical_gibbs_metropolis'
 
-    def __init__(self, vars, proposal='uniform', order='random', model=None):
+    def __init__(self, vars, proposal='XXuniformXX', order='random', model=None):
 
         model = pm.modelcontext(model)
         vars = pm.inputvars(vars)

Mutant 185

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -413,7 +413,7 @@
     """
     name = 'categorical_gibbs_metropolis'
 
-    def __init__(self, vars, proposal='uniform', order='random', model=None):
+    def __init__(self, vars, proposal='uniform', order='XXrandomXX', model=None):
 
         model = pm.modelcontext(model)
         vars = pm.inputvars(vars)

Mutant 186

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -504,7 +504,6 @@
         q[dim] = proposed_cat
         return log_probs[proposed_cat]
 
-    @staticmethod
     def competence(var):
         '''
         CategoricalGibbsMetropolis is only suitable for Bernoulli and

Mutant 187

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -555,7 +555,7 @@
         Statistics and Computing
         `link `__
     """
-    name = 'DEMetropolis'
+    name = 'XXDEMetropolisXX'
 
     default_blocked = True
     generates_stats = True

Mutant 188

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -555,7 +555,7 @@
         Statistics and Computing
         `link `__
     """
-    name = 'DEMetropolis'
+    name = None
 
     default_blocked = True
     generates_stats = True

Mutant 189

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -557,7 +557,7 @@
     """
     name = 'DEMetropolis'
 
-    default_blocked = True
+    default_blocked = False
     generates_stats = True
     stats_dtypes = [{
         'accept': np.float64,

Mutant 190

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -557,7 +557,7 @@
     """
     name = 'DEMetropolis'
 
-    default_blocked = True
+    default_blocked = None
     generates_stats = True
     stats_dtypes = [{
         'accept': np.float64,

Mutant 191

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -558,7 +558,7 @@
     name = 'DEMetropolis'
 
     default_blocked = True
-    generates_stats = True
+    generates_stats = False
     stats_dtypes = [{
         'accept': np.float64,
         'accepted': np.bool,

Mutant 192

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -558,7 +558,7 @@
     name = 'DEMetropolis'
 
     default_blocked = True
-    generates_stats = True
+    generates_stats = None
     stats_dtypes = [{
         'accept': np.float64,
         'accepted': np.bool,

Mutant 193

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -560,7 +560,7 @@
     default_blocked = True
     generates_stats = True
     stats_dtypes = [{
-        'accept': np.float64,
+        'XXacceptXX': np.float64,
         'accepted': np.bool,
         'tune': np.bool,
         'scaling': np.float64,

Mutant 194

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -561,7 +561,7 @@
     generates_stats = True
     stats_dtypes = [{
         'accept': np.float64,
-        'accepted': np.bool,
+        'XXacceptedXX': np.bool,
         'tune': np.bool,
         'scaling': np.float64,
         'lambda': np.float64,

Mutant 195

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -562,7 +562,7 @@
     stats_dtypes = [{
         'accept': np.float64,
         'accepted': np.bool,
-        'tune': np.bool,
+        'XXtuneXX': np.bool,
         'scaling': np.float64,
         'lambda': np.float64,
     }]

Mutant 196

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -563,7 +563,7 @@
         'accept': np.float64,
         'accepted': np.bool,
         'tune': np.bool,
-        'scaling': np.float64,
+        'XXscalingXX': np.float64,
         'lambda': np.float64,
     }]
 

Mutant 197

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -564,7 +564,7 @@
         'accepted': np.bool,
         'tune': np.bool,
         'scaling': np.float64,
-        'lambda': np.float64,
+        'XXlambdaXX': np.float64,
     }]
 
     def __init__(self, vars=None, S=None, proposal_dist=None, lamb=None, scaling=0.001,

Mutant 198

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -568,7 +568,7 @@
     }]
 
     def __init__(self, vars=None, S=None, proposal_dist=None, lamb=None, scaling=0.001,
-                 tune=None, tune_interval=100, model=None, mode=None, **kwargs):
+                 tune=None, tune_interval=101, model=None, mode=None, **kwargs):
 
         model = pm.modelcontext(model)
 

Mutant 199

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -638,7 +638,6 @@
 
         return q_new, [stats]
 
-    @staticmethod
     def competence(var, has_grad):
         if var.dtype in pm.discrete_types:
             return Competence.INCOMPATIBLE

Mutant 200

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -682,7 +682,7 @@
         Statistics and Computing
         `link `__
     """
-    name = 'DEMetropolisZ'
+    name = 'XXDEMetropolisZXX'
 
     default_blocked = True
     generates_stats = True

Mutant 201

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -682,7 +682,7 @@
         Statistics and Computing
         `link `__
     """
-    name = 'DEMetropolisZ'
+    name = None
 
     default_blocked = True
     generates_stats = True

Mutant 202

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -684,7 +684,7 @@
     """
     name = 'DEMetropolisZ'
 
-    default_blocked = True
+    default_blocked = False
     generates_stats = True
     stats_dtypes = [{
         'accept': np.float64,

Mutant 203

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -684,7 +684,7 @@
     """
     name = 'DEMetropolisZ'
 
-    default_blocked = True
+    default_blocked = None
     generates_stats = True
     stats_dtypes = [{
         'accept': np.float64,

Mutant 204

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -685,7 +685,7 @@
     name = 'DEMetropolisZ'
 
     default_blocked = True
-    generates_stats = True
+    generates_stats = False
     stats_dtypes = [{
         'accept': np.float64,
         'accepted': np.bool,

Mutant 205

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -685,7 +685,7 @@
     name = 'DEMetropolisZ'
 
     default_blocked = True
-    generates_stats = True
+    generates_stats = None
     stats_dtypes = [{
         'accept': np.float64,
         'accepted': np.bool,

Mutant 206

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -687,7 +687,7 @@
     default_blocked = True
     generates_stats = True
     stats_dtypes = [{
-        'accept': np.float64,
+        'XXacceptXX': np.float64,
         'accepted': np.bool,
         'tune': np.bool,
         'scaling': np.float64,

Mutant 207

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -688,7 +688,7 @@
     generates_stats = True
     stats_dtypes = [{
         'accept': np.float64,
-        'accepted': np.bool,
+        'XXacceptedXX': np.bool,
         'tune': np.bool,
         'scaling': np.float64,
         'lambda': np.float64,

Mutant 208

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -689,7 +689,7 @@
     stats_dtypes = [{
         'accept': np.float64,
         'accepted': np.bool,
-        'tune': np.bool,
+        'XXtuneXX': np.bool,
         'scaling': np.float64,
         'lambda': np.float64,
     }]

Mutant 209

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -690,7 +690,7 @@
         'accept': np.float64,
         'accepted': np.bool,
         'tune': np.bool,
-        'scaling': np.float64,
+        'XXscalingXX': np.float64,
         'lambda': np.float64,
     }]
 

Mutant 210

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -691,7 +691,7 @@
         'accepted': np.bool,
         'tune': np.bool,
         'scaling': np.float64,
-        'lambda': np.float64,
+        'XXlambdaXX': np.float64,
     }]
 
     def __init__(self, vars=None, S=None, proposal_dist=None, lamb=None, scaling=0.001,

Mutant 211

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -695,7 +695,7 @@
     }]
 
     def __init__(self, vars=None, S=None, proposal_dist=None, lamb=None, scaling=0.001,
-                 tune='lambda', tune_interval=100, tune_drop_fraction:float=0.9, model=None, mode=None, **kwargs):
+                 tune='XXlambdaXX', tune_interval=100, tune_drop_fraction:float=0.9, model=None, mode=None, **kwargs):
 
         warnings.warn(
             'The DEMetropolisZ implementation in PyMC3 is very young. You should be extra critical about its results.'

Mutant 212

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -695,7 +695,7 @@
     }]
 
     def __init__(self, vars=None, S=None, proposal_dist=None, lamb=None, scaling=0.001,
-                 tune='lambda', tune_interval=100, tune_drop_fraction:float=0.9, model=None, mode=None, **kwargs):
+                 tune='lambda', tune_interval=101, tune_drop_fraction:float=0.9, model=None, mode=None, **kwargs):
 
         warnings.warn(
             'The DEMetropolisZ implementation in PyMC3 is very young. You should be extra critical about its results.'

Mutant 213

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -695,7 +695,7 @@
     }]
 
     def __init__(self, vars=None, S=None, proposal_dist=None, lamb=None, scaling=0.001,
-                 tune='lambda', tune_interval=100, tune_drop_fraction:float=0.9, model=None, mode=None, **kwargs):
+                 tune='lambda', tune_interval=100, tune_drop_fraction:float=1.9, model=None, mode=None, **kwargs):
 
         warnings.warn(
             'The DEMetropolisZ implementation in PyMC3 is very young. You should be extra critical about its results.'

Mutant 214

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -811,7 +811,6 @@
         self._history = self._history[n_drop:]
         return super().stop_tuning()
 
-    @staticmethod
     def competence(var, has_grad):
         if var.dtype in pm.discrete_types:
             return Competence.INCOMPATIBLE

Mutant 217

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -834,7 +834,7 @@
     [logp0], inarray0 = pm.join_nonshared_inputs([logp], vars, shared)
 
     tensor_type = inarray0.type
-    inarray1 = tensor_type('inarray1')
+    inarray1 = tensor_type('XXinarray1XX')
 
     logp1 = pm.CallableTensor(logp0)(inarray1)
 

Mutant 222

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -839,6 +839,6 @@
     logp1 = pm.CallableTensor(logp0)(inarray1)
 
     f = theano.function([inarray1, inarray0], logp1 - logp0)
-    f.trust_input = True
+    f.trust_input = False
     return f
 

Mutant 223

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -839,6 +839,6 @@
     logp1 = pm.CallableTensor(logp0)(inarray1)
 
     f = theano.function([inarray1, inarray0], logp1 - logp0)
-    f.trust_input = True
+    f.trust_input = None
     return f