
    ;e                        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jH                     dS dS )Uz(Test the arraymodule.
   Roger E. Masse
    N)support)import_helper)	os_helper)_2G)_array_reconstructoruc                       e Zd ZdS )ArraySubclassN)__name__
__module____qualname__     &/usr/lib/python3.11/test/test_array.pyr
   r
      s        Dr   r
   c                       e Zd ZddZdS )ArraySubclassWithKwargsNc                 D    t           j                             |            d S 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                   `    e Zd Zd Zd Zej        d             Zej        d             Zd Z	dS )MiscTestc                     |                      t          j        d          t          j        j                   |                      t          j        d          t          j        j                   d S )NB)assertIsInstancer   collectionsabcMutableSequence
Reversibler   s    r   test_array_is_sequencezMiscTest.test_array_is_sequence"   sR    ek#..0OPPPek#..0JKKKKKr   c                 6   |                      t          t          j                   |                      t          t          j        d           |                      t          t          j        d           |                      t          t          j        d           d S )N*   )spamxxx)assertRaises	TypeErrorr   
ValueErrorr$   s    r   test_bad_constructorzMiscTest.test_bad_constructor&   sq    )U[111)U[r:::)U[$777*ek377777r   c                     t          j         d          }t          j        | t          t	          |                    |           d S )NI)r   r   check_disallow_instantiationtypeiter)r   my_arrays     r   test_disallow_instantiationz$MiscTest.test_disallow_instantiation,   sE    ;s##,$tH~~&&	
 	
 	
 	
 	
r   c                     |                      t                    5  dt          j        _        d d d            d S # 1 swxY w Y   d S N   )r+   r,   r   foor$   s    r   test_immutablezMiscTest.test_immutable3   s     y)) 	  	 EKO	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   :>>c                 j   t          j         d          }||d d <   |                     t          |          d           |                     t          ||z             d           |                     t          |dz            d           ||z  }|                     t          |          d           d S )Nr   r      )r   assertEquallenr   as     r   
test_emptyzMiscTest.test_empty9   s    K!!!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       s        L L L8 8 8 
 
 
      
$ $ $ $ $r   r   r8      r<                  	   
                                    c                        e Zd Zd Zd Zd ZdS )ArrayReconstructorTestc                    |                      t          t          dddd           |                      t          t          t          ddd           |                      t          t          t          j        ddd           |                      t          t          t          j        ddd           |                      t
          t          t          j        ddd           |                      t
          t          t          j        dt          d           |                      t
          t          t          j        ddd           |                      t
          t          t          j        ddd	           d S )
N br   r   ?   drQ      a)r+   r,   array_reconstructorstrr   r-   UNKNOWN_FORMATr$   s    r   
test_errorz!ArrayReconstructorTest.test_errorb   sK   )%8c1c	+ 	+ 	+)%8sAs	, 	, 	,)%8+sB	5 	5 	5)%8+sAr	3 	3 	3*&9+sAs	4 	4 	4*&9+sNC	A 	A 	A*&9+sB	5 	5 	5*&9+sB	6 	6 	6 	6 	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|R  }|D ]r}	 t+          j        ||          }	n# t,          $ r Y %w xY wt/          t*          j        |||          }
|                     |	|
d*                    |	|
|          +           sd S ),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   sW   !!!='"""$!!!;__/(((*__/(((*__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 	QH@H=O\:v{:7777H+ Q QHf55AA$   H'K<C C  A8??1hOO ! Q Q Q QQ	Q 	Qs   =G
G G c           
      D   d}t           dft          dft          dft          dff}|D ]x}|\  }}t	          j        d|          }t          t          j        d||                    |                    }|                     ||d                    |||                     yd S )	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 	MH%-"L(C))A#S,x0H0HJ JAQ4;;Aq(KK  M M M M	M 	Mr   N)r   r   r   rc   r   r   r   r   r   rX   rX   `   sJ        6 6 6$=Q =Q =Q~M M M M 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 e2j3         e4e5d0          d1          d2             Z6d3 Z7d4 Z8e9j:        d5             Z;e9j:        d6             Z<d7 Z=e9j:        d8             Z>d9 Z?d:S );BaseTestc                 2    |                      ||           d S r   )r=   r   entry1entry2s      r   assertEntryEqualzBaseTest.assertEntryEqual   s    (((((r   c                     t           t                               | j                  dz   t          t                     z           S r7   )	typecodesindexr   r>   r$   s    r   badtypecodezBaseTest.badtypecode   s+    )//$-88:c)nnLMMr   c                    t          j         | j                  }|                     |j        | j                   |                     |j        | j                   |                     t          t           j         | j        d            d S r   )r   r   r=   assertGreaterEqualitemsizeminitemsizer+   r,   r?   s     r   test_constructorzBaseTest.test_constructor   sl    K&&T]333
D,<===)U[$-FFFFFr   c                 f   t          j         | j                  }|                    | j        d                    |                     t          |          d           t          j         | j        | j                  }|                     t          |          t          | j                             d S Nr   r8   )r   r   appendexampler=   r>   r?   s     r   test_lenzBaseTest.test_len   s    K&&	a!!!Q###Kt|44QT\!2!233333r   c                     t          j         | j        | j                  }|                     t          |j        d           |                                }|                     |t                     |                     t          |          d           |                     |d         t                     |                     |d         t                     |                     |d         t          |                     d S )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    Kt|44)Q]B777]]__b%(((R!$$$beS)))beS)))AA'''''r   c                    | j         dk    rd}n| j        }t          j        | j         |          }|                     t          |j        d           |j        dv rt          j        | j         |          }|                                 |j        dk    r|                     ||           n|                     ||           |                                 |                     ||           d S d S )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"GGlGKw//)QZ444:%%DM733AJJLLLz1}}  A&&&&##Aq)))JJLLLQ""""" &%r   c                    dd l }t          j        | j        | j                  }|                     |          }|                     t          |          t          |                     |                     ||           d S Nr   )copyr   r   r   r   idr=   r   r   r@   r[   s       r   	test_copyzBaseTest.test_copy   sm    Kt|44IIaLLBqEE2a55)))Ar   c                    dd l }t          j        | j        | j                  }|                    |          }|                     t          |          t          |                     |                     ||           d S r   )r   r   r   r   deepcopyr   r   r=   r   s       r   test_deepcopyzBaseTest.test_deepcopy  so    Kt|44MM!BqEE2a55)))Ar   c                    t          j         | j        | j                  }t          d          D ];}|                     |                    |          d         t           j                    <t          dt          j        dz             D ]6}|                     |                    |          d         t                     7d S )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    Kt|44a 	E 	EHMM!//(33A6DDDDa!81!<== 	M 	MHMM!//(33A68KLLLL	M 	Mr   c                    t          t          j        dz             D ]m}t          j        | j        | j                  }t          j        t          j        ||                    }|                     t          |          t          |                     | 
                    ||           t          | j        | j                  }d|_        t          j        t          j        ||                    }|                     t          |          t          |                     | 
                    ||           | 
                    |j        |j                   | 
                    t          |          t          |                     od S 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9:: 	/ 	/HDM4<88AV\!X6677A1r!uu---Q"""dmT\::AACV\!X6677A1r!uu---Q"""QS!#&&&T!WWd1gg....	/ 	/r   c                    t          t          j        dz             D ]a}t          j        | j                  }t          j        t          j        ||                    }|                     t          |          t          |                     | 	                    ||           t          | j                  }d|_        t          j        t          j        ||                    }|                     t          |          t          |                     | 	                    ||           | 	                    |j        |j                   | 	                    t          |          t          |                     cd S 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!  s7   f59:: 	/ 	/HDM**AV\!X6677A1r!uu---Q"""dm,,AACV\!X6677A1r!uu---Q"""QS!#&&&T!WWd1gg....	/ 	/r   c                    t          j         | j        | j                  }t          |          }|d d d         }t	          t
          j        dz             D ]}t          |          }t          j        ||f|          }t          j	        |          \  }}|
                    |           |                     t          |          t          |                     |                     t          |          ||z              t          |           t          j        ||f|          }t          j	        |          \  }}|
                    |           |                     t          |          t          |                     |                     t          |          |dd          |z              t	          dt          |                    D ]}	t          |           t          j        ||f|          }t          j	        |          \  }}|
                    |           |                     t          |          t          |                     |                     t          |          |           |                     t           t          |           t          j        ||f|          }t          j	        |          \  }}|
                    |           |                     t          |          g            d S )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7DzzTTrT
62Q677 	+ 	+E$ZZFfd^U33ALOOEBJJuT"XXtF||444T"XXte|444 LLLfd^U33ALOOEBJJuT"XXtF||444T"XXtABBx%'7888 1c$ii((  Vfd^U33ALOOEBJJuT"XXtF||444T"XXu--- mT6:::fd^U33ALOOEBJJuT"XXr****?	+ 	+r   c                 Z   t          j         | j        | j                  }|                     t	          |          t	          | j                             t          |          }t          |          }|D ]}t          |           |                    | j                   |                     t	          |          g            |                     t	          |          | j        g           |                     t	          |          t	          | j                  | j        gz              d S r   )	r   r   r   r=   r   r3   r   r   outsider   r@   exhitempitr*   s        r   test_exhausted_iteratorz BaseTest.test_exhausted_iteratorU  s    Kt|44a$t|"4"4555QQ 	 	AKKKK	eb)))et|n555a$t|"4"4~"EFFFFFr   c                 T   t          j         | j        | j                  }|                     t	          |          t	          | j                             |                     t	          t          |                    t	          t          |                    d d d                    d S NrC   )r   r   r   r=   r   reversedr3   r?   s     r   test_reverse_iteratorzBaseTest.test_reverse_iteratora  s~    Kt|44a$t|"4"4555hqkk**DaMM$$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 ]E}t          |          }t          j
        ||f|          }t          j        |          \  }}	|	                    d| j                   |                     t          |          t          |                     |                     t          |          |           |                     t          |	          |           t          |           t          j
        ||f|          }t          j        |          \  }}	|	                    d| j                   |                     t          |          t          |                     |                     t          |          |dd                     |                     t          |	          |           t          dt          |                    D ]}
t          |           t          j
        ||f|          }t          j        |          \  }}	|	                    d| j                   |                     t          |          t          |                     |                     t          |          g            |                     t          |	          |           |                     t"          t          |           t          j
        ||f|          }t          j        |          \  }}	|	                    d| j                   |                     t          |          g            |                     t          |	          |           Gd S )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7Dzz%D		!R(DL>962Q677 #	- #	-Ed^^Ffd^U33ALOOEBHHQ%%%T"XXtF||444T"XXx000T!WWe,,, LLLfd^U33ALOOEBHHQ%%%T"XXtF||444T"XXx|444T!WWe,,, 1c$ii((  Vfd^U33ALOOEBHHQ%%%T"XXtF||444T"XXr***T!WWe,,, mT6:::fd^U33ALOOEBHHQ%%%T"XXr***T!WWe,,,,G#	- #	-r   c                 P   t          j         | j        | j                  }|                     t	          |          t	          | j                             t          |          }t          |          }|D ]}t          |           |                    d| j                   |                     t	          |          g            |                     t	          |          g            |                     t	          |          | j        gt	          | j                  z              d S r   )	r   r   r   r=   r   r   r   r   r   r   s        r   test_exhausted_reverse_iteratorz(BaseTest.test_exhausted_reverse_iterator  s    Kt|44a$t|"4"4555 	 	AKKKK	DL!!!eb))) 	eb)))a4<.43E3E"EFFFFFr   c           
      B   t          j         | j        | j                  }|                    d| j        d                    |                     t          |          dt          | j                  z              |                     |d         |d                    |                     t          |j                   |                     t          |j        d            |                     t          |j        dd            t          j         | j        | j                  }|                    d| j        d                    |                     |t          j         | j        | j        d d         | j        d d         z   | j        dd          z                        t          j         | j        | j                  }|                    d| j        d                    |                     |t          j         | j        | j        d d         | j        z                        t          j         | j        | j                  }|                    d| j        d                    |                     |t          j         | j        | j        | j        d d         z                        d S )Nr   r8   rC     )r   r   r   r   r=   r>   r+   r,   r?   s     r   test_insertzBaseTest.test_insert  s<   Kt|44	DLO$$$Q3t|#4#4!45551qt$$$)QX...)QXt444)QXq$777Kt|44	T\!_%%%KSbS!DL!$44t|BCC7HH 	
 	
 	
 Kt|44	Q(((Kt|BQB'7$,'FGG	
 	
 	

 Kt|44	t|A'''Kt|dl2A26F'FGG	
 	
 	
 	
 	
r   c                    t          j         | j        d| j        z            }|                     t          |j                   t          j        t          j                   t          t          j        d          }	 |                    |           |
                                 t          j         | j                  }t          t          j        d          }|                     t          |j                   |                    |t          | j                             |                     |t          j         | j        | j                             |                     ||           |                     t          |j        |t          | j                  dz              |                     ||           |
                                 |j        s|
                                 t          j        t          j                   d S # |j        s|
                                 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   Kq~66)QX...)***!4((	/HHQKKKGGIIIDM**AY%t,,Ai444JJq#dl++,,,QDM4< H HIII1%%%h
As4<7H7H7JKKKQ"""GGIII8 			Y-..... 8 			Y-....s   <EH ;I c                    t          j         | j                  }t          t          j        d          }	 |                     t          |j        |t          | j	                             |
                                 t          j        t          j                   d S # |
                                 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     K&&!4((	/gqz1c$,6G6GHHHGGIIIY-..... GGIIIY-....s   4B 4Cc                    t          j         | j        d| j        z            }t          t          j        d          }	 |                    |           |                                 t          j         | j                  }t          t          j        d          }|                    |t          | j                             | 
                    |t          j         | j        | j                             |                     ||           |                    |t          | j                             | 
                    ||           |                                 |j        s|                                 t	          j        t          j                   d S # |j        s|                                 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  sq   Kq~66!4((	/GGAJJJGGIIIDM**AY%t,,AJJq#dl++,,,QDM4< H HIII1%%%JJq#dl++,,,Q"""GGIII8 			Y-..... 8 			Y-....s   DF ;Gc                    t          j         | j        d| j        z            }t          j         | j                  }|                     t          |j        d           |                     t          |j                   |                     t          |j        d           |                     t          |j        d g           |                    |                                           |                     ||           d S )NrD   r'   )r   r   r   r+   r,   tolistr   r=   r   r@   r[   s      r   test_tofromlistzBaseTest.test_tofromlist  s    Kq~66K&&)QXr222)QZ000)QZ444)QZ$888	

188::Ar   c                    t          j         | j        d| j        z            }t          j         | j                  }|                     t          |j        d           |                     t          |j                   |                     t          |j        d           |                    |                                           t          j         | j        t          |                                                    }|                     ||           |                     ||           |j	        dk    r#|                     t          |j        d           d S d S )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   Kq~66K&&)QY333)Q[111)Q["555	AIIKK   Ky'='=>>AA:a<<j!+t<<<<< <r   c                     t          j         | j        | j                  }t          j         | j        |          }|                     ||           d S r   r   r   r   r=   r  s      r   test_fromarrayzBaseTest.test_fromarray
  sF    Kt|44Kq))Ar   c                 L   t          j         | j        d| j        z            }|                     |t	          t          |          dt           j         i                     t          j         | j                  }|                     t          |          d| j        z             d S )NrD   r   zarray('%s'))r   r   r   r=   evalreprr?   s     r   	test_reprzBaseTest.test_repr  s    Kq~66Da7EK*@AABBBK&&a-$-"?@@@@@r   c                 h    t          j         | j        d| j        z            }t          |           d S )NrD   )r   r   r   ra   r?   s     r   test_strzBaseTest.test_str  s*    Kq~66Ar   c                 ,   t          j         | j        | j                  }|                     |dk    d           |                     |dk    d           |                     ||k    d           |                     ||k    d           |                     ||k     d           |                     ||k    d           |                     ||k    d           |                     ||k    d           t          j         | j        | j                  }t          j         | j        | j                  }|                     |d|z  k    d           |                     |d|z  k    d           |                     |d|z  k     d           |                     |d|z  k    d           |                     |d|z  k    d           |                     |d|z  k    d           |                     ||k    d           |                     ||k    d           |                     ||k     d           |                     ||k    d           |                     ||k    d           |                     ||k    d           |                     ||k    d           |                     ||k    d           |                     ||k     d           |                     ||k    d           |                     ||k    d           |                     ||k    d           d S )Nr'   FTrD   )r   r   r   r   smallerexamplebiggerexample)r   r@   alabs       r   test_cmpzBaseTest.test_cmp  s   Kt|4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   }|                     |t          j         | j        | j        | j        d d d         z                        t          j         |                                           }|                     t          |j        |           |                     t          |j        d           d S )NrC   bad)r   r   r   r=   r   r+   r,   __add__r  s      r   test_addzBaseTest.test_add>  s    Kt|44k$-ddd);<<=Kt|dl44R46H'HII	
 	
 	

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

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

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

 ek$-666K&&	
 	
 	

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

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

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

 	
QaEK66777	T	aEK66777	RaEK66777Kt|44	REK66777)QZ77777r   c                 |   t          j         | j        | j                  }|                     |d         | j        d                    |                     |d         | j        d                    |                     |d         | j        d                    |                     |d         | j        d                    |                     |t	          | j                  dz
           | j        d                    |                     |t	          | j                            | j        d                    |                     t          |j                   |                     t          |j        t	          | j                             |                     t          |j        t	          | j                   dz
             d S )Nr   rC   r8   )	r   r   r   r   r>   r+   r,   __getitem__
IndexErrorr?   s     r   test_getitemzBaseTest.test_getitem  sf   Kt|44adDLO444adDLO444aeT\"%5666aeT\"%5666aDL 1 1! 34dl26FGGGaT\!2!2 23T\!_EEE)Q]333*amS5F5FGGG*amc$,6G6G5G5IJJJJJr   c                    t          j         | j        | j                  }|d         |d<   |                     |d         |d                    t          j         | j        | j                  }|d         |d<   |                     |d         |d                    t          j         | j        | j                  }|d         |d<   |                     |d         |d                    t          j         | j        | j                  }|d         |d<   |                     |d         |d                    t          j         | j        | j                  }|d         |t	          | j                  dz
  <   |                     |d         |d                    t          j         | j        | j                  }|d         |t	          | j                   <   |                     |d         |d                    |                     t          |j                   |                     t          |j        d            |                     t          |j        dd            |                     t          |j        t	          | j                  | j        d                    |                     t          |j        t	          | j                   dz
  | j        d                    d S )NrC   r   r8   )	r   r   r   r   r>   r+   r,   __setitem__r2  r?   s     r   test_setitemzBaseTest.test_setitem  sl   Kt|44u!adAbE***Kt|44u!adAbE***Kt|44!"adAbE***Kt|44!"adAbE***Kt|44!"1#dl

A
adAbE***Kt|44 !"3t|
adAbE***)Q]333)Q]D999)Q]At<<<Mt|A	
 	
 	

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

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

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

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

 	)Q]333)Q]D999*amS5F5FGGG*amc$,6G6G5G5IJJJJJr   c           	      ^   t          j         | j        | j                  }|                     |d d          |           |                     |dd          t          j         | j        | j        dd                               |                     |d d         t          j         | j        | j        d d                              |                     |d d         t          j         | j        | j        d d                              |                     |dd          t          j         | j        | j        dd                               |                     |dd         t          j         | j                             |                     |dd         t          j         | j                             |                     |dd          t          j         | j                             |                     |dd          |           |                     |d d         |           |                     |d d         t          j         | j                             |                     |dd         |           |                     |dd         t          j         | j                             d S )Nr8   rC   rD   r   r     r  r?   s     r   test_getslicezBaseTest.test_getslice  s   Kt|44111q!!!abbEKt|ABB'788	
 	
 	

 	bqbEKt|BQB'788	
 	
 	

 	crcFKt|CRC'899	
 	
 	

 	bccFKt|BCC'899	
 	
 	

 	beHK&&	
 	
 	

 	acFK&&	
 	
 	

 	deeHK&&	
 	
 	
 	566A&&&5D51%%%fufIK&&	
 	
 	
 	5:***d4iLK&&	
 	
 	
 	
 	
r   c                 $   t          j         | j        | j                  }dd ddddt          j        dddd	f}|D ]V}|D ]Q}|dd          D ]D}|                     t          ||||                   t          |          |||                    ERWd S 
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     Kt|44dAq"c3;BTJ 	? 	?E ? ?#ABBK ? ?D$$T!E$tO*<%=%=%)!WWU4_%=? ? ? ???	? 	?r   c           
      
   t          j         | j        | j                  }||d d<   |                     |t          j         | j        | j        | j        dd          z                        t          j         | j        | j                  }||d d<   |                     |t          j         | j        | j        | j        dd          z                        t          j         | j        | j                  }||dd <   |                     |t          j         | j        | j        d d         | j        z                        t          j         | j        | j                  }||dd <   |                     |t          j         | j        | j        d d         | j        z                        t          j         | j        | j                  }||dd<   |                     |t          j         | j        | j        d d         | j        z   | j        dd          z                        t          j         | j        | j                  }||dd <   |                     |t          j         | j        d| j        z                       t          j         | j        | j                  }||dd <   |                     |t          j         | j        | j                             t          j         | j        | j                  }||d d<   |                     |t          j         | j        | j                             t          j         | j        | j                  }||d d<   |                     |t          j         | j        d| j        z                       t          j         | j        | j                  }||dd<   |                     |t          j         | j        | j        d d         | j        z   | j        dd          z                        t          j         | j        | j                  }||dd<   |                     |t          j         | j        d| j        z                       t          j         | j        | j                  }|                     t
          |j        t          dd          d            |                     t
          |j        t          dd          d            t          j         |                                           }|                     t
          |j        t          dd          |           |                     t
          |j        t          dd          |           d S )Nr8   rC   r   rD   r   r   r;  )	r   r   r   r=   r+   r,   r5  slicer   r  s      r   test_setslicezBaseTest.test_setslice1  s   Kt|44"1"Kt|dl1226F'FGG	
 	
 	

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

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

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

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

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

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

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

 Kt|44!A#Kt|BQB'7$,'FVWVXVXIY'YZZ	
 	
 	

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

 Kt|44)Q]E!QKKFFF)Q]E!QKKFFFK((**++)Q]E!QKKCCC)Q]E!QKKCCCCCr   c                    dd ddddt           j        dddd	f}|D ]}|D ]}|dd          D ]}t          j        | j        | j                  }t          |          }||||         }|                                 |||||<   t          j        | j        |          ||||<   |                     |t          j        | j        |                     ||||= ||||= |                     |t          j        | j        |                     d S 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  sG   dAq"c3;BTJ 	G 	GE G G#ABBK G GDDM4<@@AQA U4_-DLLNNN)-AeDo&).T]D)I)IAeDo&$$QDM1(E(EFFF%T/*%T/*$$QDM1(E(EFFFFGG	G 	Gr   c                    d| j         z  }t          j        | j        |          }|                     t          |j                   |D ]>}|                     |                    |          |                    |                     ?|                     t          |j        d            |                     t          |j        | j                   t          j        dg d          }|                     |                    d          d           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd	          d           |                     |                    ddd
          d           |                     |                    dd	d          d           |                     t          |j        ddd           d S )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    DL.Kw//)QW--- 	; 	;AQWWQZZq)9)9::::*agt444*agt|<<<K11122Q'''A***B+++S))1---A***B+++Aq))1---B++Q///*agq!S99999r   c                    d| j         z  }t          j        | j        |          }|                     t          |j                   |D ]>}|                     |                    |          |                    |                     ?|                     |                    | j                  d           |                     |                    d           d           d S )NrD   r   )r   r   r   r+   r,   countr=   r   rR  s       r   
test_countzBaseTest.test_count  s    DL.Kw//)QW--- 	; 	;AQWWQZZq)9)9::::..222*****r   c                    | j         D ]}d| j         z  }t          j        | j        |          }|                    |          }|d |         ||dz   d          z   }|                    |           |                     |t          j        | j        |                     t          j        | j        | j                   }|                     t          |j        | j                   |                     t          |j        d            d S )NrD   r8   )	r   r   r   r   remover=   r+   r-   r   )r   r*   r   r@   posexample2s         r   test_removezBaseTest.test_remove  s     	F 	FAnGDM733A--""Ctt}ws1uvv6HHHQKKKQDM8 D DEEEEKt|44*ah===*ah55555r   c           
      b   t          j         | j                  }|                     t          |j                   t          j         | j        d| j        z            }|                     t          |j        dd           |                     t          |j        d            |                     t          |j        t          |                     |                     t          |j        t          |           dz
             |                     |                    d          | j        d                    | 	                    |t          j         | j        | j        dd          | j        z                        |                     |                    d          | j        d                    | 	                    |t          j         | j        | j        dd         | j        dd          z   | j        z                        |                     |                    d          | j        d                    |                     |                                | j        d                    | 	                    |t          j         | j        | j        dd          | j        d d         z                        d S )NrD   r'   r8   r   r<   rC   )
r   r   r+   r2  popr   r,   r>   r   r=   r?   s     r   test_popzBaseTest.test_pop  s8   K&&*ae,,,Kq~66)QUB333)QUD111*aeSVV444*aec!ffWQY777aeeAhhQ888Kt|ABB'7'DEE	
 	
 	
 	aeeAhhQ888Kt|AaC'8abb9I'I$,'VWW	
 	
 	
 	aeeAhhQ888aeeggt|B'7888Kt|ABB'7SbS8I'IJJ	
 	
 	
 	
 	
r   c           
      &   t          j         | j        | j                  }|                     t          |j        d           |                                 |                     |t          j         | j        | j        d d d                              d S )Nr'   rC   )r   r   r   r+   r,   rM  r=   r?   s     r   test_reversezBaseTest.test_reverse  s    Kt|44)QY333			Kt|DDbD'9::	
 	
 	
 	
 	
r   c                    t          j         | j        | j                  }|                     t          |j                   |                    t          j         | j        | j        d d d                              |                     |t          j         | j        | j        | j        d d d         z                        t          j         | j        | j                  }|                    |           |                     |t          j         | j        | j        | j        z                        t          j         |                                           }|                     t          |j        |           t          j         | j        | j                  }|                    | j        d d d                    |                     |t          j         | j        | j        | j        d d d         z                        d S r   )r   r   r   r+   r,   extendr=   r   r  s      r   test_extendzBaseTest.test_extend  s   Kt|44)QX...	T]DL2,>??@@@Kt|DL24F'FGG	
 	
 	

 Kt|44	Kt|DL'@AA	
 	
 	

 K((**++)QXq111Kt|44	ddd#$$$Kt|DL24F'FGG	
 	
 	
 	
 	
r   c                    t          j         | j        t          | j                            }t          j         | j        | j                  }|                     ||           |                     t          t           j         | j        d            G d d          }|                     t          t           j         | j         |                       d }|                     t          t           j         | j         |                       d S )NrK   c                       e Zd Zd ZdS );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           r   rh  r   r   r   r   z;BaseTest.test_constructor_with_iterable_argument.<locals>.B  s      r   )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    KtDL'9'9::Kt|44A 	)U[$-DDD	# 	# 	# 	# 	# 	# 	# 	# 	,T]AACCHHH	 	 	 	,T]AACCHHHHHr   c                     	 dd l }n%# t          $ r |                     d           Y nw xY wt          j        | j                  }t          |          g}|                    |           |                                 d S )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IIII 	5 	5 	5MM344444	5K&&!WWI	


s    ))c           	      :	   t          j         | j        | j                  }t          |          }|                                }|                     |                                |           |                     |                                d         |d                    |                     t          |j        |d                    |                     |                                |           |                     t          |j	        |dd                    |                     |                                |           |                     t          |j
        |d                    |                     |                                |           |                     t          |j        d           |                     |                                |           |                     t          |j        |                                           |                     |                                |           |                     t          |j        |                                           |                     |                                |           | j        dk    r[|                     t          |j        |                                           |                     |                                |           |                     t          t"          j        |d           |                     |                                |           |                     t          t"          j        |d           |                     |                                |           |                     t          t"          j        |t)          dd          |           |                     |                                |           |                     t          t"          j        |d           |                     |                                |           |                     t          t"          j        |t)          dd                     |                     |                                |           d S )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%  so   Kt|44qMM99;;h///Q!555 	+qx1666h///+qx1Q3888h///+qx1666h///+qua000h///+qz188::>>>h///+q{AIIKK@@@h///=Ck1=!++--HHHQYY[[(333+x}a;;;h///+x}a;;;h///+x'7E!QKKKKKh///+x'7A>>>h///+x'7E!QKKHHHh/////r   c                 L   t          j         | j        | j                  }t          j        |          }|                     |                                |                                           d }t          j                     | 	                    t          t          |           d S r   )r   r   r   weakrefproxyr=   r  r   
gc_collectr+   ReferenceErrorr>   )r   sps      r   test_weakrefzBaseTest.test_weakrefH  s~    Kt|44M!aiikk222.#q11111r   getrefcountztest needs sys.getrefcount()c                 N   t          d          D ]$}t          j        dt          d                    }%t          j        d          }t          d          D ]$}t          j        dt          d                    }%|                     |t          j        d                     d S )NrK   r   @   )r   r   rB  r  r=   )r   rk   r[   rcs       r   test_bug_782369zBaseTest.test_bug_782369P  s     r 	, 	,ACr++AA_R  r 	, 	,ACr++AAS_R0011111r   c                 (    t          dd           d S )Nr[   r8   )r   )r   r$   s    r   test_subclass_with_kwargsz"BaseTest.test_subclass_with_kwargsZ  s    A......r   c                     t          j         dd          }|                     t          |          |j        z  d           d S )Nre   s   1234rE   )r   r=   r>   r   r?   s     r   test_create_from_byteszBaseTest.test_create_from_bytes^  s>     KW%%Q!*,a00000r   c                     t          j         | j        | j                  }t          j        d          }|                                d         |j        z  }t          j        | |||z              d S )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  s`    Kt|44'00mmooa(1:5T1h&<=====r   c                     t          j         | j                  }t          j        d          }t          j        | ||           d S )Nr  )r   r   r   r  r  )r   r@   r  s      r   test_sizeof_without_bufferz#BaseTest.test_sizeof_without_bufferk  s>    K&&'00T1h/////r   c                    | j         dk    r|                     t                    5 }t          j        | j         d          }d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 }t          j        | j         t          j        dd                    }d d d            n# 1 swxY w Y   |                     dt          |j                             d S t          j        | j         d          }t          j        | j         t          j        dd                    }d S )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Ku556 6 6 6 6 6 6 6 6 6 6 6 6 6 6MM,c",.?.?@@@""9-- HKu{3/F/FGGH H H H H H H H H H H H H H HMM6BL8I8IJJJJJDM511ADM5;sE+B+BCCAAAs#   AAA.CCCc                     t          j        d          }t          j        dd          }|                     t          |j        |           d S )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}  sD    !/<<	KS!!+y'I1MMMMMr   c                     t          j        | t          t          j        | j        f           t          j        | t
          t          j        | j        f           d S r   )r   check_free_after_iteratingr3   r   r   r   r$   s    r   test_free_after_iteratingz"BaseTest.test_free_after_iterating  sV    *4u{,0M+;	= 	= 	=*45;,0M+;	= 	= 	= 	= 	=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 N NG G G4 4 4( ( (# # #"    M M M/ / // / /#+ #+ #+J
G 
G 
GA A A
(- (- (-TG G G
 
 
B/ / /,	/ 	/ 	// / /&  = = =  
A A A  "& "& "&H7 7 78 8 8*7 7 7B8 8 8:
K 
K 
K%
 %
 %
N K  K  KD0
 0
 0
d
? 
? 
?WD WD WDrG G G(: : :(+ + +6 6 6
 
 
6
 
 

 
 
4I I I(  !0 !0 !0F2 2 2 Xm4479 92 29 92/ / /1 1 1 > > > 0 0 0

D 
D 
D N N N
= = = = =r   r   c                        e Zd Z fdZ xZS )
StringTestc                     t                                                       t          j        | j        | j                  }|                     t          |j        d| j        d d                    d S )Nr   rD   )superr6  r   r   r   r+   r,   r5  )r   r@   	__class__s     r   r6  zStringTest.test_setitem  s[    Kt|44)Q]At|BQB7GHHHHHr   )r   r   r   r6  __classcell__)r  s   @r   r  r    sA        I I I I I I I I Ir   r  c                   D    e Zd ZdZdZdZdZ ed          ZdZ	d Z
d Zd	S )
UnicodeTestr   u   ☺ ﻿u   ☺ ﻾u   ☺﻿3rD   c                 n   |                      t          t          j        dd           t          j        dd          }|                    d           |                    d           |                    d           |                    d           |                                }|                     |d           |                     |j        t                     d	}t          j        d|          }|                     t          |          d
           |                      t          |j                   d S )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===K-..	c	b	b	)***KKMM>???\2224KQGGF	H 	H 	H 	)Q]33333r   c                     t           dk    rd}n|                     d           t          j        d|          }|                     t          |j                   |                     t          t          |           d S )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  sp    1-KK MM6777K[))*ak222*c1-----r   N)r   r   r   r   r   r  r  ra   r   r   r   r  r   r   r   r  r    sX        H$G+N*Mc&kkGK4 4 4(
. 
. 
. 
. 
.r   r  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	
NumberTestc                    t          j         | j        t          d                    }|                     |d d          |           |                     |d d d         t          j         | j        g d                     |                     |dd d         t          j         | j        ddg                     |                     |d d d         t          j         | j        g d                     |                     |d d d         t          j         | j        g d	                     |                     |dd d         t          j         | j        ddg                     |                     |d
d         |           |                     |dd
d         |d d d                    |                     |d
dd         t          j         | j        g d                     |                     |ddd         t          j         | j        g                      |                     |ddd         t          j         | j        g                      d S )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   KuQxx00222"""33Q3T]GGG!D!DEEE14a4%+dmaU"C"CDDD44R4%+dm[[["I"IJJJ44R4%+dmWWW"E"EFFF15b55;t}qe#D#DEEE49q)))3tB;44R41114A:DM777(K(KLLL4Q;T]B)G)GHHH5r>*EKr,J,JKKKKKr   c                 N   t          j         | j        t          d                    }|d d d= |                     |t          j         | j        ddg                     t          j         | j        t          d                    }|dd d= |                     |t          j         | j        g d                     t          j         | j        t          d                    }|dd d= |                     |t          j         | j        g d                     t          j         | j        t          d                    }|d d d	= |                     |t          j         | j        g d
                     t          j         | j        t          d                    }|dd ddz  = d S )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  sk   KuQxx00cccFEK!u==>>>KuQxx00addGEKwww??@@@KuQxx00aeeHEKyyyAABBBKuRyy11fffIEK7J7J7JKKLLLKuRyy11aiCiLLLr   c                    t          j         | j        t          d                    }t          j         | j        dgdz            |d d d<   |                     |t          j         | j        g d                     t          j         | j        t          d                    }t          j         | j        dgdz            |d d d<   |                     |t          j         | j        g d                     t          j         | j        t          d	                    }||d d d
<   |                     |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<   d S )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  s   KuRyy11T]RDF33##A#EK7Z7Z7Z[[\\\KuRyy11+dmbT!V44$$B$EK7X7X7XYYZZZKuQxx00$$B$EK|||DDEEEKuRyy11aaaDaaaDk$-q22!A#%!**!A$r   c                 |   t          j         | j        t          d                    }|                     t	          |          t	          t          d                               t          j         | j        dg          }|                     |d         |v d           |                     |d         |vd           d S )NrK   rU   rC   Tr   )r   r   r   r=   r   r  s      r   test_iterationcontainsz!NumberTest.test_iterationcontains  s    KuRyy11a$uRyy//222Kt,,2!T***1Q-----r   c                    t          j         | j        |g          }||d<   |                     t          t           j         | j        |dz
  g           |                     t          |j        d|dz
             t          j         | j        |g          }||d<   |                     t          t           j         | j        |dz   g           |                     t          |j        d|dz              d S r   )r   r   r+   r   r5  )r   lowerupperr@   s       r   check_overflowzNumberTest.check_overflow  s     Kw//!-dmeAgYOOO-57CCCKw//!-dmeAgYOOO-57CCCCCr   c                     | j         } G d dt          j                  } || j         g dd          }|                     |d         d           |                     t          t
          |dd           d S )	Nc                   &    e Zd ZdgZd Zd Zd ZdS )6NumberTest.test_subclassing.<locals>.ExaggeratingArrayoffsetc                 D    t           j                             | ||          S r   )r   __new__)clsr   r   r  s       r   r  z>NumberTest.test_subclassing.<locals>.ExaggeratingArray.__new__  s    {**3$???r   c                     || _         d S r   )r  )r   r   r   r  s       r   r   z?NumberTest.test_subclassing.<locals>.ExaggeratingArray.__init__
  s    $r   c                 R    t           j                             | |          | j        z   S r   )r   r1  r  )r   rk   s     r   r1  zBNumberTest.test_subclassing.<locals>.ExaggeratingArray.__getitem__  s!    {..tQ77$+EEr   N)r   r   r   	__slots__r  r   r1  r   r   r   ExaggeratingArrayr    sP        !
I@ @ @% % %F F F F 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 
	F 
	F 
	F 
	F 
	F 
	F dm]]]A>>adA&&&.'1gvFFFFFr   c                     t          j         dt          d                    }t          j         | j        |          }|                     ||           d S )Nr[   rK   )r   r   r   r=   r  s      r   test_frombytearrayzNumberTest.test_frombytearray  sH    KU2YY''Kq))Ar   N)
r   r   r   r  r  r  r  r  r  r  r   r   r   r  r    s        L L L  "  $. . .D D D G G G&    r   r  c                       e Zd Zd ZdS )IntegerNumberTestc                 `   t          j         | j                  }|                    d           |                     t                    5  |                    d           d d d            n# 1 swxY w Y   |                     t                    5  d|d<   d d d            d S # 1 swxY w Y   d S )Nr'   g      E@r   )r   r   r   r+   r,   r?   s     r   test_type_errorz!IntegerNumberTest.test_type_error  s   K&&	y)) 	 	HHTNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	AaD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   	A++A/2A/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dS )Intablec                     || _         d S r   _num)r   nums     r   r   zIntable.__init__$  s    			r   c                     | j         S r   r  r$   s    r   	__index__zIntable.__index__&  
    yr   c                     | j         S r   r  r$   s    r   __int__zIntable.__int__(  r  r   c                 Z    t          t          |           t          |          z
            S r   r  r   r   others     r   __sub__zIntable.__sub__*  !    s4yy3u::-...r   c                 Z    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                   0    e Zd Zg dZg dZg dZdZd ZdS )SignedNumberTest)rC   r   r8   r'   rh   )rC   r   r8   r'   ~   )rC   r   r8   +   rh      c                 p   t          j         | j                  }dt          t          d|j        dz  dz
                      z  }t          t          d|j        dz  dz
                      dz
  }|                     ||           |                     t          |          t          |                     d S )NrC   rD   rI   r8   r   r   r   powr   r  r  r   r@   r  r  s       r   test_overflowzSignedNumberTest.test_overflow5  s    K&&SQ
Q 233444C1:>A-..//!3E5)))GENNGENN;;;;;r   N)r   r   r   r   r  r  r   r  r   r   r   r  r  /  sI        """G)))N(((MG< < < < <r   r  c                   6    e Zd Zg dZg dZg dZdZd Zd ZdS )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
  }|                     ||           |                     t          |          t          |                     d S )Nr   rD   rI   r8   r  r  s       r   r  z UnsignedNumberTest.test_overflowB  sx    K&&C1:>**++a/E5)))GENNGENN;;;;;r   c                 0   t          | j                  }t          j        | j        | j                  }|                    |           |                     |t          j        | j        | j        | j        z                        t          j        | j        | j                  }|                    t          t          |                               |                     |t          j        | j        | j        | j        d d d         z                        d S r   )bytesr   r   r   rb  r=   r  r   )r   r  r@   s      r   test_bytes_extendz$UnsignedNumberTest.test_bytes_extendI  s    $,Kt|44	Kt|DL'@AA	
 	
 	

 Kt|44	8A;;''(((Kt|DL24F'FGG	
 	
 	
 	
 	
r   N)	r   r   r   r   r  r  r   r  r  r   r   r   r  r  <  sX        &&&G---N,,,MG< < <
 
 
 
 
r   r  c                       e Zd ZdZdZdS )ByteTestr[   r8   Nr   r   r   r   r   r   r   r   r  r  [          HKKKr   r  c                       e Zd ZdZdZdS )UnsignedByteTestr   r8   Nr  r   r   r   r	  r	  _  r  r   r	  c                       e Zd ZdZdZdS )	ShortTestrj   rD   Nr  r   r   r   r  r  c  r  r   r  c                       e Zd ZdZdZdS )UnsignedShortTestre   rD   Nr  r   r   r   r  r  g  r  r   r  c                       e Zd ZdZdZdS )IntTestrk   rD   Nr  r   r   r   r  r  k  r  r   r  c                       e Zd ZdZdZdS )UnsignedIntTestr0   rD   Nr  r   r   r   r  r  o  r  r   r  c                       e Zd ZdZdZdS )LongTestrl   rE   Nr  r   r   r   r  r  s  r  r   r  c                       e Zd ZdZdZdS )UnsignedLongTestrf   rE   Nr  r   r   r   r  r  w  r  r   r  c                       e Zd ZdZdZdS )LongLongTestqrI   Nr  r   r   r   r  r  {  r  r   r  c                       e Zd ZdZdZdS )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	dS )	FPTest)      Er   r'        j@g    _)r  r   r'   r  g    _)r  r   r'   r  g    _Br  c                 2    |                      ||           d S r   )assertAlmostEqualr   s      r   r   zFPTest.assertEntryEqual  s    vv.....r   c                    t          j         | j        t          d          g          }t          j         | j        t          d          g          }|                     ||k    d           |                     ||k    d           |                     ||k    d           |                     ||k    d           |                     ||k     d           |                     ||k    d           d S )NnanTF)r   r   r   r   r  s      r   test_nanzFPTest.test_nan  s    Ke~66Ke~66a1fd###a1fe$$$a!eU###a1fe$$$a!eU###a1fe$$$$$r   c                    t          j         | j        | j                  }|                     t          |j        d           |j        dv rt          j         | j        | j                  }|                                 |j        dk    r|                     ||           n:|                     |	                                |	                                           |                                 |                     ||           d S d S )Nr'   r   r8   )
r   r   r   r+   r,   r   r   r=   r   r  r  s      r   r   zFPTest.test_byteswap  s    Kt|44)QZ444:%%DM4<88AJJLLLz1}}  A&&&&
 ##AIIKK===JJLLLQ""""" &%r   N)
r   r   r   r   r  r  r   r   r$  r   r   r   r   r  r    sg        (((G///N---MG/ / /% % %# # # # #r   r  c                       e Zd ZdZdZdS )	FloatTestrp   rE   Nr  r   r   r   r'  r'    r  r   r'  c                       e Zd ZdZdZd ZdS )
DoubleTestr^   rI   c                 :   ddl m} t          j        ddgdz            }	 ||dz  dz   z  }|                     d           n# t          $ r Y nw xY wt          j        dg d          }	 ||d	z  dz   z   |                     d           d S # t          $ r Y d S 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    KbT%Z((	P%!##A IINOOOO  	 	 	D	 K:::;;	P!a   IINOOOOO  	 	 	DD	s#   A 
AA*B 
BBN)r   r   r   r   r   r-  r   r   r   r)  r)    s2        HKP P P P 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dS )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  sU    {4=*B*B*BCCtqyQDMB4?^^^+KLLLr   g      @)memusec                 |    |                      |          }|                     t          |          |dz              d S )NrE   )r   r=   r>   r   r3  r   s      r   test_example_dataz LargeArrayTest.test_example_data  s9    ,,t$$WtAv.....r   c                    |                      |          }|                     |d         d           |                     ||dz             d           |                     ||         d           |                     |d         d           |                     ||dz            d           |                     |d         d           d S )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                 :   |                      |          }|                     t          |d d                   g d           |                     t          |dd                    g d           |dd         }|                     t          |          |dz              |                     |d         d           |                     |d         d	           ~|d d d         }|                     t          |          |d
z   dz             |                     t          |d d                   g d           |dz  r/|                     t          |dd                    ddg           d S |                     t          |dd                    dd	g           d S )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$$gbqbk**LLL999gbccl++^^^<<<qt}TDF+++a!$$$b2&&&sss|TT!VaK000d2A2h666!8 	7T$rss)__q"g66666T$rss)__q"g66666r   c                     |                      |          }|                     |                    d          |dz             |                     |                    d          d           d S )Nr   rI   rL   r8   )r   r=   rU  r7  s      r   rV  zLargeArrayTest.test_count  sa    ,,t$$q))47333r**A.....r   c                     |                      |          }|                    d           |                     |d         d           d S )NrM   rC   )r   r   r=   r7  s      r   test_appendzLargeArrayTest.test_append  sE    ,,t$$rb)))))r   c                    |                      |          }|                    t          g d                     |                     t	          |          |dz              |                     t          |dd                    g d           d S 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  s    ,,t$$t,,,--...WtAv...gbccl++-K-K-KLLLLLr   c                     |                      |          }|                    d           |                     t          |          |dz              |                     t	          |dd                    g dt	          d          z              d S )Ns   abcdrI   rD  r2  )r   r  r=   r>   r   r7  s      r   test_frombyteszLargeArrayTest.test_frombytes  s    ,,t$$'"""WtAv...gbccl++^^^d7mm-KLLLLLr   c                    |                      |          }|                    g d           |                     t          |          |dz              |                     t	          |dd                    g d           d S rC  )r   r   r=   r>   r   r7  s      r   test_fromlistzLargeArrayTest.test_fromlist  s    ,,t$$)))***WtAv...gbccl++-K-K-KLLLLLr   c                 ~   |                      |          }|                     |                    d          d           |                     |                    d          d           |                     |                    d          d           |                     |                    d          |dz              d S )Nr   r8   rH   rL   r<   )r   r=   r   r7  s      r   rS  zLargeArrayTest.test_index  s    ,,t$$q))1---q))1---q))1---r**DF33333r   c                    |                      |          }|                    dd           |                    dd           |                    |dz   d           |                     t          |          |dz              |                     |d         d           |                     |d         d           |                     ||dz            d           d S )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                    |                      |          }|                     |                    d          d           |                     |d         d           |                     |                    |dz             d           |                     ||dz            d           |                     |                    d          d           |                     |d         d           |                     t          |          |dz              |                     |                                d           |                     t          |          |           d S )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11a"---Q+++Q'''WtAv...+++Wt,,,,,r   c                    |                      |          }|                    d           |                     t          |          |dz              |                     |d         d           |                    d           |                     t          |          |dz              |                     ||         d           |                     ||dz            d           d S )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                 t   |                      |          }|                                 |                     t          |          |dz              |                     |d         d           |                     |d         d           |                     |d         d           |                                 |                     t          |          |dz              |                     t	          |d d                   g d           |                     t	          |dd                    g d	           d S )
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...gbqbk**LLL999gbccl++^^^<<<<<r   g     @&@c                    |                      |          }|                                }|                     t          |          t          |                     |                     |d d         t	          |d d                              |                     |dd          t	          |dd                               d S )NrI   rD  )r   r
  r=   r>   r   )r   r3  r   lss       r   test_tolistzLargeArrayTest.test_tolistD  s    ,,t$$^^R#g,,///BQBgbqbk!2!2333BCC$wrss|"4"45555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 -,7" WE***/ / +*/
 WE**** * +**
 WE***M M +*M WE***M M +*M WE***M M +*M WE***4 4 +*4 WE***. . +*. WE***
- 
- +*
- WE***. . +*. WE***
= 
= +*
= WG,,,6 6 -,6 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     sO               & & & & & & " " " " " "           



  = = = = = =u{3(	 	 	 	 	EK 	 	 	# # # # #ek # # # 	!$ !$ !$ !$ !$x  !$ !$ !$P           aM aM aM aM aMX. aM aM aMHC= C= C= C= C= C= C= C=JI I I I I I I I&. &. &. &. &.*h/ &. &. &.P` ` ` ` ` ` ` `D    
   
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/< < < < <( < < <
 
 
 
 
* 
 
 
>    !2       )8+<        ("3       *H,=        1       ((*;       !2       )8+<       #X%6       -x/@   !# !# !# !# !#Z !# !# !#F    )   P P P P P* P P P,J6 J6 J6 J6 J6X& J6 J6 J6X zHMOOOOO r   