Module Source: src\poodle\mutators\operators.py

Project: poodle version 1.2.0   <Index
Mutants: 36, Found: 36, Not Found: 0, Timeout: 0, Error: 0
Module Score: 100.00%
1
"""Mutate Operators."""
2

        
3
from __future__ import annotations
4

        
5
import ast
6
from typing import Callable, ClassVar
7

        
8
from poodle.data_types import FileMutation, Mutator, PoodleConfig
9

        
10

        
11
class OperationMutator(ast.NodeVisitor, Mutator):
12
    """Base class for mutating operations."""
13

        
14
    # Binary Operators as of Python 3.12:
15
    # https://docs.python.org/3/library/ast.html#ast.BinOp
16
    # https://www.w3schools.com/python/python_operators.asp
17
    # ast.Add       +
18
    # ast.Sub       -
19
    # ast.Mult      *
20
    # ast.Div       /
21
    # ast.FloorDiv  //
22
    # ast.Mod       %
23
    # ast.Pow       **
24
    # ast.LShift    <<
25
    # ast.RShift    >>
26
    # ast.BitOr     |
27
    # ast.BitXor    ^
28
    # ast.BitAnd    &
29
    # ast.MatMult   @
30

        
31
    type_map_levels: ClassVar[dict[str, dict[type, list[type]]]] = {
32
        "min": {

Status: Mutant Found

Mutator Name: String

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:32
@@ -29,7 +29,7 @@
     # ast.MatMult   @
 
     type_map_levels: ClassVar[dict[str, dict[type, list[type]]]] = {
-        "min": {
+        'XXminXX': {
             ast.Add: [ast.Mult],
             ast.Sub: [ast.Div],
             ast.Mult: [ast.Add],
33
            ast.Add: [ast.Mult],
34
            ast.Sub: [ast.Div],
35
            ast.Mult: [ast.Add],
36
            ast.Div: [ast.Sub],
37
            ast.FloorDiv: [ast.Div],
38
            ast.Mod: [ast.Sub],
39
            ast.Pow: [ast.Mult],
40
            ast.LShift: [ast.RShift],
41
            ast.RShift: [ast.LShift],
42
            ast.BitOr: [ast.BitAnd],
43
            ast.BitXor: [ast.BitOr],
44
            ast.BitAnd: [ast.BitXor],
45
        },
46
        "std": {

Status: Mutant Found

Mutator Name: String

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:46
@@ -43,7 +43,7 @@
             ast.BitXor: [ast.BitOr],
             ast.BitAnd: [ast.BitXor],
         },
-        "std": {
+        'XXstdXX': {
             ast.Add: [ast.Sub, ast.Mult],
             ast.Sub: [ast.Add, ast.Div],
             ast.Mult: [ast.Div, ast.Add],
47
            ast.Add: [ast.Sub, ast.Mult],
48
            ast.Sub: [ast.Add, ast.Div],
49
            ast.Mult: [ast.Div, ast.Add],
50
            ast.Div: [ast.Mult, ast.Sub],
51
            ast.FloorDiv: [ast.Mult, ast.Div],
52
            ast.Mod: [ast.FloorDiv, ast.Sub],
53
            ast.Pow: [ast.Mult, ast.Div],
54
            ast.LShift: [ast.RShift],
55
            ast.RShift: [ast.LShift],
56
            ast.BitOr: [ast.BitAnd],
57
            ast.BitXor: [ast.BitOr, ast.BitAnd],
58
            ast.BitAnd: [ast.BitOr],
59
        },
60
        "max": {

Status: Mutant Found

Mutator Name: String

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:60
@@ -57,7 +57,7 @@
             ast.BitXor: [ast.BitOr, ast.BitAnd],
             ast.BitAnd: [ast.BitOr],
         },
-        "max": {
+        'XXmaxXX': {
             ast.Add: [ast.Sub, ast.Mult, ast.Div, ast.FloorDiv, ast.Mod, ast.Pow],
             ast.Sub: [ast.Add, ast.Mult, ast.Div, ast.FloorDiv, ast.Mod, ast.Pow],
             ast.Mult: [ast.Add, ast.Sub, ast.Div, ast.FloorDiv, ast.Mod, ast.Pow],
61
            ast.Add: [ast.Sub, ast.Mult, ast.Div, ast.FloorDiv, ast.Mod, ast.Pow],
62
            ast.Sub: [ast.Add, ast.Mult, ast.Div, ast.FloorDiv, ast.Mod, ast.Pow],
63
            ast.Mult: [ast.Add, ast.Sub, ast.Div, ast.FloorDiv, ast.Mod, ast.Pow],
64
            ast.Div: [ast.Add, ast.Sub, ast.Mult, ast.FloorDiv, ast.Mod, ast.Pow],
65
            ast.FloorDiv: [ast.Add, ast.Sub, ast.Mult, ast.Div, ast.Mod, ast.Pow],
66
            ast.Mod: [ast.Add, ast.Sub, ast.Mult, ast.Div, ast.FloorDiv, ast.Pow],
67
            ast.Pow: [ast.Add, ast.Sub, ast.Mult, ast.Div, ast.FloorDiv, ast.Mod],
68
            ast.LShift: [ast.RShift, ast.BitOr, ast.BitXor, ast.BitAnd],
69
            ast.RShift: [ast.LShift, ast.BitOr, ast.BitXor, ast.BitAnd],
70
            ast.BitOr: [ast.LShift, ast.RShift, ast.BitXor, ast.BitAnd],
71
            ast.BitXor: [ast.LShift, ast.RShift, ast.BitOr, ast.BitAnd],
72
            ast.BitAnd: [ast.LShift, ast.RShift, ast.BitOr, ast.BitXor],
73
        },
74
    }
75

        
76
    def __init__(self, config: PoodleConfig, echo: Callable, *args, **kwargs) -> None:
77
        """Initialize and read settings."""
78
        super().__init__(config, echo, *args, **kwargs)

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:78
@@ -75,7 +75,7 @@
 
     def __init__(self, config: PoodleConfig, echo: Callable, *args, **kwargs) -> None:
         """Initialize and read settings."""
-        super().__init__(config, echo, *args, **kwargs)
+        None
         self.mutants: list[FileMutation] = []
 
         level = self.config.mutator_opts.get("operator_level", "std")
79
        self.mutants: list[FileMutation] = []
80

        
81
        level = self.config.mutator_opts.get("operator_level", "std")

Status: Mutant Found

Mutator Name: String

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:81
@@ -78,7 +78,7 @@
         super().__init__(config, echo, *args, **kwargs)
         self.mutants: list[FileMutation] = []
 
-        level = self.config.mutator_opts.get("operator_level", "std")
+        level = self.config.mutator_opts.get('XXoperator_levelXX', "std")
         if level not in self.type_map_levels:
             echo(f"WARN: Invalid value operator_opts.operator_level={level}.  Using Default value 'std'")
             level = "std"

Status: Mutant Found

Mutator Name: String

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:81
@@ -78,7 +78,7 @@
         super().__init__(config, echo, *args, **kwargs)
         self.mutants: list[FileMutation] = []
 
-        level = self.config.mutator_opts.get("operator_level", "std")
+        level = self.config.mutator_opts.get("operator_level", 'XXstdXX')
         if level not in self.type_map_levels:
             echo(f"WARN: Invalid value operator_opts.operator_level={level}.  Using Default value 'std'")
             level = "std"

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:81
@@ -78,7 +78,7 @@
         super().__init__(config, echo, *args, **kwargs)
         self.mutants: list[FileMutation] = []
 
-        level = self.config.mutator_opts.get("operator_level", "std")
+        level = None
         if level not in self.type_map_levels:
             echo(f"WARN: Invalid value operator_opts.operator_level={level}.  Using Default value 'std'")
             level = "std"
82
        if level not in self.type_map_levels:

Status: Mutant Found

Mutator Name: Compare

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:82
@@ -79,7 +79,7 @@
         self.mutants: list[FileMutation] = []
 
         level = self.config.mutator_opts.get("operator_level", "std")
-        if level not in self.type_map_levels:
+        if level in self.type_map_levels:
             echo(f"WARN: Invalid value operator_opts.operator_level={level}.  Using Default value 'std'")
             level = "std"
 
83
            echo(f"WARN: Invalid value operator_opts.operator_level={level}.  Using Default value 'std'")

Status: Mutant Found

Mutator Name: String

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:83
@@ -80,7 +80,7 @@
 
         level = self.config.mutator_opts.get("operator_level", "std")
         if level not in self.type_map_levels:
-            echo(f"WARN: Invalid value operator_opts.operator_level={level}.  Using Default value 'std'")
+            echo(f"'XXWARN: Invalid value operator_opts.operator_level=XX'{level}.  Using Default value 'std'")
             level = "std"
 
         self.type_map: dict[type, list[type]] = self.type_map_levels[level]

Status: Mutant Found

Mutator Name: String

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:83
@@ -80,7 +80,7 @@
 
         level = self.config.mutator_opts.get("operator_level", "std")
         if level not in self.type_map_levels:
-            echo(f"WARN: Invalid value operator_opts.operator_level={level}.  Using Default value 'std'")
+            echo(f"WARN: Invalid value operator_opts.operator_level={level}"XX.  Using Default value 'std'XX"")
             level = "std"
 
         self.type_map: dict[type, list[type]] = self.type_map_levels[level]

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:83
@@ -80,7 +80,7 @@
 
         level = self.config.mutator_opts.get("operator_level", "std")
         if level not in self.type_map_levels:
-            echo(f"WARN: Invalid value operator_opts.operator_level={level}.  Using Default value 'std'")
+            None
             level = "std"
 
         self.type_map: dict[type, list[type]] = self.type_map_levels[level]
84
            level = "std"

Status: Mutant Found

Mutator Name: String

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:84
@@ -81,7 +81,7 @@
         level = self.config.mutator_opts.get("operator_level", "std")
         if level not in self.type_map_levels:
             echo(f"WARN: Invalid value operator_opts.operator_level={level}.  Using Default value 'std'")
-            level = "std"
+            level = 'XXstdXX'
 
         self.type_map: dict[type, list[type]] = self.type_map_levels[level]
 
85

        
86
        self.type_map: dict[type, list[type]] = self.type_map_levels[level]

Status: Mutant Found

Mutator Name: DictArray

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:86
@@ -83,7 +83,7 @@
             echo(f"WARN: Invalid value operator_opts.operator_level={level}.  Using Default value 'std'")
             level = "std"
 
-        self.type_map: dict[type, list[type]] = self.type_map_levels[level]
+        self.type_map: dict[type, list[type]] = None
 
     def create_mutations(self, parsed_ast: ast.Module, *_, **__) -> list[FileMutation]:
         """Visit ast nodes and return created mutants."""
87

        
88
    def create_mutations(self, parsed_ast: ast.Module, *_, **__) -> list[FileMutation]:
89
        """Visit ast nodes and return created mutants."""
90
        self.mutants = []
91
        self.add_parent_attr(parsed_ast)

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:91
@@ -88,7 +88,7 @@
     def create_mutations(self, parsed_ast: ast.Module, *_, **__) -> list[FileMutation]:
         """Visit ast nodes and return created mutants."""
         self.mutants = []
-        self.add_parent_attr(parsed_ast)
+        None
         self.visit(parsed_ast)
         return self.mutants
 
92
        self.visit(parsed_ast)

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:92
@@ -89,7 +89,7 @@
         """Visit ast nodes and return created mutants."""
         self.mutants = []
         self.add_parent_attr(parsed_ast)
-        self.visit(parsed_ast)
+        None
         return self.mutants
 
 
93
        return self.mutants

Status: Mutant Found

Mutator Name: Return

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:93
@@ -90,7 +90,7 @@
         self.mutants = []
         self.add_parent_attr(parsed_ast)
         self.visit(parsed_ast)
-        return self.mutants
+        return None
 
 
 class BinaryOperationMutator(OperationMutator):
94

        
95

        
96
class BinaryOperationMutator(OperationMutator):
97
    """Mutate Binary Operations."""
98

        
99
    mutator_name = "BinOp"

Status: Mutant Found

Mutator Name: String

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:99
@@ -96,7 +96,7 @@
 class BinaryOperationMutator(OperationMutator):
     """Mutate Binary Operations."""
 
-    mutator_name = "BinOp"
+    mutator_name = 'XXBinOpXX'
 
     def visit_BinOp(self, node: ast.BinOp) -> None:
         """Identify replacement Operations and create Mutants."""
100

        
101
    def visit_BinOp(self, node: ast.BinOp) -> None:
102
        """Identify replacement Operations and create Mutants."""
103
        if self.is_annotation(node):

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:103
@@ -100,7 +100,7 @@
 
     def visit_BinOp(self, node: ast.BinOp) -> None:
         """Identify replacement Operations and create Mutants."""
-        if self.is_annotation(node):
+        if None:
             return
 
         if type(node.op) in self.type_map:
104
            return
105

        
106
        if type(node.op) in self.type_map:

Status: Mutant Found

Mutator Name: Compare

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:106
@@ -103,7 +103,7 @@
         if self.is_annotation(node):
             return
 
-        if type(node.op) in self.type_map:
+        if type(node.op) not in self.type_map:
             mut_types = self.type_map[type(node.op)]
             self.mutants.extend([self.create_bin_op_mutant(node, new_type) for new_type in mut_types])
 

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:106
@@ -103,7 +103,7 @@
         if self.is_annotation(node):
             return
 
-        if type(node.op) in self.type_map:
+        if None in self.type_map:
             mut_types = self.type_map[type(node.op)]
             self.mutants.extend([self.create_bin_op_mutant(node, new_type) for new_type in mut_types])
 
107
            mut_types = self.type_map[type(node.op)]

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:107
@@ -104,7 +104,7 @@
             return
 
         if type(node.op) in self.type_map:
-            mut_types = self.type_map[type(node.op)]
+            mut_types = self.type_map[None]
             self.mutants.extend([self.create_bin_op_mutant(node, new_type) for new_type in mut_types])
 
     def create_bin_op_mutant(self, node: ast.BinOp, new_type: type) -> FileMutation:

Status: Mutant Found

Mutator Name: DictArray

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:107
@@ -104,7 +104,7 @@
             return
 
         if type(node.op) in self.type_map:
-            mut_types = self.type_map[type(node.op)]
+            mut_types = None
             self.mutants.extend([self.create_bin_op_mutant(node, new_type) for new_type in mut_types])
 
     def create_bin_op_mutant(self, node: ast.BinOp, new_type: type) -> FileMutation:
108
            self.mutants.extend([self.create_bin_op_mutant(node, new_type) for new_type in mut_types])

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:108
@@ -105,7 +105,7 @@
 
         if type(node.op) in self.type_map:
             mut_types = self.type_map[type(node.op)]
-            self.mutants.extend([self.create_bin_op_mutant(node, new_type) for new_type in mut_types])
+            None
 
     def create_bin_op_mutant(self, node: ast.BinOp, new_type: type) -> FileMutation:
         """Create BinOp with replacement operation."""
109

        
110
    def create_bin_op_mutant(self, node: ast.BinOp, new_type: type) -> FileMutation:
111
        """Create BinOp with replacement operation."""
112
        return self.create_file_mutation(node, ast.unparse(ast.BinOp(left=node.left, op=new_type(), right=node.right)))

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:112
@@ -109,7 +109,7 @@
 
     def create_bin_op_mutant(self, node: ast.BinOp, new_type: type) -> FileMutation:
         """Create BinOp with replacement operation."""
-        return self.create_file_mutation(node, ast.unparse(ast.BinOp(left=node.left, op=new_type(), right=node.right)))
+        return None
 
 
 class AugAssignMutator(OperationMutator):

Status: Mutant Found

Mutator Name: Return

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:112
@@ -109,7 +109,7 @@
 
     def create_bin_op_mutant(self, node: ast.BinOp, new_type: type) -> FileMutation:
         """Create BinOp with replacement operation."""
-        return self.create_file_mutation(node, ast.unparse(ast.BinOp(left=node.left, op=new_type(), right=node.right)))
+        return None
 
 
 class AugAssignMutator(OperationMutator):
113

        
114

        
115
class AugAssignMutator(OperationMutator):
116
    """Mutate Augmented Assignments."""
117

        
118
    mutator_name = "AugAssign"

Status: Mutant Found

Mutator Name: String

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:118
@@ -115,7 +115,7 @@
 class AugAssignMutator(OperationMutator):
     """Mutate Augmented Assignments."""
 
-    mutator_name = "AugAssign"
+    mutator_name = 'XXAugAssignXX'
 
     def visit_AugAssign(self, node: ast.AugAssign) -> None:
         """Identify replacement Operations and create Mutants."""
119

        
120
    def visit_AugAssign(self, node: ast.AugAssign) -> None:
121
        """Identify replacement Operations and create Mutants."""
122
        self.mutants.append(self.create_assign_mutant(node))

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:122
@@ -119,7 +119,7 @@
 
     def visit_AugAssign(self, node: ast.AugAssign) -> None:
         """Identify replacement Operations and create Mutants."""
-        self.mutants.append(self.create_assign_mutant(node))
+        None
 
         if type(node.op) in self.type_map:
             mut_types = self.type_map[type(node.op)]
123

        
124
        if type(node.op) in self.type_map:

Status: Mutant Found

Mutator Name: Compare

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:124
@@ -121,7 +121,7 @@
         """Identify replacement Operations and create Mutants."""
         self.mutants.append(self.create_assign_mutant(node))
 
-        if type(node.op) in self.type_map:
+        if type(node.op) not in self.type_map:
             mut_types = self.type_map[type(node.op)]
             self.mutants.extend([self.create_aug_assign_mutant(node, new_type) for new_type in mut_types])
 

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:124
@@ -121,7 +121,7 @@
         """Identify replacement Operations and create Mutants."""
         self.mutants.append(self.create_assign_mutant(node))
 
-        if type(node.op) in self.type_map:
+        if None in self.type_map:
             mut_types = self.type_map[type(node.op)]
             self.mutants.extend([self.create_aug_assign_mutant(node, new_type) for new_type in mut_types])
 
125
            mut_types = self.type_map[type(node.op)]

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:125
@@ -122,7 +122,7 @@
         self.mutants.append(self.create_assign_mutant(node))
 
         if type(node.op) in self.type_map:
-            mut_types = self.type_map[type(node.op)]
+            mut_types = self.type_map[None]
             self.mutants.extend([self.create_aug_assign_mutant(node, new_type) for new_type in mut_types])
 
     def create_assign_mutant(self, node: ast.AugAssign) -> FileMutation:

Status: Mutant Found

Mutator Name: DictArray

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:125
@@ -122,7 +122,7 @@
         self.mutants.append(self.create_assign_mutant(node))
 
         if type(node.op) in self.type_map:
-            mut_types = self.type_map[type(node.op)]
+            mut_types = None
             self.mutants.extend([self.create_aug_assign_mutant(node, new_type) for new_type in mut_types])
 
     def create_assign_mutant(self, node: ast.AugAssign) -> FileMutation:
126
            self.mutants.extend([self.create_aug_assign_mutant(node, new_type) for new_type in mut_types])

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:126
@@ -123,7 +123,7 @@
 
         if type(node.op) in self.type_map:
             mut_types = self.type_map[type(node.op)]
-            self.mutants.extend([self.create_aug_assign_mutant(node, new_type) for new_type in mut_types])
+            None
 
     def create_assign_mutant(self, node: ast.AugAssign) -> FileMutation:
         """Create Assign to replace AugAssign."""
127

        
128
    def create_assign_mutant(self, node: ast.AugAssign) -> FileMutation:
129
        """Create Assign to replace AugAssign."""
130
        return self.create_file_mutation(

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:130
@@ -127,10 +127,7 @@
 
     def create_assign_mutant(self, node: ast.AugAssign) -> FileMutation:
         """Create Assign to replace AugAssign."""
-        return self.create_file_mutation(
-            node,
-            ast.unparse(ast.Assign(lineno=node.lineno, targets=[node.target], value=node.value)),
-        )
+        return None
 
     def create_aug_assign_mutant(self, node: ast.AugAssign, new_type: type) -> FileMutation:
         """Create replacement AugAssign with alternate operation."""

Status: Mutant Found

Mutator Name: Return

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:130
@@ -127,10 +127,7 @@
 
     def create_assign_mutant(self, node: ast.AugAssign) -> FileMutation:
         """Create Assign to replace AugAssign."""
-        return self.create_file_mutation(
-            node,
-            ast.unparse(ast.Assign(lineno=node.lineno, targets=[node.target], value=node.value)),
-        )
+        return None
 
     def create_aug_assign_mutant(self, node: ast.AugAssign, new_type: type) -> FileMutation:
         """Create replacement AugAssign with alternate operation."""
131
            node,
132
            ast.unparse(ast.Assign(lineno=node.lineno, targets=[node.target], value=node.value)),
133
        )
134

        
135
    def create_aug_assign_mutant(self, node: ast.AugAssign, new_type: type) -> FileMutation:
136
        """Create replacement AugAssign with alternate operation."""
137
        return self.create_file_mutation(

Status: Mutant Found

Mutator Name: FuncCall

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:137
@@ -134,7 +134,4 @@
 
     def create_aug_assign_mutant(self, node: ast.AugAssign, new_type: type) -> FileMutation:
         """Create replacement AugAssign with alternate operation."""
-        return self.create_file_mutation(
-            node,
-            ast.unparse(ast.AugAssign(target=node.target, op=new_type(), value=node.value)),
-        )
+        return None

Status: Mutant Found

Mutator Name: Return

Unified Diff:

--- src\poodle\mutators\operators.py
+++ [Mutant] src\poodle\mutators\operators.py:137
@@ -134,7 +134,4 @@
 
     def create_aug_assign_mutant(self, node: ast.AugAssign, new_type: type) -> FileMutation:
         """Create replacement AugAssign with alternate operation."""
-        return self.create_file_mutation(
-            node,
-            ast.unparse(ast.AugAssign(target=node.target, op=new_type(), value=node.value)),
-        )
+        return None
138
            node,
139
            ast.unparse(ast.AugAssign(target=node.target, op=new_type(), value=node.value)),
140
        )