pymc3/step_methods/metropolis.py

Killed 53 out of 147 mutants

Survived

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

Mutant 5

--- 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 9

--- 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 10

--- 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 11

--- 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 12

--- 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 13

--- 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 14

--- 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 19

--- 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 20

--- 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 33

--- 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 35

--- 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 36

--- 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 40

--- 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 41

--- 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 43

--- 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 44

--- 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 45

--- 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 46

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

Mutant 47

--- 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 48

--- 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 51

--- 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 52

--- 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 53

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -169,7 +169,7 @@
         if not self.steps_until_tune and self.tune:
             # Tune scaling parameter
             self.scaling = tune(
-                self.scaling, self.accepted / float(self.tune_interval))
+                self.scaling, self.accepted * float(self.tune_interval))
             # Reset counter
             self.steps_until_tune = self.tune_interval
             self.accepted = 0

Mutant 56

--- 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 60

--- 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 66

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -192,7 +192,7 @@
         q_new, accepted = metrop_select(accept, q, q0)
         self.accepted += accepted
 
-        self.steps_until_tune -= 1
+        self.steps_until_tune = 1
 
         stats = {
             'tune': self.tune,

Mutant 67

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -192,7 +192,7 @@
         q_new, accepted = metrop_select(accept, q, q0)
         self.accepted += accepted
 
-        self.steps_until_tune -= 1
+        self.steps_until_tune += 1
 
         stats = {
             'tune': self.tune,

Mutant 68

--- pymc3/step_methods/metropolis.py
+++ pymc3/step_methods/metropolis.py
@@ -192,7 +192,7 @@
         q_new, accepted = metrop_select(accept, q, q0)
         self.accepted += accepted
 
-        self.steps_until_tune -= 1
+        self.steps_until_tune -= 2
 
         stats = {
             'tune': self.tune,

Mutant 73

--- 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 74

--- 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 76

--- 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 78

--- 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 80

--- 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 81

--- 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 82

--- 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 83

--- 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 84

--- 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 85

--- 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 86

--- 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 87

--- 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 88

--- 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 / 1.1
 
     return scale
 

Mutant 89

--- 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 90

--- 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 91

--- 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 92

--- 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 93

--- 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 94

--- 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 95

--- 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 96

--- 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 97

--- 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 98

--- 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 99

--- 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 100

--- 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 101

--- 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 102

--- 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 103

--- 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 104

--- 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 105

--- 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 106

--- 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 107

--- 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 108

--- 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 109

--- 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 110

--- 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 111

--- 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 112

--- 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 113

--- 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 114

--- 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 115

--- 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 116

--- 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 117

--- 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 118

--- 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 119

--- 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 120

--- 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 121

--- 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 122

--- 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 123

--- 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 124

--- 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 125

--- 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 126

--- 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 127

--- 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 128

--- 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 129

--- 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 130

--- 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 131

--- 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 132

--- 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 133

--- 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 134

--- 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 135

--- 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 136

--- 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 137

--- 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 138

--- 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 141

--- 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 146

--- 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 147

--- 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