
    3g                     b    d dl Z d dlmZmZmZ  G d de      Z G d de      Z G d de      Zy)	    N)MutationResignMutationOperatorAbstractUnaryOperatorDeletionc                       e Zd Zd Zy)ArithmeticOperatorDeletionc                 B    t         j                  t         j                  fS N)astUAddUSub)selfs    /home/xtuchyna/.var/app/com.visualstudio.code/data/virtualenvs/gen-test-bench-v8TMe8KL/lib/python3.12/site-packages/mutpy/operators/arithmetic.pyget_operator_typez,ArithmeticOperatorDeletion.get_operator_type   s    xx!!    N)__name__
__module____qualname__r    r   r   r   r      s    "r   r   c                   T    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)%AbstractArithmeticOperatorReplacementc                     t               r	   )NotImplementedErrorr   nodes     r   should_mutatez3AbstractArithmeticOperatorReplacement.should_mutate   s    !##r   c                 `    | j                  |      rt        j                         S t               r	   )r   r
   Subr   r   s     r   
mutate_Addz0AbstractArithmeticOperatorReplacement.mutate_Add   %    d#779r   c                 `    | j                  |      rt        j                         S t               r	   )r   r
   Addr   r   s     r   
mutate_Subz0AbstractArithmeticOperatorReplacement.mutate_Sub   r   r   c                 `    | j                  |      rt        j                         S t               r	   r   r
   Divr   r   s     r   mutate_Mult_to_Divz8AbstractArithmeticOperatorReplacement.mutate_Mult_to_Div   r   r   c                 `    | j                  |      rt        j                         S t               r	   r   r
   FloorDivr   r   s     r   mutate_Mult_to_FloorDivz=AbstractArithmeticOperatorReplacement.mutate_Mult_to_FloorDiv   %    d#<<>!r   c                 `    | j                  |      rt        j                         S t               r	   )r   r
   Powr   r   s     r   mutate_Mult_to_Powz8AbstractArithmeticOperatorReplacement.mutate_Mult_to_Pow#   r   r   c                 `    | j                  |      rt        j                         S t               r	   r   r
   Multr   r   s     r   mutate_Div_to_Multz8AbstractArithmeticOperatorReplacement.mutate_Div_to_Mult(   %    d#88:r   c                 `    | j                  |      rt        j                         S t               r	   r(   r   s     r   mutate_Div_to_FloorDivz<AbstractArithmeticOperatorReplacement.mutate_Div_to_FloorDiv-   r+   r   c                 `    | j                  |      rt        j                         S t               r	   r$   r   s     r   mutate_FloorDiv_to_Divz<AbstractArithmeticOperatorReplacement.mutate_FloorDiv_to_Div2   r   r   c                 `    | j                  |      rt        j                         S t               r	   r0   r   s     r   mutate_FloorDiv_to_Multz=AbstractArithmeticOperatorReplacement.mutate_FloorDiv_to_Mult7   r3   r   c                 `    | j                  |      rt        j                         S t               r	   r0   r   s     r   
mutate_Modz0AbstractArithmeticOperatorReplacement.mutate_Mod<   r3   r   c                 `    | j                  |      rt        j                         S t               r	   r0   r   s     r   
mutate_Powz0AbstractArithmeticOperatorReplacement.mutate_PowA   r3   r   N)r   r   r   r   r   r"   r&   r*   r.   r2   r5   r7   r9   r;   r=   r   r   r   r   r      s>    $









r   r   c                       e Zd Zd Zd Zd Zy)ArithmeticOperatorReplacementc                 L    t        |j                  t        j                         S r	   )
isinstanceparentr
   	AugAssignr   s     r   r   z+ArithmeticOperatorReplacement.should_mutateH   s    dkk3==999r   c                 *    t        j                         S r	   )r
   r   r   s     r   mutate_USubz)ArithmeticOperatorReplacement.mutate_USubK       xxzr   c                 *    t        j                         S r	   )r
   r   r   s     r   mutate_UAddz)ArithmeticOperatorReplacement.mutate_UAddN   rF   r   N)r   r   r   r   rE   rH   r   r   r   r?   r?   G   s    :r   r?   )r
   mutpy.operators.baser   r   r   r   r   r?   r   r   r   <module>rJ      s6    
 ` `"!> "
9,< 9x$I r   