
    daf                        d 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	 ddl
Z
ddlZddlZddlZddlZddlZddlmZ  ej                  d      j$                  Z G d	 d
ej                        Z G d dej                        ZdZ G d dej.                        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/ G d& d'ej.                        Z0 G d( d)      Z1 G d* d+e1      Z2 G d, d-e2ej.                        Z3 G d. d/e1      Z4 G d0 d1e4      Z5 G d2 d3      Z6 G d4 d5e5      Z7 G d6 d7e5      Z8 G d8 d9e7ej.                        Z9 G d: d;e8ej.                        Z: G d< d=e7ej.                        Z; G d> d?e8ej.                        Z< G d@ dAe7ej.                        Z= G dB dCe8ej.                        Z> G dD dEe7ej.                        Z? G dF dGe8ej.                        Z@ G dH dIe7ej.                        ZA G dJ dKe8ej.                        ZB G dL dMe4      ZC G dN dOeCej.                        ZD G dP dQeCej.                        ZE G dR dSej.                        ZFeGdTk(  r ej                          yy)Uz(Test the arraymodule.
   Roger E. Masse
    N)support)import_helper)	os_helper)_2G)_array_reconstructoruc                       e Zd Zy)ArraySubclassN)__name__
__module____qualname__     */root/Python-3.12.4/Lib/test/test_array.pyr
   r
      s    r   r
   c                       e Zd ZddZy)ArraySubclassWithKwargsNc                 B    t         j                   j                  |        y N)array__init__)selftypecodenewargs      r   r   z ArraySubclassWithKwargs.__init__   s    T"r   r   )r   r   r   r   r   r   r   r   r      s    #r   r   ubBhHiIlLfdqQc                   f    e Zd Zd Zd Zej                  d        Zej                  d        Zd Z	y)MiscTestc                     | j                  t        j                  d      t        j                  j                         | j                  t        j                  d      t        j                  j
                         y )NB)assertIsInstancer   collectionsabcMutableSequence
Reversibler   s    r   test_array_is_sequencezMiscTest.test_array_is_sequence"   sH    ekk#.0O0OPekk#.0J0JKr   c                 ,   | j                  t        t        j                         | j                  t        t        j                  d       | j                  t        t        j                  d       | j                  t        t        j                  d       y )N*   )spamxxx)assertRaises	TypeErrorr   
ValueErrorr$   s    r   test_bad_constructorzMiscTest.test_bad_constructor&   s[    )U[[1)U[[r:)U[[$7*ekk37r   c                     t        j                   d      }t        j                  | t        t	        |            |       y )NI)r   r   check_disallow_instantiationtypeiter)r   my_arrays     r   test_disallow_instantiationz$MiscTest.test_disallow_instantiation,   s.    ;;s#,,$tH~&	
r   c                     | j                  t              5  dt        j                  _        d d d        y # 1 sw Y   y xY wN   )r+   r,   r   foor$   s    r   test_immutablezMiscTest.test_immutable3   s2     y) 	 EKKO	  	  	 s   5>c                 &   t        j                   d      }||d d  | j                  t        |      d       | j                  t        ||z         d       | j                  t        |dz        d       ||z  }| j                  t        |      d       y )Nr   r      )r   assertEquallenr   as     r   
test_emptyzMiscTest.test_empty9   sz    KK!Q#QUQ'QUQ'	QQ#r   N)
r   r   r   r%   r.   r   cpython_onlyr5   r:   rA   r   r   r   r   r       sF    L8 
 
    
$r   r   r8      r<                  	   
                                    c                       e Zd Zd Zd Zd Zy)ArrayReconstructorTestc                    | j                  t        t        dddd       | j                  t        t        t        ddd       | j                  t        t        t        j                  ddd       | j                  t        t        t        j                  ddd       | j                  t
        t        t        j                  ddd       | j                  t
        t        t        j                  dt        d       | j                  t
        t        t        j                  ddd       | j                  t
        t        t        j                  ddd	       y )
N br   r   ?   drQ      a)r+   r,   array_reconstructorstrr   r-   UNKNOWN_FORMATr$   s    r   
test_errorz!ArrayReconstructorTest.test_errorb   s    )%8c1c	+)%8sAs	,)%8++sB	5)%8++sAr	3*&9++sAs	4*&9++sNC	A*&9++sB	5*&9++sB	6r   c                    g dt         dg dfg dt        dg dfg dt        dg d	fg dt        d
g d	fg dt        dg dfg dt
        dg dfddgt        dg dfddgt        dg dfddgt        dg dfddgt        dg dfdgt        dg dfdgt        dg dfdgt        dg dfdgt        dg dfdgt        dg dfdgt        dg dfdgt        dg dfdgt        dg dfdgt        d d!t        d"      t        d#      d$gfdgt         d%d!t        d"      t        d#      d$gfd&gt"        d'd(t        d"      t        d#      d$gfd&gt$        d)d(t        d"      t        d#      d$gff}|D ]~  }|\  }}}}t'        j(                  |g| }|D ]Z  }	 t+        j*                  ||      }	t/        t*        j*                  |||      }
| j1                  |	|
d*j3                  |	|
|      +       \  y # t,        $ r Y kw xY w),N)r   Hr0   Lz=BBBB)      r      )r[   hilz=bbb)irh   r   )re   r0   rf   z<HHHH)i     r   i  z>HHHH)rj   rk   rl   z<hhh)i rm   r   z>hhhr0   rf   z<IIII)l        r   l    z>IIIIrk   rl   z<iii)i   rn   r   z>iiiz<QQQQz>QQQQz<qqqz>qqq)l                r   l    )l         ro   r   fz<ffffg   @ oAinfz-infg       z>ffffr^   z<ddddg?Cz>dddd{0!r} != {1!r}; testcase={2!r}msg)UNSIGNED_INT8SIGNED_INT8UNSIGNED_INT16_LEUNSIGNED_INT16_BESIGNED_INT16_LESIGNED_INT16_BEUNSIGNED_INT32_LEUNSIGNED_INT32_BESIGNED_INT32_LESIGNED_INT32_BEUNSIGNED_INT64_LEUNSIGNED_INT64_BESIGNED_INT64_LESIGNED_INT64_BEIEEE_754_FLOAT_LEfloatIEEE_754_FLOAT_BEIEEE_754_DOUBLE_LEIEEE_754_DOUBLE_BEstructpackr   OverflowErrorr`   r=   format)r   	testcasestestcasevalid_typecodesmformat_code
struct_fmtvaluesarraystrr   r@   r[   s              r   test_numbersz#ArrayReconstructorTest.test_numberst   s   !='"$!;/(*/(*ov!#ov!#3Z*G-/3Z*G-/3Z&#%3Z&#%U%w-/U%w-/UOV#%UOV#%
 U%w-/U%w-/UOV#%UOV#%U%w%,ft<>U%w%,ft<>U& %,ftDFU& %,ftDF]0
	b " 	QH@H=O\:v{{:77H+ QHf5A (KK<C  A8??1hO ! QQ	Q % s   G))	G54G5c           
      (   d}t         dft        dft        dft        dff}|D ]m  }|\  }}t	        j                  d|      }t        t        j                  d||j                  |            }| j                  ||dj                  |||             o y )	Nu   Bonne Journée 𠌊𠍇z	UTF-16-LEz	UTF-16-BEz	UTF-32-LEz	UTF-32-BEr   rr   rs   )	UTF16_LEUTF16_BEUTF32_LEUTF32_BEr   r`   encoder=   r   )r   teststrr   r   r   encodingr@   r[   s           r   test_unicodez#ArrayReconstructorTest.test_unicode   s    9{#{#{#{#	
	 " 	MH%-"L(C)A#S,x0HJAQ4;;Aq(K  M	Mr   N)r   r   r   rc   r   r   r   r   r   rX   rX   `   s    6$=Q~Mr   rX   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.d- Z/d. Z0d/ Z1 e2jf                   e4e5d0      d1      d2        Z6d3 Z7d4 Z8e9jt                  d5        Z;e9jt                  d6        Z<d7 Z=e9jt                  d8        Z>d9 Z?y:);BaseTestc                 (    | j                  ||       y r   )r=   r   entry1entry2s      r   assertEntryEqualzBaseTest.assertEntryEqual   s    (r   c                 t    t         t         j                  | j                        dz   t        t               z     S r7   )	typecodesindexr   r>   r$   s    r   badtypecodezBaseTest.badtypecode   s(    )//$--8:c)nLMMr   c                 :   t        j                   | j                        }| j                  |j                  | j                         | j                  |j                  | j
                         | j                  t        t         j                   | j                  d        y r   )r   r   r=   assertGreaterEqualitemsizeminitemsizer+   r,   r?   s     r   test_constructorzBaseTest.test_constructor   sb    KK&T]]3

D,<,<=)U[[$--Fr   c                 d   t        j                   | j                        }|j                  | j                  d          | j	                  t        |      d       t        j                   | j                  | j                        }| j	                  t        |      t        | j                               y Nr   r8   )r   r   appendexampler=   r>   r?   s     r   test_lenzBaseTest.test_len   sq    KK&	a!Q#KKt||4QT\\!23r   c                    t        j                   | j                  | j                        }| j                  t        |j
                  d       |j                         }| j                  |t               | j                  t        |      d       | j                  |d   t               | j                  |d   t               | j                  |d   t        |             y )Nr'   rD   r   r8   )r   r   r   r+   r,   buffer_infor   tupler=   r>   int)r   r@   bis      r   test_buffer_infozBaseTest.test_buffer_info   s    KKt||4)Q]]B7]]_b%(R!$beS)beS)AA'r   c                    | j                   dk(  rd}n| j                  }t        j                  | j                   |      }| j                  t        |j
                  d       |j                  dv rt        j                  | j                   |      }|j                          |j                  dk(  r| j                  ||       n| j                  ||       |j                          | j                  ||       y y )Nr   u   􀄀r'   r8   rD   rE   rI   r8   )	r   r   r   r+   r,   byteswapr   r=   assertNotEqual)r   r   r@   r[   s       r   test_byteswapzBaseTest.test_byteswap   s    ==C"GllGKKw/)QZZ4::%DMM73AJJLzz1}  A&##Aq)JJLQ" &r   c                     dd l }t        j                  | j                  | j                        }|j                  |      }| j	                  t        |      t        |             | j                  ||       y Nr   )copyr   r   r   r   idr=   r   r   r@   r[   s       r   	test_copyzBaseTest.test_copy   sR    KKt||4IIaLBqE2a5)Ar   c                     dd l }t        j                  | j                  | j                        }|j	                  |      }| j                  t        |      t        |             | j                  ||       y r   )r   r   r   r   deepcopyr   r   r=   r   s       r   test_deepcopyzBaseTest.test_deepcopy  sS    KKt||4MM!BqE2a5)Ar   c                 p   t        j                   | j                  | j                        }t        d      D ]4  }| j	                  |j                  |      d   t         j                          6 t        dt        j                  dz         D ]*  }| j	                  |j                  |      d   t               , y )Nr<   r   r8   )	r   r   r   rangeassertIs__reduce_ex__pickleHIGHEST_PROTOCOLr`   )r   r@   protocols      r   test_reduce_exzBaseTest.test_reduce_ex  s    KKt||4a 	EHMM!//(3A6D	Ea!8!81!<= 	MHMM!//(3A68KL	Mr   c                    t        t        j                  dz         D ]\  }t        j                  | j                  | j
                        }t        j                  t        j                  ||            }| j                  t        |      t        |             | j                  ||       t        | j                  | j
                        }d|_        t        j                  t        j                  ||            }| j                  t        |      t        |             | j                  ||       | j                  |j                  |j                         | j                  t        |      t        |             _ y Nr8   rK   )r   r   r   r   r   r   loadsdumpsr   r   r=   r
   r*   r2   r   r   r@   r[   s       r   test_picklezBaseTest.test_pickle  s   f559: 	/HDMM4<<8AV\\!X67A1r!u-Q"dmmT\\:AACV\\!X67A1r!u-Q"QSS!##&T!Wd1g.	/r   c                    t        t        j                  dz         D ]F  }t        j                  | j                        }t        j
                  t        j                  ||            }| j                  t        |      t        |             | j                  ||       t        | j                        }d|_        t        j
                  t        j                  ||            }| j                  t        |      t        |             | j                  ||       | j                  |j                  |j                         | j                  t        |      t        |             I y r   )r   r   r   r   r   r   r   r   r   r=   r
   r*   r2   r   s       r   test_pickle_for_empty_arrayz$BaseTest.test_pickle_for_empty_array!  s    f559: 	/HDMM*AV\\!X67A1r!u-Q"dmm,AACV\\!X67A1r!u-Q"QSS!##&T!Wd1g.	/r   c                 :   t        j                   | j                  | j                        }t        |      }|d d d   }t	        t
        j                  dz         D ]>  }t        |      }t        j                  ||f|      }t        j                  |      \  }}|j                  |       | j                  t        |      t        |             | j                  t        |      ||z          t        |       t        j                  ||f|      }t        j                  |      \  }}|j                  |       | j                  t        |      t        |             | j                  t        |      |dd  |z          t	        dt        |            D ]  }	t        |        t        j                  ||f|      }t        j                  |      \  }}|j                  |       | j                  t        |      t        |             | j                  t        |      |       | j                  t         t        |       t        j                  ||f|      }t        j                  |      \  }}|j                  |       | j                  t        |      g        A y )NrC   r8   )r   r   r   listr   r   r   r3   r   r   fromlistr=   r2   nextr>   r+   StopIteration)
r   origdatadata2protoitorigr^   itr@   rk   s
             r   test_iterator_picklezBaseTest.test_iterator_pickle0  s   {{4==$,,7DzTrT
622Q67 	+E$ZFfd^U3ALLOEBJJuT"XtF|4T"Xte|4 Lfd^U3ALLOEBJJuT"XtF|4T"XtABx%'78 1c$i( Vfd^U3ALLOEBJJuT"XtF|4T"Xu- mT6:fd^U3ALLOEBJJuT"Xr*?	+r   c                 4   t        j                   | j                  | j                        }| j                  t	        |      t	        | j                               t        |      }t        |      }|D ]  }t        |        |j                  | j                         | j                  t	        |      g        | j                  t	        |      | j                  g       | j                  t	        |      t	        | j                        | j                  gz          y r   )	r   r   r   r=   r   r3   r   r   outsider   r@   exhitempitr*   s        r   test_exhausted_iteratorz BaseTest.test_exhausted_iteratorU  s    KKt||4a$t||"45QQ 	AK		eb)et||n5a$t||"4~"EFr   c                 ,   t        j                   | j                  | j                        }| j                  t	        |      t	        | j                               | j                  t	        t        |            t	        t        |            d d d          y NrC   )r   r   r   r=   r   reversedr3   r?   s     r   test_reverse_iteratorzBaseTest.test_reverse_iteratora  sa    KKt||4a$t||"45hqk*DaM$B$,?@r   c                    t        j                   | j                  | j                        }t        |      }| j                  g|z   }|t        |      dz
  d d   | j                  gz   }t        t        j                  dz         D ]  }t        |      }t        j                  ||f|      }t        j                  |      \  }}	|	j                  d| j                         | j                  t        |      t        |             | j                  t        |      |       | j                  t        |	      |       t        |       t        j                  ||f|      }t        j                  |      \  }}	|	j                  d| j                         | j                  t        |      t        |             | j                  t        |      |dd         | j                  t        |	      |       t        dt        |            D ]  }
t        |        t        j                  ||f|      }t        j                  |      \  }}	|	j                  d| j                         | j                  t        |      t        |             | j                  t        |      g        | j                  t        |	      |       | j!                  t"        t        |       t        j                  ||f|      }t        j                  |      \  }}	|	j                  d| j                         | j                  t        |      g        | j                  t        |	      |        y )NrD   rC   r8   r   )r   r   r   r   r   r>   r   r   r   r   r   r   insertr=   r2   r   r+   r   )r   r   r   r   rev_datar   r   r^   r   r@   rk   s              r   test_reverse_iterator_pickingz&BaseTest.test_reverse_iterator_pickingf  s   {{4==$,,7Dz%D	!R(DLL>9622Q67 #	-Ed^Ffd^U3ALLOEBHHQ%T"XtF|4T"Xx0T!We, Lfd^U3ALLOEBHHQ%T"XtF|4T"Xx|4T!We, 1c$i( Vfd^U3ALLOEBHHQ%T"XtF|4T"Xr*T!We, mT6:fd^U3ALLOEBHHQ%T"Xr*T!We,G#	-r   c                     t        j                   | j                  | j                        }| j                  t	        |      t	        | j                               t        |      }t        |      }|D ]  }t        |        |j                  d| j                         | j                  t	        |      g        | j                  t	        |      g        | j                  t	        |      | j                  gt	        | j                        z          y r   )	r   r   r   r=   r   r   r   r   r   r   s        r   test_exhausted_reverse_iteratorz(BaseTest.test_exhausted_reverse_iterator  s    KKt||4a$t||"45 	AK		DLL!eb) 	eb)a4<<.43E"EFr   c           
         t        j                   | j                  | j                        }|j                  d| j                  d          | j	                  t        |      dt        | j                        z          | j	                  |d   |d          | j                  t        |j                         | j                  t        |j                  d        | j                  t        |j                  dd        t        j                   | j                  | j                        }|j                  d| j                  d          | j	                  |t        j                   | j                  | j                  d d | j                  d d z   | j                  dd  z                t        j                   | j                  | j                        }|j                  d| j                  d          | j	                  |t        j                   | j                  | j                  d d | j                  z                t        j                   | j                  | j                        }|j                  d| j                  d          | j	                  |t        j                   | j                  | j                  | j                  d d z                y )Nr   r8   rC     )r   r   r   r   r=   r>   r+   r,   r?   s     r   test_insertzBaseTest.test_insert  s   KKt||4	DLLO$Q3t||#4!451qt$)QXX.)QXXt4)QXXq$7KKt||4	T\\!_%KKSb!DLL!$44t||BC7HH	
 KKt||4	Q(KKt||BQ'7$,,'FG	

 KKt||4	t||A'KKt||dll2A6F'FG	
r   c                    t        j                   | j                  d| j                  z        }| j                  t        |j
                         t        j                  t        j                         t        t        j                  d      }	 |j                  |       |j                          t        j                   | j                        }t        t        j                  d      }| j                  t        |j                         |j                  |t        | j                               | j                  |t        j                   | j                  | j                               | j                  ||       | j                  t        |j                  |t        | j                        dz          | j                  ||       |j                          |j                   s|j                          t        j                  t        j                         y # |j                   s|j                          t        j                  t        j                         w xY w)NrD   wbrbr8   )r   r   r   r+   r,   tofiler   unlinkTESTFNopenclosefromfiler>   r=   r   EOFErrorclosedr   r@   rp   r[   s       r   test_tofromfilezBaseTest.test_tofromfile  s~   KKq~6)QXX.))*!!4(	/HHQKGGIDMM*AY%%t,Ai4JJq#dll+,QDMM4<< HI1%h

As4<<7H7JKQ"GGI88	Y--. 88	Y--.s   EH AIc                    t        j                   | j                        }t        t        j                  d      }	 | j                  t        |j                  |t        | j                               |j                          t        j                  t        j                         y # |j                          t        j                  t        j                         w xY w)Nr   )r   r   r   r   r   r+   OSErrorr   r>   r   r   r   )r   r@   rp   s      r   test_fromfile_ioerrorzBaseTest.test_fromfile_ioerror  s     KK&!!4(	/gqzz1c$,,6GHGGIY--. GGIY--.s   5B$ $5Cc                    t        j                   | j                  d| j                  z        }t        t        j
                  d      }	 |j                  |       |j                          t        j                   | j                        }t        t        j
                  d      }|j                  |t        | j                               | j                  |t        j                   | j                  | j                               | j                  ||       |j                  |t        | j                               | j                  ||       |j                          |j                  s|j                          t	        j                  t        j
                         y # |j                  s|j                          t	        j                  t        j
                         w xY w)NrD   r   r   )r   r   r   r   r   r   writer   r   r>   r=   r   r   r   r  s       r   test_filewritezBaseTest.test_filewrite  s3   KKq~6!!4(	/GGAJGGIDMM*AY%%t,AJJq#dll+,QDMM4<< HI1%JJq#dll+,Q"GGI88	Y--. 88	Y--.s   	DF AGc                    t        j                   | j                  d| j                  z        }t        j                   | j                        }| j                  t        |j
                  d       | j                  t        |j                         | j                  t        |j                  d       | j                  t        |j                  d g       |j                  |j                                | j                  ||       y )NrD   r'   )r   r   r   r+   r,   tolistr   r=   r   r@   r[   s      r   test_tofromlistzBaseTest.test_tofromlist  s    KKq~6KK&)QXXr2)QZZ0)QZZ4)QZZ$8	

188:Ar   c                    t        j                   | j                  d| j                  z        }t        j                   | j                        }| j                  t        |j
                  d       | j                  t        |j                         | j                  t        |j                  d       |j                  |j                                t        j                   | j                  t        |j                                     }| j                  ||       | j                  ||       |j                  dkD  r"| j                  t        |j                  d       y y )NrD   r'   r8      x)r   r   r   r+   r,   tobytes	frombytes	bytearrayr=   r   r-   )r   r@   r[   cs       r   test_tofrombyteszBaseTest.test_tofrombytes  s    KKq~6KK&)QYY3)Q[[1)Q[["5	AIIK KKy'=>AA::a<j!++t< r   c                     t        j                   | j                  | j                        }t        j                   | j                  |      }| j                  ||       y r   r   r   r   r=   r  s      r   test_fromarrayzBaseTest.test_fromarray
  s>    KKt||4KKq)Ar   c                 V   t        j                   | j                  d| j                  z        }| j                  |t	        t        |      dt         j                   i             t        j                   | j                        }| j                  t        |      d| j                  z         y )NrD   r   zarray('%s'))r   r   r   r=   evalreprr?   s     r   	test_reprzBaseTest.test_repr  sq    KKq~6Da7EKK*@ABKK&a-$--"?@r   c                 t    t        j                   | j                  d| j                  z        }t        |       y )NrD   )r   r   r   ra   r?   s     r   test_strzBaseTest.test_str  s%    KKq~6Ar   c                 h   t        j                   | j                  | j                        }| j                  |dk(  d       | j                  |dk7  d       | j                  ||k(  d       | j                  ||k7  d       | j                  ||k  d       | j                  ||k  d       | j                  ||kD  d       | j                  ||k\  d       t        j                   | j                  | j                        }t        j                   | j                  | j
                        }| j                  |d|z  k(  d       | j                  |d|z  k7  d       | j                  |d|z  k  d       | j                  |d|z  k  d       | j                  |d|z  kD  d       | j                  |d|z  k\  d       | j                  ||k(  d       | j                  ||k7  d       | j                  ||k  d       | j                  ||k  d       | j                  ||kD  d       | j                  ||k\  d       | j                  ||k(  d       | j                  ||k7  d       | j                  ||k  d       | j                  ||k  d       | j                  ||kD  d       | j                  ||k\  d       y )Nr'   FTrD   )r   r   r   r   smallerexamplebiggerexample)r   r@   alabs       r   test_cmpzBaseTest.test_cmp  s:   KKt||4a2gu%a2gt$a1fd#a1fe$a!eU#a1fd#a!eU#a1fd#[[(;(;<[[(:(:;a1Q3h&a1Q3h%a!A#gt$a1Q3h%a!A#gu%a1Q3h&a2gu%a2gt$a"fe$a2gu%a"fd#a2gt$a2gu%a2gt$a"fd#a2gt$a"fe$a2gu%r   c                    t        j                   | j                  | j                        t        j                   | j                  | j                  d d d         z   }| j                  |t        j                   | j                  | j                  | j                  d d d   z                t        j                   | j	                               }| j                  t        |j                  |       | j                  t        |j                  d       y )NrC   bad)r   r   r   r=   r   r+   r,   __add__r  s      r   test_addzBaseTest.test_add>  s    KKt||4kk$--dd);<=KKt||dll4R46H'HI	

 KK((*+)QYY2)QYY6r   c           
      B   t        j                   | j                  | j                  d d d         }|}|t        j                   | j                  d| j                  z        z  }| j                  ||       | j	                  |t        j                   | j                  | j                  d d d   d| j                  z  z                t        j                   | j                  | j                        }||z  }| j	                  |t        j                   | j                  | j                  | j                  z                t        j                   | j                               }| j                  t        |j                  |       | j                  t        |j                  d       y )NrC   rD   r$  )
r   r   r   r   r=   r   r+   r,   r%  __iadd__r  s      r   	test_iaddzBaseTest.test_iaddK  s,   KKt||DbD'9:	U[[$,,77aKKt||DbD'9!DLL.'HI	
 KKt||4	QKKt||dll'BC	

 KK((*+)QYY2)QZZ7r   c                 ,   dt        j                   | j                  | j                        z  }| j                  |t        j                   | j                  d| j                  z               t        j                   | j                  | j                        dz  }| j                  |t        j                   | j                  | j                  dz               dt        j                   | j                  | j                        z  }| j                  |t        j                   | j                               dt        j                   | j                  | j                        z  }| j                  |t        j                   | j                               dt        j                   | j                  | j                  d d       z  }| j                  |t        j                   | j                  |d   gdz               | j	                  t
        |j                  d       y )NrF   r   rC   r8   r$  )r   r   r   r=   r+   r,   __mul__r?   s     r   test_mulzBaseTest.test_mul`  s   ekk$--66KKq~6	

 KKt||4Q6KKt||A~6	

 ekk$--66KK&	

 T]]DLL99KK&	

 DMM4<<+;<<KK!vz2	

 	)QYY6r   c                    t        j                   | j                  | j                        }|}|dz  }| j                  ||       | j	                  |t        j                   | j                  d| j                  z               |dz  }| j                  ||       | j	                  |t        j                   | j                               |dz  }| j                  ||       | j	                  |t        j                   | j                               |dz  }| j                  ||       | j	                  |t        j                   | j                               t        j                   | j                  | j                        }|dz  }| j	                  |t        j                   | j                               | j                  t        |j                  d       y )NrF   r   r   rC   r$  )r   r   r   r   r=   r+   r,   __imul__r  s      r   	test_imulzBaseTest.test_imul  sS   KKt||4	QaKKq~6	

 	
QaEKK67	T	aEKK67	RaEKK67KKt||4	REKK67)QZZ7r   c                 \   t        j                   | j                  | j                        }| j                  |d   | j                  d          | j                  |d   | j                  d          | j                  |d   | j                  d          | j                  |d   | j                  d          | j                  |t	        | j                        dz
     | j                  d          | j                  |t	        | j                            | j                  d          | j                  t        |j                         | j                  t        |j                  t	        | j                               | j                  t        |j                  t	        | j                         dz
         y )Nr   rC   r8   )	r   r   r   r   r>   r+   r,   __getitem__
IndexErrorr?   s     r   test_getitemzBaseTest.test_getitem  s;   KKt||4adDLLO4adDLLO4aeT\\"%56aeT\\"%56aDLL 1! 34dll26FGaT\\!2 23T\\!_E)Q]]3*ammS5FG*ammc$,,6G5G5IJr   c                    t        j                   | j                  | j                        }|d   |d<   | j                  |d   |d          t        j                   | j                  | j                        }|d   |d<   | j                  |d   |d          t        j                   | j                  | j                        }|d   |d<   | j                  |d   |d          t        j                   | j                  | j                        }|d   |d<   | j                  |d   |d          t        j                   | j                  | j                        }|d   |t	        | j                        dz
  <   | j                  |d   |d          t        j                   | j                  | j                        }|d   |t	        | j                         <   | j                  |d   |d          | j                  t        |j                         | j                  t        |j                  d        | j                  t        |j                  dd        | j                  t        |j                  t	        | j                        | j                  d          | j                  t        |j                  t	        | j                         dz
  | j                  d          y )NrC   r   r8   )	r   r   r   r   r>   r+   r,   __setitem__r2  r?   s     r   test_setitemzBaseTest.test_setitem  s4   KKt||4u!adAbE*KKt||4u!adAbE*KKt||4!"adAbE*KKt||4!"adAbE*KKt||4!"1#dll
A
adAbE*KKt||4 !"3t||
adAbE*)Q]]3)Q]]D9)Q]]At<MMt||A	

 	MMq $,,q/	
r   c           	         t        j                   | j                  | j                        }|d= | j                  |t        j                   | j                  | j                  dd               t        j                   | j                  | j                        }|d= | j                  |t        j                   | j                  | j                  d d              t        j                   | j                  | j                        }|t	        | j                        dz
  = | j                  |t        j                   | j                  | j                  d d              t        j                   | j                  | j                        }|t	        | j                         = | j                  |t        j                   | j                  | j                  dd               | j                  t        |j                         | j                  t        |j                  d        | j                  t        |j                  t	        | j                               | j                  t        |j                  t	        | j                         dz
         y )Nr   r8   rC   )	r   r   r   r=   r>   r+   r,   __delitem__r2  r?   s     r   test_delitemzBaseTest.test_delitem  s   KKt||4aDKKt||AB'78	

 KKt||4bEKKt||CR'89	

 KKt||4c$,,!"KKt||CR'89	

 KKt||4s4<<  !KKt||AB'78	

 	)Q]]3)Q]]D9*ammS5FG*ammc$,,6G5G5IJr   c           	         t        j                   | j                  | j                        }| j                  |d d  |       | j                  |dd  t        j                   | j                  | j                  dd               | j                  |d d t        j                   | j                  | j                  d d              | j                  |d d t        j                   | j                  | j                  d d              | j                  |dd  t        j                   | j                  | j                  dd               | j                  |dd t        j                   | j                               | j                  |dd t        j                   | j                               | j                  |dd  t        j                   | j                               | j                  |dd  |       | j                  |d d |       | j                  |d d t        j                   | j                               | j                  |dd |       | j                  |dd t        j                   | j                               y )Nr8   rC   rD   r   r     r  r?   s     r   test_getslicezBaseTest.test_getslice  s   KKt||41q!abEKKt||AB'78	

 	bqEKKt||BQ'78	

 	crFKKt||CR'89	

 	bcFKKt||BC'89	

 	bHKK&	

 	aFKK&	

 	deHKK&	
 	56A&5D1%fuIKK&	
 	5*d4LKK&	
r   c                    t        j                   | j                  | j                        }dd ddddt        j                  dddd	f}|D ]C  }|D ]<  }|dd  D ]2  }| j                  t        ||||         t        |      |||          4 > E y 
Nr   r8   r<   rT   d   rC   i)r   r   r   sysmaxsizer=   r   )r   r@   indicesstartstopsteps         r   test_extended_getslicezBaseTest.test_extended_getslice%  s     KKt||4dAq"c3;;BTJ 	?E ?#ABK ?D$$T!E$tO*<%=%)!WU4_%=???	?r   c           
         t        j                   | j                  | j                        }||d d | j                  |t        j                   | j                  | j                  | j                  dd  z                t        j                   | j                  | j                        }||d d | j                  |t        j                   | j                  | j                  | j                  dd  z                t        j                   | j                  | j                        }||dd  | j                  |t        j                   | j                  | j                  d d | j                  z                t        j                   | j                  | j                        }||dd  | j                  |t        j                   | j                  | j                  d d | j                  z                t        j                   | j                  | j                        }||dd | j                  |t        j                   | j                  | j                  d d | j                  z   | j                  dd  z                t        j                   | j                  | j                        }||dd  | j                  |t        j                   | j                  d| j                  z               t        j                   | j                  | j                        }||dd  | j                  |t        j                   | j                  | j                               t        j                   | j                  | j                        }||d d | j                  |t        j                   | j                  | j                               t        j                   | j                  | j                        }||d d | j                  |t        j                   | j                  d| j                  z               t        j                   | j                  | j                        }||dd | j                  |t        j                   | j                  | j                  d d | j                  z   | j                  dd  z                t        j                   | j                  | j                        }||dd | j                  |t        j                   | j                  d| j                  z               t        j                   | j                  | j                        }| j	                  t
        |j                  t        dd      d        | j	                  t
        |j                  t        dd      d        t        j                   | j                               }| j	                  t
        |j                  t        dd      |       | j	                  t
        |j                  t        dd      |       y )Nr8   rC   r   rD   r   r   r;  )	r   r   r   r=   r+   r,   r5  slicer   r  s      r   test_setslicezBaseTest.test_setslice1  s   KKt||4"1KKt||dll126F'FG	

 KKt||4#2KKt||dll236G'GH	

 KKt||4"#KKt||CR'84<<'GH	

 KKt||4!"KKt||BQ'7$,,'FG	

 KKt||4!BKKRa 4<</$,,rs2CC	
 KKt||4$%KKq~6	

 KKt||4%&	KKt||4	

 KKt||4%4KKt||4	

 KKt||4&5	KKq~6	

 KKt||4!AKKt||BQ'7$,,'FVWVXIY'YZ	

 KKt||4$tKKq~6	

 KKt||4)Q]]E!QKF)Q]]E!QKFKK((*+)Q]]E!QKC)Q]]E!QKCr   c                 8   dd ddddt         j                  dddd	f}|D ]  }|D ]  }|dd  D ]  }t        j                  | j                  | j                        }t        |      }||||   }|j                          |||||<   t        j                  | j                  |      ||||<   | j                  |t        j                  | j                  |             ||||= ||||= | j                  |t        j                  | j                  |                y r>  )rB  rC  r   r   r   r   reverser=   )r   rD  rE  rF  rG  r@   rf   r   s           r   test_extended_set_del_slicez$BaseTest.test_extended_set_del_slice  s    dAq"c3;;BTJ 	GE G#ABK GDDMM4<<@AQA U4_-DLLN)-AeDo&).T]]D)IAeDo&$$QDMM1(EF%T/*%T/*$$QDMM1(EFGG	Gr   c                 @   d| j                   z  }t        j                  | j                  |      }| j                  t        |j
                         |D ]2  }| j                  |j                  |      |j                  |             4 | j                  t        |j
                  d        | j                  t        |j
                  | j                         t        j                  dg d      }| j                  |j                  d      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd	      d       | j                  |j                  ddd
      d       | j                  |j                  dd	d      d       | j                  t        |j
                  ddd       y )NrD   rk   )r@  rC   r   r   r8   rD   r   r@  ir<   rE   )	r   r   r   r+   r,   r   r=   r-   r   r   r   r@   r*   s       r   
test_indexzBaseTest.test_index  s   DLL.KKw/)QWW- 	;AQWWQZq)9:	;*aggt4*aggt||<KK12Q'A*B+S)1-A*B+Aq)1-B+Q/*aggq!S9r   c                    d| j                   z  }t        j                  | j                  |      }| j                  t        |j
                         |D ]2  }| j                  |j                  |      |j                  |             4 | j                  |j                  | j                        d       | j                  |j                  d       d       y )NrD   r   )r   r   r   r+   r,   countr=   r   rR  s       r   
test_countzBaseTest.test_count  s    DLL.KKw/)QWW- 	;AQWWQZq)9:	;.2*r   c                 0   | j                   D ]  }d| j                   z  }t        j                  | j                  |      }|j                  |      }|d | ||dz   d  z   }|j	                  |       | j                  |t        j                  | j                  |              t        j                  | j                  | j                         }| j                  t        |j                  | j                         | j                  t        |j                  d        y )NrD   r8   )	r   r   r   r   remover=   r+   r-   r   )r   r*   r   r@   posexample2s         r   test_removezBaseTest.test_remove  s     	FAnGDMM73A--"Ct}ws1uv6HHHQKQDMM8 DE	F KKt||4*ahh=*ahh5r   c           
      b   t        j                   | j                        }| j                  t        |j                         t        j                   | j                  d| j
                  z        }| j                  t        |j                  dd       | j                  t        |j                  d        | j                  t        |j                  t        |             | j                  t        |j                  t        |       dz
         | j                  |j	                  d      | j
                  d          | j                  |t        j                   | j                  | j
                  dd  | j
                  z                | j                  |j	                  d      | j
                  d          | j                  |t        j                   | j                  | j
                  dd | j
                  dd  z   | j
                  z                | j                  |j	                  d      | j
                  d          | j                  |j	                         | j
                  d          | j                  |t        j                   | j                  | j
                  dd  | j
                  d d z                y )NrD   r'   r8   r   r<   rC   )
r   r   r+   r2  popr   r,   r>   r   r=   r?   s     r   test_popzBaseTest.test_pop  s   KK&*aee,KKq~6)QUUB3)QUUD1*aeeSV4*aeec!fWQY7aeeAhQ8KKt||AB'7'DE	
 	aeeAhQ8KKt||Aa'8ab9I'I$,,'VW	
 	aeeAhQ8aeegt||B'78KKt||AB'7Sb8I'IJ	
r   c           
      :   t        j                   | j                  | j                        }| j                  t        |j
                  d       |j                          | j                  |t        j                   | j                  | j                  d d d                y )Nr'   rC   )r   r   r   r+   r,   rM  r=   r?   s     r   test_reversezBaseTest.test_reverse  si    KKt||4)QYY3			KKt||DbD'9:	
r   c                 l   t        j                   | j                  | j                        }| j                  t        |j
                         |j                  t        j                   | j                  | j                  d d d                | j                  |t        j                   | j                  | j                  | j                  d d d   z                t        j                   | j                  | j                        }|j                  |       | j                  |t        j                   | j                  | j                  | j                  z                t        j                   | j                               }| j                  t        |j
                  |       t        j                   | j                  | j                        }|j                  | j                  d d d          | j                  |t        j                   | j                  | j                  | j                  d d d   z                y r   )r   r   r   r+   r,   extendr=   r   r  s      r   test_extendzBaseTest.test_extend  s}   KKt||4)QXX.	T]]DLL2,>?@KKt||DLL24F'FG	

 KKt||4	KKt||DLL'@A	

 KK((*+)QXXq1KKt||4	dd#$KKt||DLL24F'FG	
r   c                 0   t        j                   | j                  t        | j                              }t        j                   | j                  | j                        }| j	                  ||       | j                  t        t         j                   | j                  d        G d d      }| j                  t        t         j                   | j                   |              d }| j                  t        t         j                   | j                   |              y )NrK   c                       e Zd Zd Zy);BaseTest.test_constructor_with_iterable_argument.<locals>.Ac                     t         r   UnicodeErrorr$   s    r   __iter__zDBaseTest.test_constructor_with_iterable_argument.<locals>.A.__iter__  s    ""r   N)r   r   r   rj  r   r   r   Arf    s    #r   rk  c               3      K   t         wr   rh  r   r   r   r   z;BaseTest.test_constructor_with_iterable_argument.<locals>.B  s     s   	)r   r   r3   r   r=   r+   r,   ri  )r   r@   r[   rk  r   s        r   'test_constructor_with_iterable_argumentz0BaseTest.test_constructor_with_iterable_argument  s    KKtDLL'9:KKt||4A 	)U[[$--D	# 	# 	,T]]ACH	 	,T]]ACHr   c                     	 dd l }t        j                  | j                        }t        |      g}|j                  |       j                          y # t        $ r | j                  d       Y iw xY w)Nr   zgc module not available)gcImportErrorskipTestr   r   r3   r   collect)r   ro  r@   rl   s       r   test_coveritertraversezBaseTest.test_coveritertraverse  s[    	5 KK&!WI	


  	5MM34	5s   A A0/A0c           	         t        j                   | j                  | j                        }t        |      }|j	                         }| j                  |j	                         |       | j                  |j	                         d   |d          | j                  t        |j                  |d          | j                  |j	                         |       | j                  t        |j                  |dd        | j                  |j	                         |       | j                  t        |j                  |d          | j                  |j	                         |       | j                  t        |j                  d       | j                  |j	                         |       | j                  t        |j                  |j                                | j                  |j	                         |       | j                  t        |j                  |j	                                | j                  |j	                         |       | j                  dk(  rO| j                  t        |j                  |j!                                | j                  |j	                         |       | j                  t        t"        j$                  |d       | j                  |j	                         |       | j                  t        t"        j$                  |d       | j                  |j	                         |       | j                  t        t"        j&                  |t)        dd      |       | j                  |j	                         |       | j                  t        t"        j*                  |d       | j                  |j	                         |       | j                  t        t"        j*                  |t)        dd             | j                  |j	                         |       y )Nr   r8   r   rD   )r   r   r   
memoryviewr  r=   r+   BufferErrorr   rb  rX  r]  r   r
  r  fromunicode	tounicodeoperatorimulsetitemrJ  delitem)r   r@   mexpecteds       r   test_bufferzBaseTest.test_buffer%  s   KKt||4qM99;h/Q!5 	+qxx16h/+qxx1Q8h/+qxx16h/+quua0h/+qzz188:>h/+q{{AIIK@h/==Ck1==!++-HQYY[(3+x}}a;h/+x}}a;h/+x'7'7E!QKKh/+x'7'7A>h/+x'7'7E!QKHh/r   c                 @   t        j                   | j                  | j                        }t        j                  |      }| j                  |j                         |j                                d }t        j                          | j                  t        t        |       y r   )r   r   r   weakrefproxyr=   r  r   
gc_collectr+   ReferenceErrorr>   )r   sps      r   test_weakrefzBaseTest.test_weakrefH  sg    KKt||4MM!aiik2.#q1r   getrefcountztest needs sys.getrefcount()c                 4   t        d      D ]!  }t        j                  dt        d            }# t        j                  d      }t        d      D ]!  }t        j                  dt        d            }# | j	                  |t        j                  d             y )NrK   r   @   )r   r   rB  r  r=   )r   rk   r[   rcs       r   test_bug_782369zBaseTest.test_bug_782369P  sy     r 	,ACr+A	,__R r 	,ACr+A	,S__R01r   c                     t        dd       y )Nr[   r8   )r   )r   r$   s    r   test_subclass_with_kwargsz"BaseTest.test_subclass_with_kwargsZ  s    A.r   c                     t        j                   dd      }| j                  t        |      |j                  z  d       y )Nre   s   1234rE   )r   r=   r>   r   r?   s     r   test_create_from_byteszBaseTest.test_create_from_bytes^  s1     KKW%Q!**,a0r   c                     t        j                   | j                  | j                        }t        j                  d      }|j                         d   |j                  z  }t        j                  | |||z          y )NPn2Pir8   )r   r   r   r   calcvobjsizer   r   check_sizeof)r   r@   basesizebuffer_sizes       r   test_sizeof_with_bufferz BaseTest.test_sizeof_with_bufferd  sZ    KKt||4''0mmoa(1::5T1h&<=r   c                     t        j                   | j                        }t        j                  d      }t        j                  | ||       y )Nr  )r   r   r   r  r  )r   r@   r  s      r   test_sizeof_without_bufferz#BaseTest.test_sizeof_without_bufferk  s6    KK&''0T1h/r   c                    | j                   dk7  r| j                  t              5 }t        j                  | j                   d      }d d d        | j	                  dt        j                               | j                  t              5 }t        j                  | j                   t        j                  dd            }d d d        | j	                  dt        |j                               y t        j                  | j                   d      }t        j                  | j                   t        j                  dd            }y # 1 sw Y   xY w# 1 sw Y   xY w)Nr   r9   zcannot use a strzcannot use a unicode array)r   r+   r,   r   assertInra   	exception)r   cmr@   s      r   test_initialize_with_unicodez%BaseTest.test_initialize_with_unicodeq  s    ==C""9- 6KKu56MM,c",,.?@""9- HKKu{{3/FGHMM6BLL8IJDMM51ADMM5;;sE+BCA6 6H Hs   !E 5E E	Ec                     t        j                  d      }t        j                  dd      }| j                  t        |j
                  |       y )N	_testcapir   r   )r   import_moduler   r+   rv  getbuffer_with_null_view)r   r  r@   s      r   test_obsolete_write_lockz!BaseTest.test_obsolete_write_lock}  s:    !//<	KKS!+y'I'I1Mr   c                     t        j                  | t        t        j                  | j                  f       t        j                  | t
        t        j                  | j                  f       y r   )r   check_free_after_iteratingr3   r   r   r   r$   s    r   test_free_after_iteratingz"BaseTest.test_free_after_iterating  sF    **4u{{,0MM+;	=**45;;,0MM+;	=r   N)@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"  r&  r)  r,  r/  r3  r6  r9  r<  rH  rK  rN  rS  rV  r[  r^  r`  rc  rm  rs  r  r  unittest
skipUnlesshasattrrB  r  r  r  r   rB   r  r  r  r  r  r   r   r   r   r      s   )NG4(#"M//#+J
GA
(-TG
B/,	//&=
A"&H78*7B8:
K%
N KD0
d
?WDrG(:(+6
6

4I(!0F2 Xm479292/1 > > 0 0

D N N
=r   r   c                        e Zd Z fdZ xZS )
StringTestc                     t         |           t        j                  | j                  | j                        }| j                  t        |j                  d| j                  d d        y )Nr   rD   )superr6  r   r   r   r+   r,   r5  )r   r@   	__class__s     r   r6  zStringTest.test_setitem  sI    KKt||4)Q]]At||BQ7GHr   )r   r   r   r6  __classcell__)r  s   @r   r  r    s    I Ir   r  c                   <    e Zd ZdZdZdZdZ ed      ZdZ	d Z
d Zy	)
UnicodeTestr   u   ☺ ﻿u   ☺ ﻾u   ☺﻿3rD   c                 .   | j                  t        t        j                  dd       t        j                  dd      }|j                  d       |j                  d       |j                  d       |j                  d       |j	                         }| j                  |d       | j                  |j                  t               d	}t        j                  d|      }| j                  t        |      d
       | j                  t        |j                         y )Nr[   r9   r   u    Âሴ rZ   u	   abcÿሴu    Âሴ abcÿሴu    ="'a\bÿ ሴu+   array('u', '\x00="\'a\\b\x80ÿ\x00\x01ሴ'))	r+   r,   r   rw  rx  r=   r   sizeof_wcharr  )r   r@   r  s      r   r   zUnicodeTest.test_unicode  s    )U[[#u=KK-.	c	b	b	)*KKM>?\24KKQGF	H 	)Q]]3r   c                     t         dk(  rd}n| j                  d       t        j                  d      }| j                  t        |j
                         | j                  t        t        |       y )NrE   s   zspecific to 32-bit wchar_tr   )r  rq  r   r+   r-   rx  ra   )r   invalid_strr@   s      r   test_issue17223zUnicodeTest.test_issue17223  sT    1-K MM67KK[)*akk2*c1-r   N)r   r   r   r   r   r  r  ra   r   r   r   r  r   r   r   r  r    s.    H$G+N*M&kGK4(
.r   r  c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	
NumberTestc                 ^   t        j                   | j                  t        d            }| j                  |d d  |       | j                  |d d d   t        j                   | j                  g d             | j                  |dd d   t        j                   | j                  ddg             | j                  |d d d   t        j                   | j                  g d             | j                  |d d d   t        j                   | j                  g d	             | j                  |dd d   t        j                   | j                  ddg             | j                  |d
d |       | j                  |dd
d   |d d d          | j                  |d
dd   t        j                   | j                  g d             | j                  |ddd   t        j                   | j                  g              | j                  |ddd   t        j                   | j                  g              y )NrF   rD   r   rD   rE   r8   r<   rC   )rE   r<   rD   r8   r   r@  )rE   rD   r   rA  r?  r   r;  r   i0r   r   r   r=   r?   s     r   test_extslicezNumberTest.test_extslice  s   KKuQx02"3Q3T]]G!DE14a4%++dmmaU"CD4R4%++dmm["IJ4R4%++dmmW"EF15b55;;t}}qe#DE4q)3tB;4R414A:DMM7(KL4Q;T]]B)GH5r>*EKKr,JKr   c                 p   t        j                   | j                  t        d            }|d d d= | j                  |t        j                   | j                  ddg             t        j                   | j                  t        d            }|dd d= | j                  |t        j                   | j                  g d             t        j                   | j                  t        d            }|dd d= | j                  |t        j                   | j                  g d             t        j                   | j                  t        d            }|d d d	= | j                  |t        j                   | j                  g d
             t        j                   | j                  t        d            }|dd ddz  = y )NrF   rD   r8   r<   r  r@  )r   rD   r<   rE   rK   r   )	r8   rD   r<   rE   rF   rG   rH   rI   rJ   rJ   iM  r  r?   s     r   test_delslicezNumberTest.test_delslice  s<   KKuQx0ccFEKK!u=>KKuQx0addGEKKw?@KKuQx0aeeHEKKyABKKuRy1ffIEKK7JKLKKuRy1aiCiLr   c                    t        j                   | j                  t        d            }t        j                   | j                  dgdz        |d d d<   | j                  |t        j                   | j                  g d             t        j                   | j                  t        d            }t        j                   | j                  dgdz        |d d d<   | j                  |t        j                   | j                  g d             t        j                   | j                  t        d	            }||d d d
<   | j                  |t        j                   | j                  g d             t        j                   | j                  t        d            }|d d  }|d d  }t        j                   | j                  t        d            }||dd ||t	        dd      <   ||dd y )NrK   r'   rF   rD   )
r'   r8   r'   r<   r'   rF   r'   rH   r'   rJ   r<   rP  )
r   rK   rD   r<   rE   rK   rG   rH   rI   rK   rE   rC   )r<   rD   r8   r   )r   r   r   r=   rJ  )r   r@   r[   r  inss        r   test_assignmentzNumberTest.test_assignment  sa   KKuRy1T]]RDF3#A#EKK7Z[\KKuRy1++dmmbT!V4$B$EKK7XYZKKuQx0$B$EKK|DEKKuRy1aDaDkk$--q2!A%!*!Ar   c                 N   t        j                   | j                  t        d            }| j                  t	        |      t	        t        d                   t        j                   | j                  dg      }| j                  |d   |v d       | j                  |d   |vd       y )NrK   rU   rC   Tr   )r   r   r   r=   r   r  s      r   test_iterationcontainsz!NumberTest.test_iterationcontains  s|    KKuRy1a$uRy/2KKt,2!T*1Q-r   c                     t        j                   | j                  |g      }||d<   | j                  t        t         j                   | j                  |dz
  g       | j                  t        |j                  d|dz
         t        j                   | j                  |g      }||d<   | j                  t        t         j                   | j                  |dz   g       | j                  t        |j                  d|dz          y r   )r   r   r+   r   r5  )r   lowerupperr@   s       r   check_overflowzNumberTest.check_overflow  s     KKw/!-dmmeAgYO-57CKKw/!-dmmeAgYO-57Cr   c                     | j                   } G d dt        j                        } || j                   g dd      }| j                  |d   d       | j                  t        t
        |dd       y )	Nc                   $    e Zd ZdgZd Zd Zd Zy)6NumberTest.test_subclassing.<locals>.ExaggeratingArrayoffsetc                 D    t         j                   j                  | ||      S r   )r   __new__)clsr   r   r  s       r   r  z>NumberTest.test_subclassing.<locals>.ExaggeratingArray.__new__  s    {{**3$??r   c                     || _         y r   )r  )r   r   r   r  s       r   r   z?NumberTest.test_subclassing.<locals>.ExaggeratingArray.__init__
  s	    $r   c                 \    t         j                   j                  | |      | j                  z   S r   )r   r1  r  )r   rk   s     r   r1  zBNumberTest.test_subclassing.<locals>.ExaggeratingArray.__getitem__  s"    {{..tQ7$++EEr   N)r   r   r   	__slots__r  r   r1  r   r   r   ExaggeratingArrayr    s    !
I@%Fr   r  )r<   rG   rH   rL   rE   r   rH   colorblue)r   r   r   r+   AttributeErrorsetattr)r   r   r  r@   s       r   test_subclassingzNumberTest.test_subclassing  s[    ==
	F 
	F dmm]A>adA&.'1gvFr   c                     t        j                   dt        d            }t        j                   | j                  |      }| j                  ||       y )Nr[   rK   )r   r   r   r=   r  s      r   test_frombytearrayzNumberTest.test_frombytearray  s:    KKU2Y'KKq)Ar   N)
r   r   r   r  r  r  r  r  r  r  r   r   r   r  r    s(    L"$.D G&r   r  c                       e Zd Zd Zy)IntegerNumberTestc                 8   t        j                   | j                        }|j                  d       | j                  t              5  |j                  d       d d d        | j                  t              5  d|d<   d d d        y # 1 sw Y   -xY w# 1 sw Y   y xY w)Nr'   g      E@r   )r   r   r   r+   r,   r?   s     r   test_type_errorz!IntegerNumberTest.test_type_error  s~    KK&	y) 	HHTN	y) 	AaD	 		 		 	s   B5BBBN)r   r   r   r  r   r   r   r  r    s    r   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)Intablec                     || _         y r   _num)r   nums     r   r   zIntable.__init__$  s	    	r   c                     | j                   S r   r  r$   s    r   	__index__zIntable.__index__&      yyr   c                     | j                   S r   r  r$   s    r   __int__zIntable.__int__(  r  r   c                 B    t        t        |       t        |      z
        S r   r  r   r   others     r   __sub__zIntable.__sub__*      s4y3u:-..r   c                 B    t        t        |       t        |      z         S r   r  r  s     r   r%  zIntable.__add__,  r  r   N)r   r   r   r   r  r  r  r%  r   r   r   r  r  #  s    //r   r  c                   .    e Zd Zg dZg dZg dZdZd Zy)SignedNumberTest)rC   r   r8   r'   rh   )rC   r   r8   r'   ~   )rC   r   r8   +   rh      c                 N   t        j                   | j                        }dt        t        d|j                  dz  dz
              z  }t        t        d|j                  dz  dz
              dz
  }| j                  ||       | j                  t        |      t        |             y )NrC   rD   rI   r8   r   r   r   powr   r  r  r   r@   r  r  s       r   test_overflowzSignedNumberTest.test_overflow5  s    KK&SQ

Q 2344C1::>A-./!3E5)GENGEN;r   N)r   r   r   r   r  r  r   r  r   r   r   r  r  /  s    "G)N(MG<r   r  c                   4    e Zd Zg dZg dZg dZdZd Zd Zy)UnsignedNumberTest)r   r8   rR   r  r'   ri   )r   r8   rR   r  r'      )r   r8   rR   r  r  ri      c                     t        j                   | j                        }d}t        t        d|j                  dz              dz
  }| j                  ||       | j                  t        |      t        |             y )Nr   rD   rI   r8   r  r  s       r   r  z UnsignedNumberTest.test_overflowB  s_    KK&C1::>*+a/E5)GENGEN;r   c                 f   t        | j                        }t        j                  | j                  | j                        }|j	                  |       | j                  |t        j                  | j                  | j                  | j                  z                t        j                  | j                  | j                        }|j	                  t        t        |                   | j                  |t        j                  | j                  | j                  | j                  d d d   z                y r   )bytesr   r   r   rb  r=   r  r   )r   r  r@   s      r   test_bytes_extendz$UnsignedNumberTest.test_bytes_extendI  s    $,,KKt||4	KKt||DLL'@A	

 KKt||4	8A;'(KKt||DLL24F'FG	
r   N)	r   r   r   r   r  r  r   r  r  r   r   r   r  r  <  s     &G-N,MG<
r   r  c                       e Zd ZdZdZy)ByteTestr[   r8   Nr   r   r   r   r   r   r   r   r  r  [      HKr   r  c                       e Zd ZdZdZy)UnsignedByteTestr   r8   Nr  r   r   r   r	  r	  _  r  r   r	  c                       e Zd ZdZdZy)	ShortTestrj   rD   Nr  r   r   r   r  r  c  r  r   r  c                       e Zd ZdZdZy)UnsignedShortTestre   rD   Nr  r   r   r   r  r  g  r  r   r  c                       e Zd ZdZdZy)IntTestrk   rD   Nr  r   r   r   r  r  k  r  r   r  c                       e Zd ZdZdZy)UnsignedIntTestr0   rD   Nr  r   r   r   r  r  o  r  r   r  c                       e Zd ZdZdZy)LongTestrl   rE   Nr  r   r   r   r  r  s  r  r   r  c                       e Zd ZdZdZy)UnsignedLongTestrf   rE   Nr  r   r   r   r  r  w  r  r   r  c                       e Zd ZdZdZy)LongLongTestqrI   Nr  r   r   r   r  r  {  r  r   r  c                       e Zd ZdZdZy)UnsignedLongLongTestQrI   Nr  r   r   r   r  r    r  r   r  c                   :    e Zd Zg dZg dZg dZdZd Zd Zd Z	y)	FPTest)      Er   r'        j@g    _)r  r   r'   r  g    _)r  r   r'   r  g    _Br  c                 (    | j                  ||       y r   )assertAlmostEqualr   s      r   r   zFPTest.assertEntryEqual  s    vv.r   c                    t        j                   | j                  t        d      g      }t        j                   | j                  t        d      g      }| j                  ||k7  d       | j                  ||k(  d       | j                  ||kD  d       | j                  ||k\  d       | j                  ||k  d       | j                  ||k  d       y )NnanTF)r   r   r   r   r  s      r   test_nanzFPTest.test_nan  s    KKe~6KKe~6a1fd#a1fe$a!eU#a1fe$a!eU#a1fe$r   c                    t        j                   | j                  | j                        }| j                  t        |j
                  d       |j                  dv rt        j                   | j                  | j                        }|j                          |j                  dk(  r| j                  ||       n.| j                  |j                         |j                                |j                          | j                  ||       y y )Nr'   r   r8   )
r   r   r   r+   r,   r   r   r=   r   r  r  s      r   r   zFPTest.test_byteswap  s    KKt||4)QZZ4::%DMM4<<8AJJLzz1}  A&
 ##AIIK=JJLQ" &r   N)
r   r   r   r   r  r  r   r   r$  r   r   r   r   r  r    s%    (G/N-MG/%#r   r  c                       e Zd ZdZdZy)	FloatTestrp   rE   Nr  r   r   r   r'  r'    r  r   r'  c                       e Zd ZdZdZd Zy)
DoubleTestr^   rI   c                 $   ddl m} t        j                  ddgdz        }	 ||dz  dz   z  }| j                  d       t        j                  dg d      }	 ||d	z  dz   z   | j                  d       y # t        $ r Y Aw xY w# t        $ r Y y w xY w)
Nr   )rC  r^   rC   i   r8   z6Array of size > maxsize created - MemoryError expected)gII
@gS!	@rC   r<   )rB  rC  r   failMemoryError)r   rC  r@   r[   s       r   test_alloc_overflowzDoubleTest.test_alloc_overflow  s    KKbT%Z(	P%!##A IINOKK:;	P!a  IINO  		  		s#   A4 B 4	B ?B 	BBN)r   r   r   r   r   r-  r   r   r   r)  r)    s    HKPr   r)  c                      e Zd ZdZd Z ej                  ed      d        Z ej                  ed      d        Z	 ej                  ed      d        Z
 ej                  ed      d	        Z ej                  ed      d
        Z ej                  ed      d        Z ej                  ed      d        Z ej                  ed      d        Z ej                  ed      d        Z ej                  ed      d        Z ej                  ed      d        Z ej                  ed      d        Z ej                  ed      d        Z ej                  ed      d        Zy)LargeArrayTestr[   c                     t        j                   | j                  g d      |dz  z  }|t        j                   | j                  dg|dz  z  g dz         z  }|S )N)r   r8   rD   r<   rE   rF   rG   rH   rI   c   rI   rJ   rK   rL   )r   r   )r   sizebases      r   r   zLargeArrayTest.example  sM    {{4==*BCtqyQDMMB4?^+KLLr   g      @)memusec                 b    | j                  |      }| j                  t        |      |dz          y )NrE   )r   r=   r>   r   r3  r   s      r   test_example_dataz LargeArrayTest.test_example_data  s(    ,,t$WtAv.r   c                 0   | j                  |      }| j                  |d   d       | j                  ||dz       d       | j                  ||   d       | j                  |d   d       | j                  ||dz      d       | j                  |d   d       y )Nr   rE   rI   rP  r<   rL   rC   )r   r=   r7  s      r   test_accesszLargeArrayTest.test_access  s    ,,t$Q'46+Q/*a(a"-b)r   g      	@c                 `   | j                  |      }| j                  t        |d d       g d       | j                  t        |dd        g d       |dd }| j                  t        |      |dz          | j                  |d   d       | j                  |d   d	       ~|d d d   }| j                  t        |      |d
z   dz         | j                  t        |d d       g d       |dz  r!| j                  t        |dd        ddg       y | j                  t        |dd        dd	g       y )NrE   r   r8   rD   r<   rP  r2  r8   rC   rD   r   rK   rF   )r   rD   rE   rG   r@  rJ   rL   rI   )r   r=   r   r>   )r   r3  r   parts       r   
test_slicezLargeArrayTest.test_slice  s   ,,t$gbqk*L9gbcl+^<q}TDF+a!$b2&ss|TT!VaK0d2Ah6!8T$rs)_q"g6T$rs)_q"g6r   c                     | j                  |      }| j                  |j                  d      |dz         | j                  |j                  d      d       y )Nr   rI   rL   r8   )r   r=   rU  r7  s      r   rV  zLargeArrayTest.test_count  sF    ,,t$q)473r*A.r   c                 r    | j                  |      }|j                  d       | j                  |d   d       y )NrM   rC   )r   r   r=   r7  s      r   test_appendzLargeArrayTest.test_append  s0    ,,t$rb)r   c                     | j                  |      }|j                  t        g d             | j                  t	        |      |dz          | j                  t        |dd        g d       y N)rM   rN   rO   rP   rI   )rI   rJ   rK   rL   rM   rN   rO   rP   )r   rb  r3   r=   r>   r   r7  s      r   rc  zLargeArrayTest.test_extend  sV    ,,t$t,-.WtAv.gbcl+-KLr   c                     | j                  |      }|j                  d       | j                  t        |      |dz          | j                  t	        |dd        g dt	        d      z          y )Ns   abcdrI   rD  r2  )r   r  r=   r>   r   r7  s      r   test_frombyteszLargeArrayTest.test_frombytes  sZ    ,,t$'"WtAv.gbcl+^d7m-KLr   c                     | j                  |      }|j                  g d       | j                  t        |      |dz          | j                  t	        |dd        g d       y rC  )r   r   r=   r>   r   r7  s      r   test_fromlistzLargeArrayTest.test_fromlist  sS    ,,t$)*WtAv.gbcl+-KLr   c                 4   | j                  |      }| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      |dz          y )Nr   r8   rH   rL   r<   )r   r=   r   r7  s      r   rS  zLargeArrayTest.test_index  sx    ,,t$q)1-q)1-q)1-r*DF3r   c                 X   | j                  |      }|j                  dd       |j                  dd       |j                  |dz   d       | j                  t        |      |dz          | j                  |d   d       | j                  |d   d       | j                  ||dz      d       y )Nr   rM   rK   rN   r8   rO   rH   )r   r   r=   r>   r7  s      r   r   zLargeArrayTest.test_insert  s    ,,t$q"r2tAvr"WtAv.R(b)a"-r   c                 (   | j                  |      }| j                  |j                  d      d       | j                  |d   d       | j                  |j                  |dz         d       | j                  ||dz      d       | j                  |j                  d      d       | j                  |d   d       | j                  t        |      |dz          | j                  |j                         d       | j                  t        |      |       y )Nr   r8   rK   rL   rD   r<   )r   r=   r]  r>   r7  s      r   r^  zLargeArrayTest.test_pop  s    ,,t$Q+Q'T!V,b1a"-Q+Q'WtAv.+Wt,r   c                 f   | j                  |      }|j                  d       | j                  t        |      |dz          | j                  |d   d       |j                  d       | j                  t        |      |dz          | j                  ||   d       | j                  ||dz      d       y )Nr   r<   r8   rK   rD   rJ   rL   )r   rX  r=   r>   r7  s      r   r[  zLargeArrayTest.test_remove+  s    ,,t$qWtAv.Q'rWtAv.*a"-r   c                    | j                  |      }|j                          | j                  t        |      |dz          | j                  |d   d       | j                  |d   d       | j                  |d   d       |j                          | j                  t        |      |dz          | j                  t	        |d d       g d       | j                  t	        |dd        g d	       y )
NrE   r   rL   r<   rI   rC   r<  rP  r2  )r   rM  r=   r>   r   r7  s      r   r`  zLargeArrayTest.test_reverse6  s    ,,t$WtAv.R(Q'a(WtAv.gbqk*L9gbcl+^<r   g     @&@c                    | j                  |      }|j                         }| j                  t        |      t        |             | j                  |d d t	        |d d              | j                  |dd  t	        |dd               y )NrI   rD  )r   r
  r=   r>   r   )r   r3  r   lss       r   test_tolistzLargeArrayTest.test_tolistD  sv    ,,t$^^R#g,/BQgbqk!23BC$wrs|"45r   N)r   r   r   r   r   r   
bigmemtestr   r8  r:  r>  rV  rA  rc  rF  rH  rS  r   r^  r[  r`  rP  r   r   r   r/  r/    s   H WE*/ +/ WE** +* WG,7 -7" WE*/ +/
 WE** +*
 WE*M +M WE*M +M WE*M +M WE*4 +4 WE*. +. WE*
- +
- WE*. +. WE*
= +
= WG,6 -6r   r/  __main__)I__doc__collections.abcr    r  testr   test.supportr   r   r   r  r   ry  r   rB  r   r   r`   r   r  r
   r   r   TestCaser   rb   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   rX   r   r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r  r  r'  r)  r/  r   mainr   r   r   <module>rY     s      & "      
  =u{{3((	EKK 	#ekk # 	!$x   !$P           aMX.. aMHC= C=JI I&.*h// &.P` `D
 
/ 
/<( <
* 
>!2!2 )8+<+<  ("3"3 *H,=,=  1 1 ((*;*; !2!2 )8+<+< #X%6%6 -x/@/@ !#Z !#F)) P** P,J6X&& J6X zHMMO r   