imblearn/utils/_validation.py
Killed 36 out of 81 mutantsSurvived
Survived mutation testing. These mutants show holes in your test suite.Mutant 77
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -20,7 +20,7 @@
from ..exceptions import raise_isinstance_error
SAMPLING_KIND = (
- "over-sampling",
+ "XXover-samplingXX",
"under-sampling",
"clean-sampling",
"ensemble",
Mutant 78
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -26,7 +26,7 @@
"ensemble",
"bypass",
)
-TARGET_KIND = ("binary", "multiclass", "multilabel-indicator")
+TARGET_KIND = ("XXbinaryXX", "multiclass", "multilabel-indicator")
class ArraysTransformer:
Mutant 79
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -26,7 +26,7 @@
"ensemble",
"bypass",
)
-TARGET_KIND = ("binary", "multiclass", "multilabel-indicator")
+TARGET_KIND = ("binary", "XXmulticlassXX", "multilabel-indicator")
class ArraysTransformer:
Mutant 80
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -26,7 +26,7 @@
"ensemble",
"bypass",
)
-TARGET_KIND = ("binary", "multiclass", "multilabel-indicator")
+TARGET_KIND = ("binary", "multiclass", "XXmultilabel-indicatorXX")
class ArraysTransformer:
Mutant 81
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -26,7 +26,7 @@
"ensemble",
"bypass",
)
-TARGET_KIND = ("binary", "multiclass", "multilabel-indicator")
+TARGET_KIND = None
class ArraysTransformer:
Mutant 89
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -44,7 +44,7 @@
def _gets_props(self, array):
props = {}
props["type"] = array.__class__.__name__
- props["columns"] = getattr(array, "columns", None)
+ props["XXcolumnsXX"] = getattr(array, "columns", None)
props["name"] = getattr(array, "name", None)
props["dtypes"] = getattr(array, "dtypes", None)
return props
Mutant 90
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -44,7 +44,7 @@
def _gets_props(self, array):
props = {}
props["type"] = array.__class__.__name__
- props["columns"] = getattr(array, "columns", None)
+ props["columns"] = getattr(array, "XXcolumnsXX", None)
props["name"] = getattr(array, "name", None)
props["dtypes"] = getattr(array, "dtypes", None)
return props
Mutant 91
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -44,7 +44,7 @@
def _gets_props(self, array):
props = {}
props["type"] = array.__class__.__name__
- props["columns"] = getattr(array, "columns", None)
+ props["columns"] = None
props["name"] = getattr(array, "name", None)
props["dtypes"] = getattr(array, "dtypes", None)
return props
Mutant 92
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -45,7 +45,7 @@
props = {}
props["type"] = array.__class__.__name__
props["columns"] = getattr(array, "columns", None)
- props["name"] = getattr(array, "name", None)
+ props["XXnameXX"] = getattr(array, "name", None)
props["dtypes"] = getattr(array, "dtypes", None)
return props
Mutant 93
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -45,7 +45,7 @@
props = {}
props["type"] = array.__class__.__name__
props["columns"] = getattr(array, "columns", None)
- props["name"] = getattr(array, "name", None)
+ props["name"] = getattr(array, "XXnameXX", None)
props["dtypes"] = getattr(array, "dtypes", None)
return props
Mutant 94
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -45,7 +45,7 @@
props = {}
props["type"] = array.__class__.__name__
props["columns"] = getattr(array, "columns", None)
- props["name"] = getattr(array, "name", None)
+ props["name"] = None
props["dtypes"] = getattr(array, "dtypes", None)
return props
Mutant 95
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -46,7 +46,7 @@
props["type"] = array.__class__.__name__
props["columns"] = getattr(array, "columns", None)
props["name"] = getattr(array, "name", None)
- props["dtypes"] = getattr(array, "dtypes", None)
+ props["XXdtypesXX"] = getattr(array, "dtypes", None)
return props
def _transfrom_one(self, array, props):
Mutant 96
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -46,7 +46,7 @@
props["type"] = array.__class__.__name__
props["columns"] = getattr(array, "columns", None)
props["name"] = getattr(array, "name", None)
- props["dtypes"] = getattr(array, "dtypes", None)
+ props["dtypes"] = getattr(array, "XXdtypesXX", None)
return props
def _transfrom_one(self, array, props):
Mutant 97
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -46,7 +46,7 @@
props["type"] = array.__class__.__name__
props["columns"] = getattr(array, "columns", None)
props["name"] = getattr(array, "name", None)
- props["dtypes"] = getattr(array, "dtypes", None)
+ props["dtypes"] = None
return props
def _transfrom_one(self, array, props):
Mutant 99
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -50,7 +50,7 @@
return props
def _transfrom_one(self, array, props):
- type_ = props["type"].lower()
+ type_ = None
if type_ == "list":
ret = array.tolist()
elif type_ == "dataframe":
Mutant 101
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -51,7 +51,7 @@
def _transfrom_one(self, array, props):
type_ = props["type"].lower()
- if type_ == "list":
+ if type_ == "XXlistXX":
ret = array.tolist()
elif type_ == "dataframe":
import pandas as pd
Mutant 103
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -53,7 +53,7 @@
type_ = props["type"].lower()
if type_ == "list":
ret = array.tolist()
- elif type_ == "dataframe":
+ elif type_ == "XXdataframeXX":
import pandas as pd
ret = pd.DataFrame(array, columns=props["columns"])
ret = ret.astype(props["dtypes"])
Mutant 105
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -57,7 +57,7 @@
import pandas as pd
ret = pd.DataFrame(array, columns=props["columns"])
ret = ret.astype(props["dtypes"])
- elif type_ == "series":
+ elif type_ == "XXseriesXX":
import pandas as pd
ret = pd.Series(array, dtype=props["dtypes"], name=props["name"])
else:
Mutant 107
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -65,7 +65,7 @@
return ret
-def check_neighbors_object(nn_name, nn_object, additional_neighbor=0):
+def check_neighbors_object(nn_name, nn_object, additional_neighbor=1):
"""Check the objects is consistent to be a NN.
Several methods in imblearn relies on NN. Until version 0.4, these
Mutant 110
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -102,7 +102,7 @@
return dict(zip(unique, counts))
-def check_target_type(y, indicate_one_vs_all=False):
+def check_target_type(y, indicate_one_vs_all=True):
"""Check the target types to be conform to the current samplers.
The current samplers should be compatible with ``'binary'``,
Mutant 111
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -126,7 +126,7 @@
Only returned if ``indicate_multilabel=True``.
"""
- type_y = type_of_target(y)
+ type_y = None
if type_y == "multilabel-indicator":
if np.any(y.sum(axis=1) > 1):
raise ValueError(
Mutant 113
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -127,7 +127,7 @@
"""
type_y = type_of_target(y)
- if type_y == "multilabel-indicator":
+ if type_y == "XXmultilabel-indicatorXX":
if np.any(y.sum(axis=1) > 1):
raise ValueError(
"Imbalanced-learn currently supports binary, multiclass and "
Mutant 116
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -138,7 +138,7 @@
else:
y = column_or_1d(y)
- return (y, type_y == "multilabel-indicator") if indicate_one_vs_all else y
+ return (y, type_y == "XXmultilabel-indicatorXX") if indicate_one_vs_all else y
def _sampling_strategy_all(y, sampling_type):
Mutant 119
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -219,7 +219,7 @@
"""Returns sampling target by targeting all classes but not the
minority."""
target_stats = _count_class_sample(y)
- if sampling_type == "over-sampling":
+ if sampling_type == "XXover-samplingXX":
n_sample_majority = max(target_stats.values())
class_minority = min(target_stats, key=target_stats.get)
sampling_strategy = {
Mutant 122
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -228,7 +228,7 @@
if key != class_minority
}
elif (
- sampling_type == "under-sampling" or sampling_type == "clean-sampling"
+ sampling_type == "under-sampling" or sampling_type != "clean-sampling"
):
n_sample_minority = min(target_stats.values())
class_minority = min(target_stats, key=target_stats.get)
Mutant 123
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -228,7 +228,7 @@
if key != class_minority
}
elif (
- sampling_type == "under-sampling" or sampling_type == "clean-sampling"
+ sampling_type == "under-sampling" or sampling_type == "XXclean-samplingXX"
):
n_sample_minority = min(target_stats.values())
class_minority = min(target_stats, key=target_stats.get)
Mutant 127
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -235,7 +235,7 @@
sampling_strategy = {
key: n_sample_minority
for key in target_stats.keys()
- if key != class_minority
+ if key == class_minority
}
else:
raise NotImplementedError
Mutant 128
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -270,7 +270,7 @@
def _sampling_strategy_auto(y, sampling_type):
"""Returns sampling target auto for over-sampling and not-minority for
under-sampling."""
- if sampling_type == "over-sampling":
+ if sampling_type != "over-sampling":
return _sampling_strategy_not_majority(y, sampling_type)
elif (
sampling_type == "under-sampling" or sampling_type == "clean-sampling"
Mutant 129
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -270,7 +270,7 @@
def _sampling_strategy_auto(y, sampling_type):
"""Returns sampling target auto for over-sampling and not-minority for
under-sampling."""
- if sampling_type == "over-sampling":
+ if sampling_type == "XXover-samplingXX":
return _sampling_strategy_not_majority(y, sampling_type)
elif (
sampling_type == "under-sampling" or sampling_type == "clean-sampling"
Mutant 132
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -273,7 +273,7 @@
if sampling_type == "over-sampling":
return _sampling_strategy_not_majority(y, sampling_type)
elif (
- sampling_type == "under-sampling" or sampling_type == "clean-sampling"
+ sampling_type == "under-sampling" or sampling_type != "clean-sampling"
):
return _sampling_strategy_not_minority(y, sampling_type)
Mutant 133
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -273,7 +273,7 @@
if sampling_type == "over-sampling":
return _sampling_strategy_not_majority(y, sampling_type)
elif (
- sampling_type == "under-sampling" or sampling_type == "clean-sampling"
+ sampling_type == "under-sampling" or sampling_type == "XXclean-samplingXX"
):
return _sampling_strategy_not_minority(y, sampling_type)
Mutant 136
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -527,7 +527,7 @@
" instead.".format(SAMPLING_KIND, sampling_type)
)
- if np.unique(y).size <= 1:
+ if np.unique(y).size < 1:
raise ValueError(
"The target 'y' needs to have more than 1 class."
" Got {} class instead".format(np.unique(y).size)
Mutant 137
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -527,7 +527,7 @@
" instead.".format(SAMPLING_KIND, sampling_type)
)
- if np.unique(y).size <= 1:
+ if np.unique(y).size <= 2:
raise ValueError(
"The target 'y' needs to have more than 1 class."
" Got {} class instead".format(np.unique(y).size)
Mutant 139
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -533,7 +533,7 @@
" Got {} class instead".format(np.unique(y).size)
)
- if sampling_type in ("ensemble", "bypass"):
+ if sampling_type in ("XXensembleXX", "bypass"):
return sampling_strategy
if isinstance(sampling_strategy, str):
Mutant 140
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -533,7 +533,7 @@
" Got {} class instead".format(np.unique(y).size)
)
- if sampling_type in ("ensemble", "bypass"):
+ if sampling_type in ("ensemble", "XXbypassXX"):
return sampling_strategy
if isinstance(sampling_strategy, str):
Mutant 142
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -594,7 +594,7 @@
SAMPLING_TARGET_KIND = {
- "minority": _sampling_strategy_minority,
+ "XXminorityXX": _sampling_strategy_minority,
"majority": _sampling_strategy_majority,
"not minority": _sampling_strategy_not_minority,
"not majority": _sampling_strategy_not_majority,
Mutant 143
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -595,7 +595,7 @@
SAMPLING_TARGET_KIND = {
"minority": _sampling_strategy_minority,
- "majority": _sampling_strategy_majority,
+ "XXmajorityXX": _sampling_strategy_majority,
"not minority": _sampling_strategy_not_minority,
"not majority": _sampling_strategy_not_majority,
"all": _sampling_strategy_all,
Mutant 144
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -596,7 +596,7 @@
SAMPLING_TARGET_KIND = {
"minority": _sampling_strategy_minority,
"majority": _sampling_strategy_majority,
- "not minority": _sampling_strategy_not_minority,
+ "XXnot minorityXX": _sampling_strategy_not_minority,
"not majority": _sampling_strategy_not_majority,
"all": _sampling_strategy_all,
"auto": _sampling_strategy_auto,
Mutant 145
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -597,7 +597,7 @@
"minority": _sampling_strategy_minority,
"majority": _sampling_strategy_majority,
"not minority": _sampling_strategy_not_minority,
- "not majority": _sampling_strategy_not_majority,
+ "XXnot majorityXX": _sampling_strategy_not_majority,
"all": _sampling_strategy_all,
"auto": _sampling_strategy_auto,
}
Mutant 146
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -598,7 +598,7 @@
"majority": _sampling_strategy_majority,
"not minority": _sampling_strategy_not_minority,
"not majority": _sampling_strategy_not_majority,
- "all": _sampling_strategy_all,
+ "XXallXX": _sampling_strategy_all,
"auto": _sampling_strategy_auto,
}
Mutant 151
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -619,7 +619,7 @@
all_args = []
for name, param in sig.parameters.items():
- if param.kind == Parameter.POSITIONAL_OR_KEYWORD:
+ if param.kind != Parameter.POSITIONAL_OR_KEYWORD:
all_args.append(name)
elif param.kind == Parameter.KEYWORD_ONLY:
kwonly_args.append(name)
Mutant 152
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -621,7 +621,7 @@
for name, param in sig.parameters.items():
if param.kind == Parameter.POSITIONAL_OR_KEYWORD:
all_args.append(name)
- elif param.kind == Parameter.KEYWORD_ONLY:
+ elif param.kind != Parameter.KEYWORD_ONLY:
kwonly_args.append(name)
@wraps(f)
Mutant 154
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -626,7 +626,7 @@
@wraps(f)
def inner_f(*args, **kwargs):
- extra_args = len(args) - len(all_args)
+ extra_args = len(args) + len(all_args)
if extra_args > 0:
# ignore first 'self' argument for instance methods
args_msg = ['{}={}'.format(name, arg)
Mutant 156
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -627,7 +627,7 @@
@wraps(f)
def inner_f(*args, **kwargs):
extra_args = len(args) - len(all_args)
- if extra_args > 0:
+ if extra_args >= 0:
# ignore first 'self' argument for instance methods
args_msg = ['{}={}'.format(name, arg)
for name, arg in zip(kwonly_args[:extra_args],
Mutant 157
--- imblearn/utils/_validation.py
+++ imblearn/utils/_validation.py
@@ -627,7 +627,7 @@
@wraps(f)
def inner_f(*args, **kwargs):
extra_args = len(args) - len(all_args)
- if extra_args > 0:
+ if extra_args > 1:
# ignore first 'self' argument for instance methods
args_msg = ['{}={}'.format(name, arg)
for name, arg in zip(kwonly_args[:extra_args],