fairseq/utils.py

Killed 14 out of 46 mutants

Survived

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

Mutant 20

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -27,7 +27,7 @@
     from amp_C import multi_tensor_l2norm
     multi_tensor_l2norm_available = True
 except ImportError:
-    multi_tensor_l2norm_available = False
+    multi_tensor_l2norm_available = True
 
 
 logger = logging.getLogger(__name__)

Mutant 21

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -27,7 +27,7 @@
     from amp_C import multi_tensor_l2norm
     multi_tensor_l2norm_available = True
 except ImportError:
-    multi_tensor_l2norm_available = False
+    multi_tensor_l2norm_available = None
 
 
 logger = logging.getLogger(__name__)

Mutant 22

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -30,7 +30,7 @@
     multi_tensor_l2norm_available = False
 
 
-logger = logging.getLogger(__name__)
+logger = None
 
 
 def split_paths(paths: str) -> List[str]:

Mutant 23

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -195,7 +195,7 @@
     return hypo_tokens, hypo_str, alignment
 
 
-def make_positions(tensor, padding_idx: int, onnx_trace: bool = False):
+def make_positions(tensor, padding_idx: int, onnx_trace: bool = True):
     """Replace non-padding symbols with their position numbers.
 
     Position numbers begin at padding_idx+1. Padding symbols are ignored.

Mutant 25

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -222,7 +222,7 @@
 
 
 def convert_padding_direction(
-    src_tokens, padding_idx, right_to_left: bool = False, left_to_right: bool = False
+    src_tokens, padding_idx, right_to_left: bool = False, left_to_right: bool = True
 ):
     assert right_to_left ^ left_to_right
     pad_mask = src_tokens.eq(padding_idx)

Mutant 28

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -226,7 +226,7 @@
 ):
     assert right_to_left ^ left_to_right
     pad_mask = src_tokens.eq(padding_idx)
-    if not pad_mask.any():
+    if  pad_mask.any():
         # no padding, return early
         return src_tokens
     if left_to_right and not pad_mask[:, 0].any():

Mutant 29

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -229,7 +229,7 @@
     if not pad_mask.any():
         # no padding, return early
         return src_tokens
-    if left_to_right and not pad_mask[:, 0].any():
+    if left_to_right and  pad_mask[:, 0].any():
         # already right padded
         return src_tokens
     if right_to_left and not pad_mask[:, -1].any():

Mutant 30

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -229,7 +229,7 @@
     if not pad_mask.any():
         # no padding, return early
         return src_tokens
-    if left_to_right and not pad_mask[:, 0].any():
+    if left_to_right and not pad_mask[:, 1].any():
         # already right padded
         return src_tokens
     if right_to_left and not pad_mask[:, -1].any():

Mutant 31

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -229,7 +229,7 @@
     if not pad_mask.any():
         # no padding, return early
         return src_tokens
-    if left_to_right and not pad_mask[:, 0].any():
+    if left_to_right or not pad_mask[:, 0].any():
         # already right padded
         return src_tokens
     if right_to_left and not pad_mask[:, -1].any():

Mutant 32

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -232,7 +232,7 @@
     if left_to_right and not pad_mask[:, 0].any():
         # already right padded
         return src_tokens
-    if right_to_left and not pad_mask[:, -1].any():
+    if right_to_left and  pad_mask[:, -1].any():
         # already left padded
         return src_tokens
     max_len = src_tokens.size(1)

Mutant 34

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -232,7 +232,7 @@
     if left_to_right and not pad_mask[:, 0].any():
         # already right padded
         return src_tokens
-    if right_to_left and not pad_mask[:, -1].any():
+    if right_to_left and not pad_mask[:, -2].any():
         # already left padded
         return src_tokens
     max_len = src_tokens.size(1)

Mutant 35

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -232,7 +232,7 @@
     if left_to_right and not pad_mask[:, 0].any():
         # already right padded
         return src_tokens
-    if right_to_left and not pad_mask[:, -1].any():
+    if right_to_left or not pad_mask[:, -1].any():
         # already left padded
         return src_tokens
     max_len = src_tokens.size(1)

Mutant 38

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -236,7 +236,7 @@
         # already left padded
         return src_tokens
     max_len = src_tokens.size(1)
-    buffered = torch.empty(0).long()
+    buffered = torch.empty(1).long()
     if max_len > 0:
         torch.arange(max_len, out=buffered)
     range = buffered.type_as(src_tokens).expand_as(src_tokens)

Mutant 40

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -237,7 +237,7 @@
         return src_tokens
     max_len = src_tokens.size(1)
     buffered = torch.empty(0).long()
-    if max_len > 0:
+    if max_len >= 0:
         torch.arange(max_len, out=buffered)
     range = buffered.type_as(src_tokens).expand_as(src_tokens)
     num_pads = pad_mask.long().sum(dim=1, keepdim=True)

Mutant 46

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -244,7 +244,7 @@
     if right_to_left:
         index = torch.remainder(range - num_pads, max_len)
     else:
-        index = torch.remainder(range + num_pads, max_len)
+        index = torch.remainder(range - num_pads, max_len)
     return src_tokens.gather(1, index)
 
 

Mutant 49

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -256,7 +256,7 @@
     return tensor
 
 
-def multi_tensor_total_norm(grads, chunk_size=2048*32) -> torch.Tensor:
+def multi_tensor_total_norm(grads, chunk_size=2049*32) -> torch.Tensor:
     per_device_grads = {}
     norms = []
     for grad in grads:

Mutant 50

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -256,7 +256,7 @@
     return tensor
 
 
-def multi_tensor_total_norm(grads, chunk_size=2048*32) -> torch.Tensor:
+def multi_tensor_total_norm(grads, chunk_size=2048/32) -> torch.Tensor:
     per_device_grads = {}
     norms = []
     for grad in grads:

Mutant 51

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -256,7 +256,7 @@
     return tensor
 
 
-def multi_tensor_total_norm(grads, chunk_size=2048*32) -> torch.Tensor:
+def multi_tensor_total_norm(grads, chunk_size=2048*33) -> torch.Tensor:
     per_device_grads = {}
     norms = []
     for grad in grads:

Mutant 52

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -397,7 +397,7 @@
             importlib.import_module(module_name)
 
 
-def softmax(x, dim: int, onnx_trace: bool = False):
+def softmax(x, dim: int, onnx_trace: bool = True):
     if onnx_trace:
         return F.softmax(x.float(), dim=dim)
     else:

Mutant 53

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -404,7 +404,7 @@
         return F.softmax(x, dim=dim, dtype=torch.float32)
 
 
-def log_softmax(x, dim: int, onnx_trace: bool = False):
+def log_softmax(x, dim: int, onnx_trace: bool = True):
     if onnx_trace:
         return F.log_softmax(x.float(), dim=dim)
     else:

Mutant 54

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -411,7 +411,7 @@
         return F.log_softmax(x, dim=dim, dtype=torch.float32)
 
 
-def get_perplexity(loss, round=2, base=2):
+def get_perplexity(loss, round=3, base=2):
     if loss is None:
         return 0.
     try:

Mutant 55

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -411,7 +411,7 @@
         return F.log_softmax(x, dim=dim, dtype=torch.float32)
 
 
-def get_perplexity(loss, round=2, base=2):
+def get_perplexity(loss, round=2, base=3):
     if loss is None:
         return 0.
     try:

Mutant 56

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -420,7 +420,7 @@
         return float('inf')
 
 
-def deprecation_warning(message, stacklevel=3):
+def deprecation_warning(message, stacklevel=4):
     # don't use DeprecationWarning, since it's ignored by default
     warnings.warn(message, stacklevel=stacklevel)
 

Mutant 57

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -448,7 +448,7 @@
 
 def get_available_activation_fns() -> List:
     return [
-        "relu",
+        "XXreluXX",
         "gelu",
         "gelu_fast",  # deprecated
         "gelu_accurate",

Mutant 58

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -449,7 +449,7 @@
 def get_available_activation_fns() -> List:
     return [
         "relu",
-        "gelu",
+        "XXgeluXX",
         "gelu_fast",  # deprecated
         "gelu_accurate",
         "tanh",

Mutant 59

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -450,7 +450,7 @@
     return [
         "relu",
         "gelu",
-        "gelu_fast",  # deprecated
+        "XXgelu_fastXX",  # deprecated
         "gelu_accurate",
         "tanh",
         "linear",

Mutant 60

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -451,7 +451,7 @@
         "relu",
         "gelu",
         "gelu_fast",  # deprecated
-        "gelu_accurate",
+        "XXgelu_accurateXX",
         "tanh",
         "linear",
     ]

Mutant 61

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -452,7 +452,7 @@
         "gelu",
         "gelu_fast",  # deprecated
         "gelu_accurate",
-        "tanh",
+        "XXtanhXX",
         "linear",
     ]
 

Mutant 62

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -453,7 +453,7 @@
         "gelu_fast",  # deprecated
         "gelu_accurate",
         "tanh",
-        "linear",
+        "XXlinearXX",
     ]
 
 

Mutant 63

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -456,8 +456,6 @@
         "linear",
     ]
 
-
-@contextlib.contextmanager
 def eval(model):
     is_training = model.training
     model.eval()

Mutant 64

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -480,8 +480,6 @@
     torch.manual_seed(seed)
     torch.cuda.manual_seed(seed)
 
-
-@contextlib.contextmanager
 def with_torch_seed(seed):
     assert isinstance(seed, int)
     rng_state = torch.get_rng_state()

Mutant 65

--- fairseq/utils.py
+++ fairseq/utils.py
@@ -565,7 +565,6 @@
         self.minor = prop.minor
         self.total_memory_in_GB = prop.total_memory / 1024 / 1024 / 1024
 
-    @staticmethod
     def pretty_print_cuda_env_list(cuda_env_list):
         """
         Given a list of CudaEnviorments, pretty print them