
    dafj                        d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
  e
j                  ddg      Z e
j                  ddg	      Z G d
 d      Z G d de      Z G d d      Z G d d      Z G d dee j&                        Z e j*                  ed       G d dee j&                               Z G d d      Z G d dee j&                        Z e j*                  ed       G d dee j&                               Z e j*                  ed       G d dee j&                               Z e j*                  ed       G d d ee j&                               Zed!k(  r e j:                          yy)"    N)Decimal)Fraction)support)import_helperoperator	_operator)blocked)freshc                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)Seq1c                     || _         y Nlstselfr   s     -/root/Python-3.12.4/Lib/test/test_operator.py__init__zSeq1.__init__   	        c                 ,    t        | j                        S r   lenr   r   s    r   __len__zSeq1.__len__       488}r   c                      | j                   |   S r   r   r   is     r   __getitem__zSeq1.__getitem__       xx{r   c                 4    | j                   |j                   z   S r   r   r   others     r   __add__zSeq1.__add__       xx%))##r   c                      | j                   |z  S r   r   r#   s     r   __mul__zSeq1.__mul__       xx%r   c                      || j                   z  S r   r   r#   s     r   __rmul__zSeq1.__rmul__       txxr   N	__name__
__module____qualname__r   r   r    r%   r(   r+    r   r   r   r           $  r   r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)Seq2c                     || _         y r   r   r   s     r   r   zSeq2.__init__   r   r   c                 ,    t        | j                        S r   r   r   s    r   r   zSeq2.__len__!   r   r   c                      | j                   |   S r   r   r   s     r   r    zSeq2.__getitem__#   r!   r   c                 4    | j                   |j                   z   S r   r   r#   s     r   r%   zSeq2.__add__%   r&   r   c                      | j                   |z  S r   r   r#   s     r   r(   zSeq2.__mul__'   r)   r   c                      || j                   z  S r   r   r#   s     r   r+   zSeq2.__rmul__)   r,   r   Nr-   r1   r   r   r4   r4      r2   r   r4   c                       e Zd Zd Zy)BadIterablec                     t         r   )ZeroDivisionErrorr   s    r   __iter__zBadIterable.__iter__-   s    r   N)r.   r/   r0   r?   r1   r   r   r<   r<   ,   s     r   r<   c                      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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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(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.y-).OperatorTestCasec                    | j                   }t        |j                        }t               }t        |      D ]@  }|j	                  d      rt        ||      }|j                  dv s0|j                  |       B | j                  ||       y )N__)r   r   )	moduleset__all__vars
startswithgetattrr/   addassertSetEqual)r   r   
actual_allcomputed_allnamevalues         r   test___all__zOperatorTestCase.test___all__2   s    ;;))*
uN 	'Dt$Hd+E#<<  &	' 	L*5r   c                 ,   | j                   }| j                  t        |j                         | j                  t        |j                  dd       | j	                  |j                  dd             | j	                  |j                  dd             | j	                  |j                  dd             | j	                  |j                  dd             | j                  |j                  dd             | j                  |j                  dd             y 	Ny              ?y               @   r                 ?          @)rD   assertRaises	TypeErrorltassertFalse
assertTruer   r   s     r   test_ltzOperatorTestCase.test_lt>   s    ;;)X[[1)X[["b9Q*+Q,-Q*+Q,-Aq)*As+,r   c                 ,   | j                   }| j                  t        |j                         | j                  t        |j                  dd       | j	                  |j                  dd             | j	                  |j                  dd             | j                  |j                  dd             | j                  |j                  dd             | j                  |j                  dd             | j                  |j                  dd             y rR   )rD   rX   rY   ler[   r\   r]   s     r   test_lezOperatorTestCase.test_leI   s    ;;)X[[1)X[["b9Q*+Q,-Aq)*As+,Aq)*As+,r   c                 ^   | j                   } G d dt              }| j                  t        |j                         | j                  t
        |j                   |        |              | j                  |j	                  dd             | j                  |j	                  dd             | j                  |j	                  dd             | j                  |j	                  dd             | j                  |j	                  dd             | j                  |j	                  dd             y )	Nc                       e Zd Zd Zy)#OperatorTestCase.test_eq.<locals>.Cc                     t         r   SyntaxErrorr#   s     r   __eq__z*OperatorTestCase.test_eq.<locals>.C.__eq__W       !!r   N)r.   r/   r0   rh   r1   r   r   Crd   V       "r   rj   rS   r   rT   rU   rV   rW   )rD   objectrX   rY   eqrg   r[   r\   r   r   rj   s      r   test_eqzOperatorTestCase.test_eqT   s    ;;	" 	" 	)X[[1+x{{AC=Q*+Q,-Aq)*As+,Q*+Q,-r   c                 ^   | j                   } G d dt              }| j                  t        |j                         | j                  t
        |j                   |        |              | j                  |j	                  dd             | j                  |j	                  dd             | j                  |j	                  dd             | j                  |j	                  dd             | j                  |j	                  dd             | j                  |j	                  dd             y )	Nc                       e Zd Zd Zy)#OperatorTestCase.test_ne.<locals>.Cc                     t         r   rf   r#   s     r   __ne__z*OperatorTestCase.test_ne.<locals>.C.__ne__e   ri   r   N)r.   r/   r0   rt   r1   r   r   rj   rr   d   rk   r   rj   rS   r   rT   rU   rV   rW   )rD   rl   rX   rY   nerg   r\   r[   rn   s      r   test_nezOperatorTestCase.test_neb   s    ;;	" 	" 	)X[[1+x{{AC=Aq)*As+,Q*+Q,-Aq)*As+,r   c                 ,   | j                   }| j                  t        |j                         | j                  t        |j                  dd       | j	                  |j                  dd             | j	                  |j                  dd             | j	                  |j                  dd             | j	                  |j                  dd             | j                  |j                  dd             | j                  |j                  dd             y rR   )rD   rX   rY   ger\   r[   r]   s     r   test_gezOperatorTestCase.test_gep   s    ;;)X[[1)X[["b9Aq)*As+,Aq)*As+,Q*+Q,-r   c                 ,   | j                   }| j                  t        |j                         | j                  t        |j                  dd       | j	                  |j                  dd             | j	                  |j                  dd             | j                  |j                  dd             | j                  |j                  dd             | j                  |j                  dd             | j                  |j                  dd             y rR   )rD   rX   rY   gtr\   r[   r]   s     r   test_gtzOperatorTestCase.test_gt{   s    ;;)X[[1)X[["b9Aq)*As+,Q*+Q,-Q*+Q,-r   c                 "   | j                   }| j                  t        |j                         | j                  t        |j                  d        | j	                  |j                  d      d       | j	                  |j                  d      d       y )NrS   )rD   rX   rY   absassertEqualr]   s     r   test_abszOperatorTestCase.test_abs   sf    ;;)X\\2)X\\48b)1-a!,r   c                     | j                   }| j                  t        |j                         | j                  t        |j                  d d        | j	                  |j                  dd      d       y )N         )rD   rX   rY   rJ   r   r]   s     r   test_addzOperatorTestCase.test_add   R    ;;)X\\2)X\\4>a+Q/r   c                     | j                   }| j                  t        |j                         | j                  t        |j                  d d        | j	                  |j                  dd      d       y )N   
   )rD   rX   rY   and_r   r]   s     r   test_bitwise_andz!OperatorTestCase.test_bitwise_and   sR    ;;)X]]3)X]]D$?sC0#6r   c                 \   | j                   }| j                  t        |j                         | j                  t        |j                  d d        | j	                  |j                  dd      d       | j	                  |j                  ddgddg      g d       | j	                  |j                  t        d	d
g      t        dg            g d       | j	                  |j                  t        d	d
g      t        dg            g d       | j                  t        |j                  dd       y )NpythonpythonrS   rV   r   r   )rS   rV   r   r         r   )r   r   r         )rD   rX   rY   concatr   r   r4   r]   s     r   test_concatzOperatorTestCase.test_concat   s    ;;)X__5)X__dDAv6A!Q!Q8,Gq!ftQCyA9Mq!ftQCyA9M)X__b"=r   c                 0   | j                   }| j                  t        |j                         | j                  t        |j                  d d        | j                  t        |j                  t               d       | j                  |j                  g dd      d       | j                  |j                  g dd      d       t        d      }| j                  |j                  ||dg|      d       | j                  |j                  i di dgi       d       y )	NrS   )rS   rV   rS   r   rS   r   r   r   r   nan   rV   )rD   rX   rY   countOfr>   r<   r   float)r   r   r   s      r   test_countOfzOperatorTestCase.test_countOf   s    ;;)X%5%56)X%5%5tTB+X-=-={}aP))*<a@!D))*<a@!DEl))3R.#>B))2q"a."=qAr   c                    | j                   }g d}| j                  t        |j                  |       | j                  t        |j                  |d        | j	                  |j                  |d             | j                  |g d       y )Nr   r   rV   rS   rS   )r   rV   rS   )rD   rX   rY   delitemassertIsNoner   r   r   as      r   test_delitemzOperatorTestCase.test_delitem   sm    ;;)X%5%5q9)X%5%5q$?(**1a01I&r   c                     | j                   }| j                  t        |j                  d       | j                  t        |j                  d d        | j	                  |j                  dd      d       y )Nr   rV   )rD   rX   rY   floordivr   r]   s     r   test_floordivzOperatorTestCase.test_floordiv   sZ    ;;)X%6%6:)X%6%6dC**1a0!4r   c                     | j                   }| j                  t        |j                  d       | j                  t        |j                  d d        | j	                  |j                  dd      d       y )Nr   rV   g      @)rD   rX   rY   truedivr   r]   s     r   test_truedivzOperatorTestCase.test_truediv   sZ    ;;)X%5%5q9)X%5%5tTB))!Q/5r   c                     | j                   }t        d      }| j                  t        |j                         | j                  t        |j                  |d        | j                  |j	                  |d      d       y )Nr   rV   )rD   rangerX   rY   getitemr   r   s      r   test_getitemzOperatorTestCase.test_getitem   sa    ;;"I)X%5%56)X%5%5q$?))!Q/3r   c                    | j                   }| j                  t        |j                         | j                  t        |j                  d d        | j                  t        |j                  t               d       | j                  |j                  g dd      d       | j                  t        |j                  g dd       t        d      }| j                  |j                  ||dg|      d       | j                  |j                  i di dgi       d       t        d      }| j                  |j                  |d	      d       | j                  t        |      d
       y )NrS   r   r   r   r   r   rV   z:leave the iterator at exactly the position after the matchr   v)rD   rX   rY   indexOfr>   r<   r   
ValueErrorr   iternext)r   r   r   its       r   test_indexOfzOperatorTestCase.test_indexOf   s   ;;)X%5%56)X%5%5tTB+X-=-={}aP)),:A>*h&6&6aHEl))3R.#>B))2q"a."=qANO))"c2A6b3'r   c                     | j                   }| j                  t        |j                         | j                  t        |j                  d        | j	                  |j                  d      d       y )Nr   )rD   rX   rY   invertr   invr]   s     r   test_invertzOperatorTestCase.test_invert   sM    ;;)X__5)X__d;a"-r   c                 l   | j                   }| j                  t        |j                         | j                  t        |j                  d d       | j	                  |j                  dd      d       | j	                  |j                  dd      d       | j                  t
        |j                  dd       y )N*   r   rS   r   r   rV   r~   )rD   rX   rY   lshiftr   r   r]   s     r   test_lshiftzOperatorTestCase.test_lshift   s    ;;)X__5)X__dB?A.3A.2*hooq"=r   c                     | j                   }| j                  t        |j                         | j                  t        |j                  d d       | j	                  |j                  dd      d       y )Nr   r   rV   rS   )rD   rX   rY   modr   r]   s     r   test_modzOperatorTestCase.test_mod   sR    ;;)X\\2)X\\4<a+Q/r   c                     | j                   }| j                  t        |j                         | j                  t        |j                  d d        | j	                  |j                  dd      d       y )Nr   rV   r   )rD   rX   rY   mulr   r]   s     r   test_mulzOperatorTestCase.test_mul   sR    ;;)X\\2)X\\4>a+R0r   c                     | j                   }| j                  t        |j                         | j                  t        |j                  dd        G d d      }| j	                   |       dz  d       y )Nr   c                       e Zd Zd Zy)'OperatorTestCase.test_matmul.<locals>.Mc                     |dz
  S NrS   r1   r#   s     r   
__matmul__z2OperatorTestCase.test_matmul.<locals>.M.__matmul__   s    qy r   N)r.   r/   r0   r   r1   r   r   Mr      s    !r   r   )   )rD   rX   rY   matmulr   )r   r   r   s      r   test_matmulzOperatorTestCase.test_matmul   sY    ;;)X__5)X__b"=	! 	! 	r2&r   c                    | j                   }| j                  t        |j                         | j                  t        |j                  d        | j	                  |j                  d      d       | j	                  |j                  d      d       | j	                  |j                  d      d       | j	                  |j                  d      d       y Nr   r   r   )rD   rX   rY   negr   r]   s     r   test_negzOperatorTestCase.test_neg   s    ;;)X\\2)X\\48a"-b)1-a!,b)1-r   c                     | j                   }| j                  t        |j                         | j                  t        |j                  d d        | j	                  |j                  dd      d       y )Nr   r   r   )rD   rX   rY   or_r   r]   s     r   test_bitwise_orz OperatorTestCase.test_bitwise_or  R    ;;)X\\2)X\\4>c3/5r   c                    | j                   }| j                  t        |j                         | j                  t        |j                  d        | j	                  |j                  d      d       | j	                  |j                  d      d       | j	                  |j                  d      d       | j	                  |j                  d      d       y r   )rD   rX   rY   posr   r]   s     r   test_poszOperatorTestCase.test_pos  s    ;;)X\\2)X\\48a!,b)2.a!,b)1-r   c                 l   | j                   }| j                  t        |j                         | j                  t        |j                  d d        | j	                  |j                  dd      d       | j                  t        |j                  d       | j                  t        |j                  ddd       y )Nr   r      rS   rV   )rD   rX   rY   powr   r]   s     r   test_powzOperatorTestCase.test_pow  s    ;;)X\\2)X\\4>a*D1)X\\15)X\\1a;r   c                 l   | j                   }| j                  t        |j                         | j                  t        |j                  d d       | j	                  |j                  dd      d       | j	                  |j                  dd      d       | j                  t
        |j                  dd       y )Nr   r   rS   rV   r   r~   )rD   rX   rY   rshiftr   r   r]   s     r   test_rshiftzOperatorTestCase.test_rshift  s    ;;)X__5)X__dB?A.2A.2*hooq"=r   c                    | j                   }| j                  t        |j                         | j                  t        |j                  d d        | j                  t        |j                  t               d       | j                  |j                  t        d      d             | j                  |j                  t        d      d             y )NrS   r   rV   r   )	rD   rX   rY   containsr>   r<   r\   r   r[   r]   s     r   test_containszOperatorTestCase.test_contains$  s    ;;)X%6%67)X%6%6dC+X->->qQ))%(A67**58Q78r   c                 ~   | j                   }t        t        d            }| j                  t        |j
                  |       | j                  t        |j
                  |d d        | j                  |j                  |dd             | j                  |g d       | j                  t        |j
                  |dd       y )Nr   r   rV   )rV   rS   rV   r   )	rD   listr   rX   rY   setitemr   r   
IndexErrorr   s      r   test_setitemzOperatorTestCase.test_setitem,  s    ;;qN)X%5%5q9)X%5%5q$E(**1a34I&*h&6&61a@r   c                     | j                   }| j                  t        |j                         | j                  t        |j                  d d        | j	                  |j                  dd      d       y )Nr   rV   r   )rD   rX   rY   subr   r]   s     r   test_subzOperatorTestCase.test_sub5  r   r   c                    | j                   } G d dt              }| j                  t        |j                         | j                  t
        |j                   |              | j                  |j	                  d             | j                  |j	                  dg             | j                  |j	                  d             | j                  |j	                  g              y )Nc                       e Zd Zd Zy)&OperatorTestCase.test_truth.<locals>.Cc                     t         r   rf   r   s    r   __bool__z/OperatorTestCase.test_truth.<locals>.C.__bool__>  ri   r   Nr.   r/   r0   r   r1   r   r   rj   r   =  rk   r   rj   r   r   )rD   rl   rX   rY   truthrg   r\   r[   rn   s      r   
test_truthzOperatorTestCase.test_truth;  s    ;;	" 	" 	)X^^4+x~~qs;q)*s+,*++,r   c                     | j                   }| j                  t        |j                         | j                  t        |j                  d d        | j	                  |j                  dd      d       y )N      r   )rD   rX   rY   xorr   r]   s     r   test_bitwise_xorz!OperatorTestCase.test_bitwise_xorG  r   r   c                     | j                   }dx}}|d d |dd  z   }| j                  t        |j                         | j	                  |j                  ||             | j                  |j                  ||             y Nxyzpdqr   )rD   rX   rY   is_r\   r[   r   r   r   bcs        r   test_iszOperatorTestCase.test_isM  sn    ;;AbqEAabEM)X\\2Q*+a*+r   c                     | j                   }dx}}|d d |dd  z   }| j                  t        |j                         | j	                  |j                  ||             | j                  |j                  ||             y r   )rD   rX   rY   is_notr[   r\   r   s        r   test_is_notzOperatorTestCase.test_is_notU  sn    ;;AbqEAabEM)X__5A./!,-r   c                 z   | j                   } G d d      } |       }d|_        |j                  d      }| j                   ||      d       | j	                  t
        |       | j	                  t
        ||d       | j	                  t
        ||d       |j                  d      }| j	                  t        ||       | j	                  t
        |j                  d       | j	                  t
        |j                          |       }d	|_        d
|_        d|_	        | j                   |j                  ddd      |      d       | j	                  t
        |j                  d        G d dt              }| j	                  t        |j                  d       |               |       }d|_         |       |_        d|j                  _        |j                  d      }| j                   ||      d       | j	                  t        ||j                         |j                  dd      }| j                   ||      d       |j                  ddd      }| j	                  t        ||       |j                  d      }| j	                  t        ||       |j                  d      }| j	                  t        ||        |       |j                  _        d|j                  j                  _        |j                  d      }| j                   ||      d       |j                  ddd      }| j                   ||      d       y )Nc                       e Zd Zy)+OperatorTestCase.test_attrgetter.<locals>.ANr.   r/   r0   r1   r   r   Ar  _      r   r  arthurrN   dent)surnamerankrV   XYZxzy)r  r  r  )r  r1   r  c                       e Zd Zd Zy)+OperatorTestCase.test_attrgetter.<locals>.Cc                     t         r   rf   r   rN   s     r   __getattr__z7OperatorTestCase.test_attrgetter.<locals>.C.__getattr__v  ri   r   N)r.   r/   r0   r  r1   r   r   rj   r  u  rk   r   rj   foothomasz
child.name)r
  r  zchild.child.namezchild.z.childjohnson)r
  r  r  )rD   rN   
attrgetterr   rX   rY   AttributeErrorr  r  r  rl   rg   child)r   r   r  r   frecordrj   s          r   test_attrgetterz OperatorTestCase.test_attrgetter]  s   ;;	 	C'1x()Q')Q62)Q6:'.!Q/)X%8%8!<)X%8%89 9,,SS9&A?S)X%8%8.I	" 	" 	+x':':5'A13G C#-1x(.!QWW551346HI.!Q/).!Q/).!Q/& 231y)6HI1>?r   c           	         | j                   }d}|j                  d      }| j                   ||      d       | j                  t        |       | j                  t        ||d       | j                  t        ||d       |j                  d      }| j                  t
        ||        G d dt              }| j                  t        |j                  d       |              |j                  d	      }| j                  t        ||       | j                  t        |j                         t        d
      }|j                  d      }| j                   ||      d
       |j                  d      }| j                  t        ||       g d}|j                  d      }| j                  t        t        ||            g d       | j                  t        ||      g d       t        t        t        t        d                  }| j                   |j                  ddd      |      d       | j                  t        |j                  ddd      |       t        d      }	| j                   |j                  d      |	      d       | j                   |j                  t!        dd            |	      d        G d dt              }
| j                   |j                  d       |
d            d       | j                   |j                  d      g d       d       | j                   |j                  d      t        d!d"            d!       y )#NABCDErV   rj   r   )sizer   c                       e Zd Zd Zy)+OperatorTestCase.test_itemgetter.<locals>.Cc                     t         r   rf   r  s     r   r    z7OperatorTestCase.test_itemgetter.<locals>.C.__getitem__  ri   r   N)r.   r/   r0   r    r1   r   r   rj   r&    rk   r   r   rN   val)keyr)  nonkey)appler   bananarV   pearr   orangerS   rS   )r   rV   r   rS   )r1  r-  r+  r/     r   )2105r  abcder~   er   )r   dc                       e Zd ZdZy)+OperatorTestCase.test_itemgetter.<locals>.TzTuple subclassN)r.   r/   r0   __doc__r1   r   r   Tr;    s    r   r=  r   abcr   )r   r   r   d      )rD   
itemgetterr   rX   rY   r   rl   rg   dictKeyErrorr   mapsortedstrr   tupleslice)r   r   r   r  rj   r9  	inventorygetcountdatatr=  s              r   test_itemgetterz OperatorTestCase.test_itemgetter  s   ;;"1s#)Q')Q1-)Q2#*a+	" 	" 	+x':':2'>D')Q*)X%8%89UO&1u%)(Aq) N	&&q)c(I67F	x8E	G CU2Y'(4,,Qr!4T:<LM)X%8%8C%CTJ 'N0,,R03S99,,U1a[9!<jI	 	 	/,,Q/%93?/,,Q/@#F/,,Q/c3@#Fr   c                 $   | j                   }| j                  t        |j                         | j                  t        |j                  d        G d d      } |       }|j                  d      }| j                  t        ||       |j                  ddd      }| j                   ||      d       | j                  t        |       | j                  t        ||d       | j                  t        ||d       |j                  d	      }| j                   ||      d
       | j                  t        |||       |j                  d	d      }| j                   ||      d       |j                  ddd      }| j                   ||      d       y )Nr   c                        e Zd Zd ZddZd Zy)-OperatorTestCase.test_methodcaller.<locals>.Ac                     |d   |d   z   S Nr   rS   r1   r   argskwdss      r   r  z1OperatorTestCase.test_methodcaller.<locals>.A.foo      Awa((r   c                     |S r   r1   r   r  s     r   barz1OperatorTestCase.test_methodcaller.<locals>.A.bar      r   c                      |d   |d   fS NrN   r   r1   rT  rU  s     r   bazz1OperatorTestCase.test_methodcaller.<locals>.A.baz      F|T&\11r   Nr   r.   r/   r0   r  rY  r^  r1   r   r   r  rP        )2r   r  r  rS   rV   r   )spamrY  r   r   r  r^  rc  eggs)rN   r   )rc  re  )rD   rX   rY   methodcallerr   r   )r   r   r  r   r  s        r   test_methodcallerz"OperatorTestCase.test_methodcaller  s^   ;;)X%:%:;)X%:%:B?	2 	2 C!!%(*a+!!%A.1q!)Q')Q1-)Q2!!%(1r")Q1-!!%1!-1q!!!%f6!B1/0r   c                     | j                   } G d dt              } |       }| j                  |j                  |d      d       | j                  |j	                  |d      d       | j                  |j                  |d      d       | j                  |j                  |d      d       | j                  |j                  |d      d       | j                  |j                  |d      d	       | j                  |j                  |d      d
       | j                  |j                  |d      d       | j                  |j                  |d      d       | j                  |j                  |d      d       | j                  |j                  |d      d       | j                  |j                  |d      d       | j                  |j                  |d      d       | j                  |j!                  ||      d       y )Nc                   `    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d Zd Zy)(OperatorTestCase.test_inplace.<locals>.Cc                      y)Niaddr1   r#   s     r   __iadd__z1OperatorTestCase.test_inplace.<locals>.C.__iadd__      6r   c                      y)Niandr1   r#   s     r   __iand__z1OperatorTestCase.test_inplace.<locals>.C.__iand__  rn  r   c                      y)N	ifloordivr1   r#   s     r   __ifloordiv__z6OperatorTestCase.test_inplace.<locals>.C.__ifloordiv__  s    ;r   c                      y)Nilshiftr1   r#   s     r   __ilshift__z4OperatorTestCase.test_inplace.<locals>.C.__ilshift__      9r   c                      y)Nimodr1   r#   s     r   __imod__z1OperatorTestCase.test_inplace.<locals>.C.__imod__  rn  r   c                      y)Nimulr1   r#   s     r   __imul__z1OperatorTestCase.test_inplace.<locals>.C.__imul__  rn  r   c                      y)Nimatmulr1   r#   s     r   __imatmul__z4OperatorTestCase.test_inplace.<locals>.C.__imatmul__  rx  r   c                      y)Niorr1   r#   s     r   __ior__z0OperatorTestCase.test_inplace.<locals>.C.__ior__  s    5r   c                      y)Nipowr1   r#   s     r   __ipow__z1OperatorTestCase.test_inplace.<locals>.C.__ipow__  rn  r   c                      y)Nirshiftr1   r#   s     r   __irshift__z4OperatorTestCase.test_inplace.<locals>.C.__irshift__  rx  r   c                      y)Nisubr1   r#   s     r   __isub__z1OperatorTestCase.test_inplace.<locals>.C.__isub__  rn  r   c                      y)Nitruedivr1   r#   s     r   __itruediv__z5OperatorTestCase.test_inplace.<locals>.C.__itruediv__  s    :r   c                      y)Nixorr1   r#   s     r   __ixor__z1OperatorTestCase.test_inplace.<locals>.C.__ixor__  rn  r   c                      y)Nr   r1   r#   s     r   r    z4OperatorTestCase.test_inplace.<locals>.C.__getitem__  s    r   N)r.   r/   r0   rm  rq  rt  rw  r{  r~  r  r  r  r  r  r  r  r    r1   r   r   rj   rj    s,    99><99<89<9=92r   rj   r   rl  rp  rs  rv  rz  r}  r  r  r  r  r  r  r  )rD   rl   r   rl  rp  rs  rv  rz  r}  r  r  r  r  r  r  r  iconcat)r   r   rj   r   s       r   test_inplacezOperatorTestCase.test_inplace  s   ;;	3 	3 CAq16:Aq16:++Aq1;?))Aq19=Aq16:Aq16:))Aq19=Aq159Aq16:))Aq19=Aq16:**Aq1:>Aq16:))Aq16:r   c                     | j                   }d}| j                  t        |      5  |j                  dd       d d d        y # 1 sw Y   y xY w)Nz"'int' object can't be concatenatedrS   g      ?)rD   assertRaisesRegexrY   r  )r   r   msgs      r   test_iconcat_without_getitemz-OperatorTestCase.test_iconcat_without_getitem  sE    ;;2##Is3 	%Q$	% 	% 	%s   AA
c                 p   | j                   } G d d      }| j                  |j                   |             d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  t        t
        f      5  |j                  d       d d d        | j                  t        t
        f      5  |j                  t        dd             d d d        | j                  t        t
        f      5  |j                  t        d             d d d        | j                  t        t
        f      5  |j                  d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   WxY w# 1 sw Y   y xY w)	Nc                       e Zd Zd Zy)&OperatorTestCase.test_index.<locals>.Xc                      yr   r1   r   s    r   	__index__z0OperatorTestCase.test_index.<locals>.X.__index__  s    r   N)r.   r/   r0   r  r1   r   r   r  r  
  s    r   r  rS   r   rV   g      ?r   r   )rD   r   indexrX   r  rY   r   r   )r   r   r  s      r   
test_indexzOperatorTestCase.test_index  s\   ;;	 	 	,a0*A.*A.*A.	:; 	 NN3	 	:; 	+NN8Aq>*	+	:; 	'NN71:&	'	:; 	!NN4 	! 	!	  	 	+ 	+	' 	'	! 	!s0   ;F0F/F -F,FF F),F5c                    | j                   } G d d      }| j                  t        |j                         | j                  t        |j                   |              | j                  |j                  d             | j                  |j                  dg             | j                  |j                  d             | j                  |j                  g              y )Nc                       e Zd Zd Zy)%OperatorTestCase.test_not_.<locals>.Cc                     t         r   rf   r   s    r   r   z.OperatorTestCase.test_not_.<locals>.C.__bool__  ri   r   Nr   r1   r   r   rj   r    rk   r   rj   r   r   )rD   rX   rY   not_rg   r[   r\   rn   s      r   	test_not_zOperatorTestCase.test_not_  s    ;;	" 	" 	)X]]3+x}}ac:q)*s+,a()b)*r   c                 N   | j                   } G d dt              }| j                  |j                  g d      d       | j                  |j                  t	        g d            d       | j                  |j                   |d            d       | j                  |j                   |t
              d      d       | j                  |j                   |t              d      d       | j                  t              5  |j                   |d	             d d d        | j                  t              5  |j                   |d
             d d d        | j                  t              5  |j                   |t                     d d d         G d d      }d}| j                  t        |      5  |j                   |d      d	       d d d        | j                  |j                   |       d      d       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   UxY w)Nc                       e Zd Zd Zd Zy),OperatorTestCase.test_length_hint.<locals>.Xc                     || _         y r   )rO   )r   rO   s     r   r   z5OperatorTestCase.test_length_hint.<locals>.X.__init__*  s	    "
r   c                 h    t        | j                        t         u r| j                  | j                  S r   )typerO   r   s    r   __length_hint__z<OperatorTestCase.test_length_hint.<locals>.X.__length_hint__-  s'    

#t+**$::%r   N)r.   r/   r0   r   r  r1   r   r   r  r  )  s    #&r   r  rV   r   )rS   rV   r   r   r   r   r>  c                       e Zd Zy),OperatorTestCase.test_length_hint.<locals>.YNr  r1   r   r   r  r  @  s    r   r  z0'str' object cannot be interpreted as an integerr   )rD   rl   r   length_hintr   NotImplementedrY   rX   r   LookupErrorr  )r   r   r  r  r  s        r   test_length_hintz!OperatorTestCase.test_length_hint'  s   ;;	& 	& 	--b!4a8--d9o>B--ad3Q7--a.?CQG--a	lB?Dy) 	+  5*	+z* 	(  2'	({+ 	1  ;0	1 	@##Is3 	.  1u-	.--ac26;	+ 	+	( 	(	1 	1	. 	.s0   >G73H(H.H7H HHH$c           	      Z   | j                   }d }| j                  |j                  |      di f       | j                  |j                  |dd      di f       | j                  |j                  |dd      ddddf       | j                  |j                  |dddd      ddddf       y )	Nc                  
    | |fS r   r1   )rT  kwargss     r   funcz(OperatorTestCase.test_call.<locals>.funcJ  s    $,#6r   r1   r   rS   )r   rS   rV   r   )r   obj)rD   r   call)r   r   r  s      r   	test_callzOperatorTestCase.test_callG  s    ;;6t,r2h7tQ2VRLAtqa8Aa01	3tQQA> !"45	7r   c                    | j                   }t        |      D cg c]  }|j                  d      r| }}|D ]E  }t        ||      }t        |d|j	                  d      z   dz   d       }|s4| j                  ||       G y c c}w )N_rC   )rD   dirrH   rI   stripassertIs)r   r   rN   namesorigdunders         r   test_dunder_is_originalz(OperatorTestCase.test_dunder_is_originalS  s    ;;"%h-L$ts7KLL 	,D8T*DXtdjjo'='DdKFfd+		, Ms
   BBN)/r.   r/   r0   rP   r^   ra   ro   rv   ry   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r!  rM  rg  r  r  r  r  r  r  r  r1   r   r   rA   rA   1   s    
6	-	-.-	.	.-07>B'564(.>01'.6.<>9A0
-6,.3@j1Gf16;B%!&
+<@
7,r   rA   c                       e Zd ZeZy)PyOperatorTestCaseN)r.   r/   r0   py_operatorrD   r1   r   r   r  r  ]  s    Fr   r  zrequires _operatorc                       e Zd ZeZy)COperatorTestCaseN)r.   r/   r0   
c_operatorrD   r1   r   r   r  r  `  s    Fr   r  c                   $    e Zd Zd Zd Zd Zd Zy)OperatorPickleTestCasec                 j   t        j                  t        j                  d| j                        5  t        j                  ||      }d d d        t        j                  t        j                  d| j                        5  t        j                        cd d d        S # 1 sw Y   WxY w# 1 sw Y   y xY w)Nr   )	r   	swap_itemsysmodulesrD   pickledumpsmodule2loads)r   r  protopickleds       r   copyzOperatorPickleTestCase.copyf  s    s{{JD 	/ll3.G	/s{{JE 	)<<(	) 	)	/ 	/	) 	)s   B>B)B&)B2c                    | j                   j                  } G d d      } |       }d|_        d|_        d|_         |       |_         |       |j
                  _        d|j
                  j                  _        t        t        j                  dz         D ]4  }| j                  |      5   |d	      }| j                  ||      }| j                  t        |      t        |             | j                   ||       ||              |d	d
d      }| j                  ||      }| j                  t        |      t        |             | j                   ||       ||              |d      }| j                  ||      }| j                  t        |      t        |             | j                   ||       ||             d d d        7 y # 1 sw Y   CxY w)Nc                       e Zd Zy)1OperatorPickleTestCase.test_attrgetter.<locals>.ANr  r1   r   r   r  r  n  r	  r   r  r  r  r  VrS   r  r  r  r  zt.u.v)rD   r  r  r  r  rL  ur   r   r  HIGHEST_PROTOCOLsubTestr  r   repr)r   r  r  r   r  r  f2s          r   r!  z&OperatorPickleTestCase.test_attrgetterl  s   [[++
	 	Cc622Q67 	.EE* .sOYYq%(  b473  A!-sC-YYq%(  b473  A!-w'YYq%(  b473  A!-. .	.. .s   ,DGG	c                 8   | j                   j                  }d}t        t        j                  dz         D ]  }| j                  |      5   |d      }| j                  ||      }| j                  t        |      t        |             | j                   ||       ||              |ddd      }| j                  ||      }| j                  t        |      t        |             | j                   ||       ||             d d d         y # 1 sw Y   xY w)Nr#  rS   r  rV   r   r   )	rD   rA  r   r  r  r  r  r   r  )r   rA  r   r  r  r  s         r   rM  z&OperatorPickleTestCase.test_itemgetter  s    [[++
622Q67 
	.EE* 	.qMYYq%(  b473  A!-q!Q'YYq%(  b473  A!-	. 	.
	.	. 	.s   
B;DD	c                    | j                   j                  } G d d      } |       }t        t        j                  dz         D ]q  }| j                  |      5   |d      }| j                  ||      }| j                  t        |      t        |             | j                   ||       ||              |ddd      }| j                  ||      }| j                  t        |      t        |             | j                   ||       ||              |dd	      }| j                  ||      }| j                  t        |      t        |             | j                   ||       ||              |d
dd      }| j                  ||      }| j                   ||       ||             d d d        t y # 1 sw Y   xY w)Nc                        e Zd Zd ZddZd Zy)3OperatorPickleTestCase.test_methodcaller.<locals>.Ac                     |d   |d   z   S rR  r1   rS  s      r   r  z7OperatorPickleTestCase.test_methodcaller.<locals>.A.foo  rV  r   c                     |S r   r1   rX  s     r   rY  z7OperatorPickleTestCase.test_methodcaller.<locals>.A.bar  rZ  r   c                      |d   |d   fS r\  r1   r]  s     r   r^  z7OperatorPickleTestCase.test_methodcaller.<locals>.A.baz  r_  r   Nr`  ra  r1   r   r   r  r    rb  r   r  rS   r  rY  r  rV   r   rd  r^  re  rc  r  )	rD   rf  r   r  r  r  r  r   r  )r   rf  r  r   r  r  r  s          r   rg  z(OperatorPickleTestCase.test_methodcaller  s   {{//	2 	2 C622Q67 	.EE* . 'YYq%(  b473  A!- 1-YYq%(  b473  A!- !,YYq%(  b473  A!- V&AYYq%(  A!-%. .	.. .s   EF::G	N)r.   r/   r0   r  r!  rM  rg  r1   r   r   r  r  e  s    ).8..r   r  c                       e Zd ZeZeZy)PyPyOperatorPickleTestCaseN)r.   r/   r0   r  rD   r  r1   r   r   r  r    s    FGr   r  c                       e Zd ZeZeZy)PyCOperatorPickleTestCaseN)r.   r/   r0   r  rD   r  r  r1   r   r   r  r    s    FGr   r  c                       e Zd ZeZeZy)CPyOperatorPickleTestCaseN)r.   r/   r0   r  rD   r  r  r1   r   r   r  r    s    FGr   r  c                       e Zd ZeZeZy)CCOperatorPickleTestCaseN)r.   r/   r0   r  rD   r  r1   r   r   r  r    s    FGr   r  __main__)unittestr  r  decimalr   	fractionsr   testr   test.supportr   import_fresh_moduler  r  r   rl   r4   r<   rA   TestCaser  
skipUnlessr  r  r  r  r  r  r.   mainr1   r   r   <module>r     s     
    & 0m//
9DG.]..z6A]D
    6     
j, j,X)8+<+<  Z!56((*;*;  7O. O.b!79J9J  Z!56 68I8I  7 Z!56 68I8I  7 Z!565x7H7H  7
 zHMMO r   