
    3g                         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 G d	 d
e      Z G d de      Z	 G d de      Z
y)    N)MutationOperatorAbstractUnaryOperatorDeletion	copy_nodec                       e Zd Zd Zd Zy)ConditionalOperatorDeletionc                 "    t         j                  S N)astNotselfs    /home/xtuchyna/.var/app/com.visualstudio.code/data/virtualenvs/gen-test-bench-v8TMe8KL/lib/python3.12/site-packages/mutpy/operators/logical.pyget_operator_typez-ConditionalOperatorDeletion.get_operator_type   s    ww    c                 *    t        j                         S r	   )r
   Inr   nodes     r   mutate_NotInz(ConditionalOperatorDeletion.mutate_NotIn
       vvxr   N)__name__
__module____qualname__r   r    r   r   r   r      s    r   r   c                   8    e Zd Zd Zed        Zed        Zd Zy)ConditionalOperatorInsertionc                 z    t        j                  t        j                         |j                        }||_        |S )N)opoperand)r
   UnaryOpr   test)r   r   not_nodes      r   negate_testz(ConditionalOperatorInsertion.negate_test   s(    ;;#'')TYY?	r   c                 $    | j                  |      S r	   r#   r   s     r   mutate_Whilez)ConditionalOperatorInsertion.mutate_While       %%r   c                 $    | j                  |      S r	   r%   r   s     r   	mutate_Ifz&ConditionalOperatorInsertion.mutate_If   r'   r   c                 *    t        j                         S r	   )r
   NotInr   s     r   	mutate_Inz&ConditionalOperatorInsertion.mutate_In       yy{r   N)r   r   r   r#   r   r&   r)   r,   r   r   r   r   r      s4    
 & & & &r   r   c                       e Zd Zd Zd Zy)LogicalConnectorReplacementc                 *    t        j                         S r	   )r
   Orr   s     r   
mutate_Andz&LogicalConnectorReplacement.mutate_And!   r   r   c                 *    t        j                         S r	   )r
   Andr   s     r   	mutate_Orz%LogicalConnectorReplacement.mutate_Or$       wwyr   N)r   r   r   r2   r5   r   r   r   r/   r/       s    r   r/   c                       e Zd Zd Zy)LogicalOperatorDeletionc                 "    t         j                  S r	   )r
   Invertr   s    r   r   z)LogicalOperatorDeletion.get_operator_type)   s    zzr   N)r   r   r   r   r   r   r   r8   r8   (   s    r   r8   c                   *    e Zd Zd Zd Zd Zd Zd Zy)LogicalOperatorReplacementc                 *    t        j                         S r	   )r
   BitOrr   s     r   mutate_BitAndz(LogicalOperatorReplacement.mutate_BitAnd.   r-   r   c                 *    t        j                         S r	   r
   BitAndr   s     r   mutate_BitOrz'LogicalOperatorReplacement.mutate_BitOr1       zz|r   c                 *    t        j                         S r	   rA   r   s     r   mutate_BitXorz(LogicalOperatorReplacement.mutate_BitXor4   rD   r   c                 *    t        j                         S r	   )r
   RShiftr   s     r   mutate_LShiftz(LogicalOperatorReplacement.mutate_LShift7   rD   r   c                 *    t        j                         S r	   )r
   LShiftr   s     r   mutate_RShiftz(LogicalOperatorReplacement.mutate_RShift:   rD   r   N)r   r   r   r?   rC   rF   rI   rL   r   r   r   r<   r<   -   s    r   r<   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)RelationalOperatorReplacementc                 *    t        j                         S r	   r
   Gtr   s     r   	mutate_Ltz'RelationalOperatorReplacement.mutate_Lt?   r   r   c                 *    t        j                         S r	   r
   LtEr   s     r   mutate_Lt_to_LtEz.RelationalOperatorReplacement.mutate_Lt_to_LtEB   r6   r   c                 *    t        j                         S r	   r
   Ltr   s     r   	mutate_Gtz'RelationalOperatorReplacement.mutate_GtE   r   r   c                 *    t        j                         S r	   r
   GtEr   s     r   mutate_Gt_to_GtEz.RelationalOperatorReplacement.mutate_Gt_to_GtEH   r6   r   c                 *    t        j                         S r	   r\   r   s     r   
mutate_LtEz(RelationalOperatorReplacement.mutate_LtEK   r6   r   c                 *    t        j                         S r	   rX   r   s     r   mutate_LtE_to_Ltz.RelationalOperatorReplacement.mutate_LtE_to_LtN   r   r   c                 *    t        j                         S r	   rT   r   s     r   
mutate_GtEz(RelationalOperatorReplacement.mutate_GtEQ   r6   r   c                 *    t        j                         S r	   rP   r   s     r   mutate_GtE_to_Gtz.RelationalOperatorReplacement.mutate_GtE_to_GtT   r   r   c                 *    t        j                         S r	   )r
   NotEqr   s     r   	mutate_Eqz'RelationalOperatorReplacement.mutate_EqW   r-   r   c                 *    t        j                         S r	   )r
   Eqr   s     r   mutate_NotEqz*RelationalOperatorReplacement.mutate_NotEqZ   r   r   N)r   r   r   rR   rV   rZ   r^   r`   rb   rd   rf   ri   rl   r   r   r   rN   rN   >   s4    r   rN   )r
   mutpy.operators.baser   r   r   r   r   r/   r8   r<   rN   r   r   r   <module>rn      s\    
 [ ["? #3 $"2 ; 
!1 "$4 r   