
    h              	         % S SK Jr  S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	J
r
  S SKJrJrJr  S SKrS SKJrJrJr  S SKrS SKJrJr  S SKJr  S SKJrJr  S S	KJr   " S
 S5      r  " S S5      r! " S S5      r" " S S5      r# " S S5      r$S r%S r&\&S 5       r'S r(S r)\RT                  RW                  S/ SQ5      S 5       r,S r-S r.SSS .S!S"S#/004SSS .S!S"S"S#/0044r/S$\0S%'   S0 0 4SSS .SSS .0 4S#S0S"S0S!S"S"S#/0044r1S&\0S''   \RT                  RW                  S(\/5      S) 5       r2\RT                  RW                  S*\15      S+ 5       r3S, r4S- r5S. r6S/ r7S0 r8S1 r9S2 r:S3 r;\RT                  RW                  S4\Rx                  " S55      R{                  S6S75      S"4\Rx                  " S55      S"4\Rx                  " S55      \Rx                  " S65      4/5      S8 5       r>S9 r?S: r@S; rAS< rBS= rCS> rDS? rES@ rFSA rGSB rHSC rISD rJSE rKSF rLSG rMSH rNSI rO\RT                  RW                  SJ/ SKQ5      SL 5       rPSM rQSN rRSO rSg)P    )annotationsN)Any)patchMock)datetimedate	timedelta)assert_array_equalassert_approx_equalassert_array_almost_equal)_apicbook)delete_masked_points
strip_math)
ModuleTypec                  ,    \ rS rSrS rS rS rS rSrg)Test_delete_masked_points   c                    [         R                  " [        5         [        S[        R
                  " SS5      5        S S S 5        g ! , (       d  f       g = f)Nza stringg      ?g      @)pytestraises
ValueErrorr   nparangeselfs    M/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_cbook.pytest_bad_first_arg,Test_delete_masked_points.test_bad_first_arg   s/    ]]:& RYYsC-@A '&&s   "A
Ac                   / SQnSSS[         R                  [         R                  S/n[        X5      u  p4/ SQn[        U[         R                  " U5      U   5        [        U[         R                  " U5      U   5        g )N)abcdef            )r   r'   r(      )r   nanr   r
   array)r   a1a2result1result2inds         r   test_string_seq)Test_delete_masked_points.test_string_seq   sa    +Arvvrvvq)/77BHHRL$567BHHRL$56    c           
        [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      /n[        R                  R                  SSS[        R                  [        R                  S// SQS	9n[        X5      n/ S
Qn[        US   [        R                  " U5      U   5        [        US   X$   R                  5       5        g )Ni  r'   r(   r)      r+   r*   FFTTFFmaskr   r'   r+   r   )r   r   mar-   r,   r   r
   
compressed)r   datesa_maskedactualr2   s        r   test_datetime'Test_delete_masked_points.test_datetime%   s    $1%xa';$1%xa';$1%xa';= 55;;1a;$L  N%e66!9bhhuoc&:;6!9hm&>&>&@Ar5   c                6   [         R                  R                  SSS[         R                  [         R                  S// SQS9n[        R
                  " / SQ5      n[        X5      n/ SQn[        US	   X   R                  5       5        [        US   X$   5        g )
Nr'   r(   r)   r*   r8   r9   )rgr"   r#   myr;   r   )	r   r<   r-   r,   mcolorsto_rgba_arrayr   r
   r=   )r   r?   a_rgbar@   r2   s        r   	test_rgba#Test_delete_masked_points.test_rgba0   s}    55;;1a;$L  N&&'EF%h76!9hm&>&>&@A6!9fk2r5    N)	__name__
__module____qualname____firstlineno__r   r3   rA   rK   __static_attributes__rM   r5   r   r   r      s    B7	B3r5   r   c                  b    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)Test_boxplot_stats:   c                   [         R                  R                  S5        SU l        SU l        [         R                  R                  U R                  U R                  4SSS9U l        [        / SQ5      U l        [        R                  " U R                  5      U l        SS	S
SS[         R                  " / SQ5      SSSSS.
U l        SSS.U l        SS[         R                  " SS/5      S.U l        SSS.U l        SSS.U l        g )Ni  %   r7         ?g      ?)sizemeansigma)rZ   medq1q3iqrcilocihiwhislowhishiflierslabelgP$C@g@ÿg>zzD*@gjtxJ*@gDm(
@)Ӿ#W@79qU@gEɳE@gqמC@g]Y?g6 v-@gIQ;@g inޓ?)
ra   r`   r_   rZ   r\   rd   r]   r^   rc   rb   gN!@g?)ra   r`   g =ɳE@rf   rg   )rc   rb   rd   geLM?)rb   rc   g,#W@)r   randomseednrowsncols	lognormaldatasorted
known_keysr   boxplot_statsstd_resultsr-   known_nonbootstrapped_resknown_bootstrapped_ciknown_whis3_resknown_res_percentilesknown_res_ranger   s    r   setup_methodTest_boxplot_stats.setup_method;   s   
		s

II''djj$**-E-0 ( >	  "
 
 !..tyy9 ''%%%hh    %#(**
&  &&&
" )*hh[9: 
 +)&
" +( 
r5   c                F    [        U R                  [        5      (       d   eg N)
isinstancerq   listr   s    r   test_form_main_list&Test_boxplot_stats.test_form_main_listm   s    $**D1111r5   c                X    U R                    H  n[        U[        5      (       a  M   e   g rz   )rq   r{   dictr   ress     r   test_form_each_dict&Test_boxplot_stats.test_form_each_dictp   s%    ##Cc4(((( $r5   c                r    U R                    H'  n[        U5      [        U R                  5      ::  a  M'   e   g rz   )rq   setro   r   s     r   test_form_dict_keys&Test_boxplot_stats.test_form_dict_keyst   s-    ##Cs8s4??3333 $r5   c                    U R                   S   nU R                  R                  5        H  u  p#[        X   U5        M     g )Nr   )rq   rr   itemsr   )r   r   keyvalues       r   test_results_baseline(Test_boxplot_stats.test_results_baselinex   s:    q!88>>@JC%ch6 Ar5   c                    [         R                  " U R                  SS9nUS   nU R                  R	                  5        H  u  p4[        X#   U5        M     g )Ni'  )	bootstrapr   )r   rp   rm   rs   r   r   r   resultsr   r   r   s        r   test_results_bootstrapped,Test_boxplot_stats.test_results_bootstrapped}   sH    %%dii5Aaj44::<JC%0 =r5   c                    [         R                  " U R                  SS9nUS   nU R                  R	                  5        H  u  p4[        X#   U5        M     g )Nr)   whisr   )r   rp   rm   rt   r   r   r   s        r   test_results_whiskers_float.Test_boxplot_stats.test_results_whiskers_float   sH    %%diia8aj..446JC%ch6 7r5   c                    [         R                  " U R                  SS/S9nUS   nU R                  R	                  5        H  u  p4[        X#   U5        M     g )Nr   d   r   )r   rp   rm   rv   r   r   r   s        r   test_results_whiskers_range.Test_boxplot_stats.test_results_whiskers_range   sL    %%diiq#h?aj..446JC%ch6 7r5   c                    [         R                  " U R                  SS/S9nUS   nU R                  R	                  5        H  u  p4[        X#   U5        M     g )Nr+   _   r   r   )r   rp   rm   ru   r   r   r   s        r   !test_results_whiskers_percentiles4Test_boxplot_stats.test_results_whiskers_percentiles   sL    %%diiq"g>aj44::<JC%ch6 =r5   c                    / SQn[         R                  " U R                  US9n[        X5       H  u  p4US   U:X  a  M   e   [         R                  " U R                  5      nU H  nSU;  a  M   e   g )N)Test1r(   Aardvarkr7   labelsre   )r   rp   rm   zip)r   r   r   labr   s        r   test_results_withlabels*Test_boxplot_stats.test_results_withlabels   sn    ,%%dii?F,HCw<3&&& - %%dii0C#%%% r5   c                    SS/n[         R                  " [        5         [        R                  " U R
                  US9  S S S 5        g ! , (       d  f       g = f)Nr'   r(   r   )r   r   r   r   rp   rm   )r   r   s     r   test_label_error#Test_boxplot_stats.test_label_error   s7    Q]]:&		&9 '&&s    A
Ac                    [         R                  R                  SS9n[        R                  " [
        5         [        R                  " U5        S S S 5        g ! , (       d  f       g = f)N)"   r   r   )rY   )r   rh   normalr   r   r   r   rp   r   rm   s     r   test_bad_dims Test_boxplot_stats.test_bad_dims   s?    yy\2]]:&% '&&s   A
A&c                n   [         R                  " SS9n[         R                  " SUS/5      n[        R                  " USS9n[        R                  " USS9nUS   S	   S:X  d   eUS   S
   S:X  d   e[        US   S   SS/5        US   S	   S:X  d   eUS   S
   S:X  d   e[        US   S   / 5        g )N   )shapei   F)	autorangeTr   rb   rc   rd   )r   zeroshstackr   rp   r   )r   xbstats_falsebstats_trues       r   "test_boxplot_stats_autorange_false5Test_boxplot_stats.test_boxplot_stats_autorange_false   s    HH3IIsArl#**1>))!t<Ax(A---Ax(A---!,q/(";c2YG1~h'3...1~h'2---!+a.":B?r5   )
rm   rs   ro   rr   ru   rv   rt   rk   rj   rq   N)rN   rO   rP   rQ   rw   r}   r   r   r   r   r   r   r   r   r   r   r   rR   rM   r5   r   rT   rT   :   sE    0
d2)47
1777&:
&
@r5   rT   c                      \ rS rSrS rSrg)Hashable   c                    g rz   rM   r   s    r   dummyHashable.dummy       Tr5   rM   N)rN   rO   rP   rQ   r   rR   rM   r5   r   r   r      s    r5   r   c                      \ rS rSrSrS rSrg)
Unhashable   Nc                    g rz   rM   r   s    r   r   Unhashable.dummy   r   r5   rM   )rN   rO   rP   rQ   __hash__r   rR   rM   r5   r   r   r      s
    Hr5   r   c                  l   \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	S
S/5      \R                  R                  S\\/5      S 5       5       r\R                  R                  S	S
S/5      \R                  R                  S\\/5      S 5       5       r\R                  R                  S	S
S/5      \R                  R                  S\\/5      S 5       5       r\R                  R                  S	S
S/5      \R                  R                  S\\/5      S 5       5       rS rSrg)Test_callback_registry   c                F    SU l         [        R                  " 5       U l        g )Ntest)signalr   CallbackRegistry	callbacksr   s    r   rw   #Test_callback_registry.setup_method   s    //1r5   c                |    U(       a  U R                   R                  X5      $ U R                   R                  X5      $ rz   )r   connect_connect_picklable)r   sfuncpickles       r   r   Test_callback_registry.connect   s/    >>))!22>>44Q==r5   c                8    U R                   R                  U5      $ rz   )r   
disconnect)r   cids     r   r   !Test_callback_registry.disconnect   s    ~~((--r5   c                   ^  [        U 4S jT R                  R                   5       5      n[        T R                  R                  R	                  T R
                  5      5      nX:X  d   eU$ )Nc              3  F   >#    U  H  u  pUTR                   :H  v   M     g 7frz   r   ).0r   pr   s      r   	<genexpr>/Test_callback_registry.count.<locals>.<genexpr>   s     O2N$!Q$++%2Ns   !)sumr   _func_cid_maplengetr   )r   count1count2s   `  r   countTest_callback_registry.count   sQ    O$..2N2NOOT^^--11$++>?r5   c                    [         R                  R                  5         / U R                  R                  Q/ :X  d   eU R                  R                  0 :X  d   eU R                  R
                  [        5       :X  d   eg rz   )r   testingbreak_cyclesr   r   _pickled_cidsr   r   s    r   is_emptyTest_callback_registry.is_empty   sa    


!.--."444~~''2---~~++su444r5   c                    [         R                  R                  5         / U R                  R                  Q/ :w  d   eU R                  R                  0 :w  d   eg rz   )r   r   r   r   r   r   s    r   is_not_empty#Test_callback_registry.is_not_empty   sG    


!.--."444~~''2---r5   c                    [         R                  " 5       nUR                  SS 5        [        R                  " [        R
                  " U5      5      nUR                  SS 5      nUS:X  d   eg )Nr!   c                     g rz   rM   rM   r5   r   <lambda>9Test_callback_registry.test_cid_restore.<locals>.<lambda>   s    r5   r#   c                     g rz   rM   rM   r5   r   r   r      s    tr5   r'   )r   r   r   r   loadsdumps)r   cbcb2r   s       r   test_cid_restore'Test_callback_registry.test_cid_restore   sP    ##%


3%ll6<<+,kk#|,axxr5   r   TFclsc                   U R                  5         U" 5       nU R                  U R                  UR                  U5      n[	        U5      [
        L d   eU R                  5         U R                  U R                  UR                  U5      nXE:X  d   eU R                  5         [        / U R                  R                  Q5      S:X  d   e[        U R                  R                  5      S:X  d   eAU R                  5         g )Nr'   )
r   r   r   r   typeintr   r   r   r   )r   r   r  mini_mecid1cid2s         r   test_callback_complete-Test_callback_registry.test_callback_complete   s     	 % ||DKK?DzS    ||DKK?||2T^^1123q8884>>++,111 	r5   c                
   U R                  5         U" 5       nU R                  U R                  UR                  U5      n[	        U5      [
        L d   eU R                  5         U R                  U5        U R                  5         g rz   r   r   r   r   r  r  r   r   r   r   r  r  r	  s        r   test_callback_disconnect/Test_callback_registry.test_callback_disconnect  sg     	 % ||DKK?DzS    	r5   c                
   U R                  5         U" 5       nU R                  U R                  UR                  U5      n[	        U5      [
        L d   eU R                  5         U R                  S5        U R                  5         g )Nfoor  r  s        r   test_callback_wrong_disconnect5Test_callback_registry.test_callback_wrong_disconnect  sj     	 % ||DKK?DzS    	r5   c                   U R                  5         U" 5       nU R                  U R                  UR                  U5        U" 5       nU R                  U R                  UR                  U5        U" 5       nU R                  U R                  UR                  U5        U R	                  5         U R                  5       S:X  d   eS nS nU R                  5         g Nr(   )r   r   r   r   r   r   )r   r   r  r  mini_me2s        r   'test_registration_on_non_empty_registry>Test_callback_registry.test_registration_on_non_empty_registry'  s     	 %T[['--8 5T[[(..&9 5T[[(..&9 	zz|q    r5   c                    [        [        R                  " [        R                  " [        R
                  " 5       5      5      S5      (       d   eg )Nr   )hasattrr   r   r   r   r   r   s    r   test_pickling$Test_callback_registry.test_picklingB  s9    v||FLL1G1G1I$JK"$ $ 	$ $r5   )r   r   N)rN   rO   rP   rQ   rw   r   r   r   r   r   r  r   markparametrizer   r   r  r  r  r  r  rR   rM   r5   r   r   r      sF   2>.5.
 [[Xe}5[[UXz$:; < 60 [[Xe}5[[UXz$:; < 6" [[Xe}5[[UXz$:; < 6" [[Xe}5[[UXz$:; < 62$r5   r   c                8   [         R                  " 5       nUR                  SS 5        UR                  [         SS 5        [        R
                  " [        5         UR                  SS5        S S S 5        U R                  5       nUR                  UR                  s=:X  a  S:X  d   e   eUR                  [         SS 5        UR                  SS5        U R                  5       nUR                  S:X  d   eSUR                  ;   d   eg ! , (       d  f       N= f)	Nr  c                     g rz   rM   rM   r5   r   r   Atest_callbackregistry_default_exception_handler.<locals>.<lambda>I  s    dr5   "_get_running_interactive_frameworkc                     g rz   rM   rM   r5   r   r   r#  L      Tr5   zargument mismatch c                     g)Nznot-nonerM   rM   r5   r   r   r#  S  s    Zr5   z,takes 0 positional arguments but 1 was given)r   r   r   setattrr   r   	TypeErrorprocess
readouterrouterr)capsysmonkeypatchr   outerrs       r   /test_callbackregistry_default_exception_handlerr2  G  s    				!BJJul#3\C	y	!


5-. 
" F::)r)))))35GIJJu)* F::9VZZGGG 
"	!s   D
Dc                  ^  " S S[         5      mS nS nU4S jn[        R                  " S S9nUR                  SU5        [        R                  " US9nUR                  SU5        [        R                  " US9nUR                  SU5        [        R
                  R                  SU[        /UT/U[        //5      " U 5      $ )	Nc                      \ rS rSrSrg)%raising_cb_reg.<locals>.TestExceptioni[  rM   NrN   rO   rP   rQ   rR   rM   r5   r   TestExceptionr5  [      r5   r7  c                     [         erz   )RuntimeErrorrM   r5   r   raise_runtime_error+raising_cb_reg.<locals>.raise_runtime_error^  s    r5   c                     [         erz   r   rM   r5   r   raise_value_error)raising_cb_reg.<locals>.raise_value_errora  s    r5   c                6   > [        U [        5      (       a  TeU erz   )r{   r:  )excpr7  s    r   transformer#raising_cb_reg.<locals>.transformerd  s    dL))
r5   exception_handlerr  zcb, excp)		Exceptionr   r   r   r   r  r   r:  r   )r   r;  r?  rC  cb_oldcb_filtcb_filt_passr7  s          @r   raising_cb_regrK  Z  s    	  ##d;F
NN5-. $${CGOOE./ ))KHL 12;;"":%+\$:%,m$<%1:$>$@A BFG Gr5   c                    U R                  [        SS 5        [        R                  " U5         UR	                  S5        S S S 5        g ! , (       d  f       g = f)Nr$  c                     g rz   rM   rM   r5   r   r   @test_callbackregistry_custom_exception_handler.<locals>.<lambda>~  r&  r5   r  )r)  r   r   r   r+  )r0  r   rB  s      r   .test_callbackregistry_custom_exception_handlerrO  {  s=    3\C	t	


5 
		s   A


Ac                   ^ [         R                  " S/S9n / mU4S jnU R                  SU5        [        R                  " [
        5         U R                  SU5        S S S 5        U R                  SS5        [        R                  " [
        5         U R                  SS5        S S S 5        TS/:X  d   eg ! , (       d  f       N_= f! , (       d  f       N)= f)Nr  )signalsc                (   > TR                  U 5        g rz   )append)r   r   s    r   r   )test_callbackregistry_signals.<locals>.cb  s    w~~a r5   barr'   )r   r   r   r   r   r   r+  )crr   r   s     @r   test_callbackregistry_signalsrW    s    				0BG JJub	z	"


5" 
#JJua	z	"


5! 
#qc>> 
#	" 
#	"s   B7C7
C
Cc                 *   S n [         R                  " U S9nS nS nUR                  SU5        UR                  SU5        UR                  5          UR	                  S5        UR	                  S5        S S S 5        UR                  SS9   UR	                  S5        [
        R                  " [        SS	9   UR	                  S5        S S S 5        S S S 5        [
        R                  " [        S
S	9   UR	                  S5        S S S 5        [
        R                  " [        SS	9   UR	                  S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nu= f! , (       d  f       g = f)Nc                    U erz   rM   )rB  s    r   raise_handler5test_callbackregistry_blocking.<locals>.raise_handler  s    
r5   rE  c                     [        S5      e)N1 should be blockedr>  rM   r5   r   
test_func12test_callbackregistry_blocking.<locals>.test_func1      .//r5   c                     [        S5      e)N2 should be blockedr>  rM   r5   r   
test_func22test_callbackregistry_blocking.<locals>.test_func2  r`  r5   test1test2r   rb  matchr]  )r   r   r   blockedr+  r   r   r   )rZ  r   r^  rc  s       r   test_callbackregistry_blockingrj    s   			-	@B00JJw
#JJw
# 



7


7 

 
7	#


7]]:-BCJJw D	 
$ 
z)>	?


7 
@	z)>	?


7 
@	? 
 DC	 
$	# 
@	?	?	?sH   #E +E"7E	E"2E3%F 
E
E	E""
E03
F
Fzline, result)	)a : no_commentrk  )a : "quoted str"rl  )za : "quoted str" # commentrl  )a : "#000000"rm  )za : "#000000" # commentrm  )a : ["#000000", "#FFFFFF"]rn  )z$a : ["#000000", "#FFFFFF"] # commentrn  )z"a : val  # a comment "with quotes"za : val)z# only comment "with quotes" xxr'  c                <    [         R                  " U 5      U:X  d   eg)z+Strip everything from the first unquoted #.N)r   _strip_comment)lineresults     r   test_strip_commentrs    s     %///r5   c                     [         R                  " [        SS9   [        R                  " S5        S S S 5        g ! , (       d  f       g = f)NzMissing closing quoterg  zgrid.color: "aa)r   r   r   r   rp  rM   r5   r   test_strip_comment_invalidru    s-    	z)@	A./ 
B	A	As	   :
Ac                    SSSS.n / SQn/ SQn/ SQnU[        [        R                  " U R                  5       5      5      :X  d   eU[        [        R                  " U R	                  5       5      5      :X  d   eU[        [        R                  " U R                  5       5      5      :X  d   eU[        R                  " U5      :X  d   eU[        R                  " U5      :X  d   eg )Nr'   r(   r)   r!   r"   r#   r'   r(   r)   ))r!   r'   )r"   r(   )r#   r)   )rn   r   sanitize_sequencekeysvaluesr   )r$   kvis       r   test_sanitize_sequencer    s    aa AAA&Au..qvvx89999u..qxxz:;;;;u..qwwy9::::''****''****r5   r'   r(   )r!   r"   alias_mappingr!   r"   ztuple[tuple[dict, dict], ...]fail_mappingz"tuple[tuple[Any, dict, dict], ...]pass_mappingzinp, kwargs_to_normc                    [         R                  " [        5         [        R                  " 5          [
        R                  " U 40 UD6  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = frz   )r   r   r*  r   'suppress_matplotlib_deprecation_warningr   normalize_kwargs)inpkwargs_to_norms     r   test_normalize_kwargs_failr    sF    	y	!4#O#O#Qs5n5 $R	!	!#Q#Q	!	!s"   A+A	A+
A(	$A++
A9zinp, expected, kwargs_to_normc                    [         R                  " 5          U[        R                  " U 40 UD6:X  d   e S S S 5        g ! , (       d  f       g = frz   )r   r  r   r  )r  expectedr  s      r   test_normalize_kwargs_passr    s:     
	5	5	7511#HHHHH 
8	7	7s	   >
Ac                   [         R                  " S5        [        U 5      S:X  d   e[        R                  S S S:  ag  [
        R                  " [        5      R                  S   nU S   R                  R                  [        US-  5      [        US-  5      45      (       a   eg U S   R                  [        :X  d   eg )Noopsr'   r(   )r)      r   
matplotlibmpl_toolkits)r   warn_externalr   sysversion_infopathlibPath__file__parentsfilename
startswithstr)recwarnbasedirs     r   test_warn_externalr    s    vw<1
w& ,,x(0031:&&113w7M3N36w7O3P3R S S 	S S S
 qz""h...r5   c                    [         R                  " [        S5       n [        S S9U l        [
        R                  " [        SS9   [        R                  " S5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr  )return_valuez	\Adummy\Zrg  r   )
r   objectr   r   	_getframer   warnsUserWarningr   r  )mock_syss    r   (test_warn_external_frame_embedded_pythonr    sX    	eU	#x!t4\\+\:w' ; 
$	#:: 
$	#s#   (A=A,A=,
A:	6A==
Bc                    [         R                  " S5      n [         R                  " S5      n[         R                  " S5      S S S2   n[        R                  " XU5      u  p4n[         R                  " / SQ[
        S9n[         R                  " / SQ[
        S9n[         R                  " / SQ[
        S9n[        Xc5        [        Xt5        [        X5        [        R                  " X5      u  p4[        Xc5        [        Xt5        g )Nr7   r   r   r'   r'   r(   r(   r)   dtyper   r'   r'   r(   r(   r)   r)   )r)   r(   r(   r'   r'   r   r   )r   r   r   pts_to_prestepasarrayfloatr
   	r   y1y2xsy1sy2sx_target	y1_target	y2_targets	            r   test_to_prestepr    s    
		!A	1B	1dd	B''r2LBSzz/u=H

0>I

0>Ix$y&y&""1)GBx$y&r5   c                 V    [         R                  " / / 5      n U R                  S:X  d   eg N)r(   r   )r   r  r   stepss    r   test_to_prestep_emptyr    &      R(E;;&   r5   c                    [         R                  " S5      n [         R                  " S5      n[         R                  " S5      S S S2   n[        R                  " XU5      u  p4n[         R                  " / SQ[
        S9n[         R                  " / SQ[
        S9n[         R                  " / SQ[
        S9n[        Xc5        [        Xt5        [        X5        [        R                  " X5      u  p4[        Xc5        [        Xt5        g )Nr7   r  r  r  r  )r)   r)   r(   r(   r'   r'   r   )r   r   r   pts_to_poststepr  r  r
   r  s	            r   test_to_poststepr    s    
		!A	1B	1dd	B((3LBSzz/u=H

0>I

0>Ix$y&y&##A*GBx$y&r5   c                 V    [         R                  " / / 5      n U R                  S:X  d   eg r  )r   r  r   r  s    r   test_to_poststep_emptyr  0  s&    !!"b)E;;&   r5   c                    [         R                  " S5      n [         R                  " S5      n[         R                  " S5      S S S2   n[        R                  " XU5      u  p4n[         R                  " / SQ[
        S9n[         R                  " / SQ[
        S9n[         R                  " / SQ[
        S9n[        Xc5        [        Xt5        [        X5        [        R                  " X5      u  p4[        Xc5        [        Xt5        g )Nr7   r  )r         ?r  rX   rX         @r  r)   r  )r   r   r'   r'   r(   r(   r)   r)   )r)   r)   r(   r(   r'   r'   r   r   )r   r   r   pts_to_midstepr  r  r
   r  s	            r   test_to_midstepr  5  s    
		!A	1B	1dd	B''r2LBSzz<EJH

35AI

35AIx$y&y&""1)GBx$y&r5   c                 V    [         R                  " / / 5      n U R                  S:X  d   eg r  )r   r  r   r  s    r   test_to_midstep_emptyr  I  r  r5   argsr  r)   r7   c                    [         R                  " [        5         [        R                  " U 6   S S S 5        g ! , (       d  f       g = frz   )r   r   r   r   r  )r  s    r   test_step_failsr  N  s*     
z	"d# 
#	"	"s	   8
Ac                     " S S5      n [        S5       Vs/ s H	  o" 5       PM     sn=u  p#pEpg[        R                  " 5       nUR                  " U6   [	        [        U5      S   5      [	        U5      :X  d   e[	        UR                  U5      5      [	        U5      :X  d   eUSS   H  n	UR                  X)5      (       a  M   e   UR                  U5        USS   H  n	UR                  X)5      (       d  M   e   [        R                  " USS  USS  5       H  u  pUR                  X5      (       a  M   e   g s  snf )Nc                      \ rS rSrSrg)test_grouper.<locals>.DummyiY  rM   Nr6  rM   r5   r   Dummyr  Y  r8  r5   r  r+   r   r'   )ranger   Grouperjoinr   r|   get_siblingsjoinedremove	itertoolsproduct)r  _r!   r"   r#   r$   r%   objsrE   otherABs               r   test_grouperr  X  s    -21X6XEGX66MA!AFFDMtAwqz?c$i'''q~~a !SY...abxx!!!!  HHQKab88A%%%%  !!$qr(DH5xx~~~ 6 7s   D;c                     " S S5      n [        S5       Vs/ s H	  o" 5       PM     nn[        R                  " 5       nUR                  " U6   UR                  nU H
  nXT;   a  M
   e   XBS      nUSS   H  nXE   UL a  M   e   g s  snf )Nc                      \ rS rSrSrg)#test_grouper_private.<locals>.Dummyim  rM   Nr6  rM   r5   r   r  r  m  r8  r5   r  r+   r   r'   )r  r   r  r  _mapping)r  r  r  rE   mappingobase_sets          r   test_grouper_privater  l  s     "1X&XEGXD&AFFDMjjG||  AwH!"XzX%%%  's   Bc                    [         R                  " S5      n U R                  nS[        U5      :X  d   eS[        U5      :X  d   e[        R
                  " U5      nUS:X  d   eS[        U5      :X  d   eS[        U5      :X  d   eg )Nr+   r   r'   )r   r   flatnextr   _safe_first_finite)r   itrets      r   test_flatiterr  }  ss    
		!A	
BR==R==

"
"2
&C!8O8R==R==r5   c                     [         R                  " S[         R                  5      n [        R                  " U 5      n[         R
                  " U5      (       d   eg r  )r   fullr,   r   r  isnanarrr  s     r   test__safe_first_finite_all_nanr    8    
''!RVV
C

"
"3
'C88C===r5   c                     [         R                  " S[         R                  5      n [        R                  " U 5      n[         R
                  " U5      (       d   eg r  )r   r  infr   r  isinfr  s     r   test__safe_first_finite_all_infr    r  r5   c                 	    " S S5      n [         R                  " / S5      n[        R                  " U5      S:X  d   e[	        S5       Vs/ s H	  o " 5       PM     nn[         R                  " US5      n[        R                  " U5      S:X  d   e[        R
                  " S5      n[         R                  " US5      n[        R                  " U5      S:X  d   e[	        S5       Vs/ s H#  n[	        S5       Vs/ s H	  o " 5       PM     snPM%     nn[         R                  " US5      n[        R                  " U5      S:X  d   e[        R                  R                  SS5      n[         R                  " US5      n[        R                  " U5      S	:X  d   eS
/S/S//n[         R                  " US5      n[        U[        5      (       d   e[        US   [        R                  5      (       a  US   R                  S:X  d   e[        US
   [        R                  5      (       a  US
   R                  S:X  d   e[        US   [        R                  5      (       a  US   R                  S:X  d   e[        R                  " S5      [        R                  " S
5      [        R                  " S5      /n[         R                  " US5      n[        U[        5      (       d   e[        U5      S
:X  d   e[        US   [        R                  5      (       a  US   R                  S:X  d   e/ SQSS/S//n[         R                  " US5      n[        U[        5      (       d   e[        US   [        R                  5      (       a  US   R                  S:X  d   e[        US
   [        R                  5      (       a  US
   R                  S:X  d   e[        US   [        R                  5      (       a  US   R                  S:X  d   e " S S[        R                  5      n[        R
                  " S[        S9nU" S[        UR                  S9n[         R                  " US5      n[        U5      S
:X  d   e[        US   U5      (       d   e/ SQn[         R                  " US5      n[        US   5      [        U5      :X  d   e[        US   [        R                  5      (       d   eg s  snf s  snf s  snf )Nc                      \ rS rSrSrg)test_reshape2d.<locals>.Dummyi  rM   Nr6  rM   r5   r   r  r    r8  r5   r  r   )r'   r   r+   )r'   r+   r)   )r)   r+   )r+   r)   r'   r(   r   )r'   )r)   rx  r7   )r(   c                  4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )%test_reshape2d.<locals>.ArraySubclassi  c              3  h   >#    [         TU ]  5        H  n[        R                  " U5      v   M     g 7frz   )super__iter__r   r-   )r   r   	__class__s     r   r  .test_reshape2d.<locals>.ArraySubclass.__iter__  s&     )+hhuo% ,s   /2c                J   > [         R                  " [        TU ]  U5      5      $ rz   )r   r-   r   __getitem__)r   itemr  s     r   r  1test_reshape2d.<locals>.ArraySubclass.__getitem__  s    88EG/566r5   rM   )rN   rO   rP   rQ   r  r  rR   __classcell__)r  s   @r   ArraySubclassr    s    	&	7 	7r5   r	  
   r  )r
  )r  buffer)	r!   r"   r#   r#   ddr%   r&   ffr&   )r   _reshape_2Dr   r   r  r   rh   randr{   r|   ndarrayr-   r   r  rm   )r  xnewr  r   r	  r}  s         r   test_reshape2dr    s     R%D88D>V###(#(Q(A#Q$D88D>V###
		!AQ$D88D>V###.3Ah7h58	$8a%'8	$hA7Q$D88D>V### 			q!AQ$D88D>V### qcA3AQ$DdD!!!!d1grzz**tAw}}/DDDd1grzz**tAw}}/DDDd1grzz**tAw}}/DDD 
!bhhqk288A;/AQ$DdD!!!!t9>>d1grzz**tAw}}/DDD 
QFQC AQ$DdD!!!!d1grzz**tAw}}/DDDd1grzz**tAw}}/DDDd1grzz**tAw}}/DDD7

 7 			"E"Ae58AQ$D t9>>d1g}---- 	8AQ$DtAw<3q6!!!d1grzz****Q 	$ 
%7s   S*&S49S/
	S4/S4c                   [         R                  " S5      R                  SS5      nU R                  U/ SQS9n[        R
                  " US5      n[        UR                  U5       H$  u  p$[         R                  R                  X$5        M&     g )N   r
  r)   rw  columnsr   )
r   r   reshape	DataFramer   r  r   Tr   r
   )pdXr   Xnewr  s        r   test_reshape2d_pandasr    sh    
		"b!$A
Q0AQ$DqssD>


%%a. "r5   c                   [         R                  " S5      R                  SS5      nU R                  USS/S9n[        R
                  " US5      n[        UR                  U5       H$  u  p$[         R                  R                  X$5        M&     g Nr  r
  r)   r   rG   )dims)
r   r   r  	DataArrayr   r  r   r  r   r
   )xrr  r   r  r  s        r   test_reshape2d_xarrayr#    sl    
		"b!$A
Qc3Z(AQ$DqssD>


%%a. "r5   c                L   [         R                  " S5      R                  SS5      nU R                  U/ SQS9n[        R
                  " U5      u  p4[         R                  R                  X5        [         R                  " S5      n[         R                  R                  X55        g )Nr  r
  r)   rw  r  )r   r   r  r  r   index_ofr   r
   )r  r  r   Idxr  IdxRefs         r   test_index_of_pandasr(    so    
		"b!$A
Q0Aq!ICJJ!!!*YYr]FJJ!!#.r5   c                L   [         R                  " S5      R                  SS5      nU R                  USS/S9n[        R
                  " U5      u  p4[         R                  R                  X5        [         R                  " S5      n[         R                  R                  X55        g r  )r   r   r  r!  r   r%  r   r
   )r"  r  r   r&  r  r'  s         r   test_index_of_xarrayr*    ss    
		"b!$A
Qc3Z(Aq!ICJJ!!!*YYr]FJJ!!#.r5   c                     Su  pnS/U -  S/U-  -   S/U-  -   nSU 4X-   X-   U-   4/n[         R                  " U5      U:X  d   eSu  pVUS/U-  -   n[         R                  " U5      U:X  d   eS/U-  US U*  -   nXUU -   4XP-   U-   XP-   U-   U-   4/n[         R                  " U5      U:X  d   eUS/U-  -   n[         R                  " U5      U:X  d   e[         R                  " S/S-  5      / :X  d   e[         R                  " / 5      / :X  d   eg )N)r)   r7   r+   TFr   )r*      r+   )r   contiguous_regions)r!   r"   r#   r:   r  r$   r%   s          r   test_contiguous_regionsr.    sF   GA!6!8ugai4&(*DAac!e%H##D)X555DA5'!)D##D)X555719tCaRy DaC13q5!#a%'*+H##D)X5555'!)D##D)X555##UGAI."444##B'2---r5   c                    U R                  [        S5      [        SS5      S9n[        R                  " U5      nUS:X  d   eg )Nr+   r
     )indexr   )Seriesr  r   r  )r  r   r@   s      r   %test_safe_first_element_pandas_seriesr3  '  s:    
		%(%B-	0A%%a(FQ;;r5   c                     S n S nS He  u  p#[         R                  " X#-  5      R                  X#5      n[        R                  " U" US-
  5      U" US-
  5      5       H  u  pVU " XEUS9  M     Mg     g )Nc           	        U R                   u  p4/ [        SUS-
  U5      QUS-
  Pn/ [        SUS-
  U5      QUS-
  Pn/ n[        R                  " U5       Hb  u  p[        R                  " U5       HC  u  p[        R
                  " XU	S-   2XS-   24   5      R                  nUR                  U5        ME     Md     [        R                  " U5      n[        R                  " U[        R                  " XUS95      (       d   eg )Nr   r'   rstridecstride)r   r  r  pairwiser   _array_perimeterr  rS  r   r  array_equal_array_patch_perimeters)r   r7  r8  rowscolsrow_indscol_indspolysrsrs_nextcscs_nextpss                r   check*test_array_patch_perimeters.<locals>.check1  s    WW
7U1d1fg.7Q77U1d1fg.7Q7$--h7KB(11(;++AlBqyL.H,IJLLR   < 8
 

5!~~e#;;"#gGH H 	H Hr5   c                `    [        SU S-   5       Vs/ s H  oU-  S:X  d  M  UPM     sn$ s  snf )Nr'   r   )r  )nr~  s     r   divisors-test_array_patch_perimeters.<locals>.divisors@  s,     AE?9?a!eqj?999s   ++))r+   r+   )r,     )   	   r'   r6  )r   r   r  r  r  )rG  rK  r=  r>  r   r7  r8  s          r   test_array_patch_perimetersrP  .  sq    H: 1
IIdk"**46 ) 1 1(4!82D2:4!82D!FG!g6!F 1r5   c                   ^^^  " S S5      m " S ST5      n T" 5       mUUU4S jnU " 5       mTR                   Tl        U" T5        [        R                  " TSSS S	S
S SSSS9
   TR                   TR                   L d   eTR                  TR                  L d   eTR                  S:X  d   eTR
                  S	:X  d   eTR                  S
:X  d   eTR                  S:X  d   eTR                  TR                   :w  d   eTR                  S:X  d   eTR                  S:X  d   eTR                  S:X  d   e S S S 5        U" T5        g ! , (       d  f       N= f)Nc                      \ rS rSr\" 5       r\" 5       rS rS r\	S 5       r
\S 5       r\S 5       r\R                  S 5       rSrg	)
test_setattr_cm.<locals>.AiK  c                .    SU l         SU l        SU l        g )Naardvarkoverrider   )rU  rV  _pr   s    r   __init__#test_setattr_cm.<locals>.A.__init__O  s    &DM&DMDGr5   c                    g rz   rM   r   s    r   methtest_setattr_cm.<locals>.A.methT  s    r5   c                    g rz   rM   )r  s    r   classy!test_setattr_cm.<locals>.A.classyW      r5   c                     g rz   rM   rM   r5   r   static!test_setattr_cm.<locals>.A.static[  r`  r5   c                    U R                   $ rz   rW  r   s    r   proptest_setattr_cm.<locals>.A.prop_  s    77Nr5   c                    Xl         g rz   re  )r   vals     r   rf  rg  c  s    Gr5   )rW  rU  rV  N)rN   rO   rP   rQ   r  	cls_levelrV  rX  r[  classmethodr^  staticmethodrb  propertyrf  setterrR   rM   r5   r   r  rS  K  sn    H	8	
	 
	 
	 
	 
	 
	 
	 
	 
	r5   r  c                      \ rS rSrSrg)test_setattr_cm.<locals>.Big  rM   Nr6  rM   r5   r   r  rp  g  s    r5   r  c                J  > U R                   U R                   Ld   eU R                  U R                  L d   eTR                  S:X  d   eU R                  U R                  L d   eU R                  TR                  L d   eU R                  S:X  d   e[        U S5      (       a   eU R                  S:X  d   eU R                  TR                   :X  d   eU R                  TR                  L d   eSU R                  ;  d   eSU R                  ;  d   eSU R                  ;  d   eg )NrU  rV  extrar   rj  r^  rb  )r[  rU  rf  rj  rV  r  monkey__dict__)objr  r!   r  s    r   verify_pre_post_state.test_setattr_cm.<locals>.verify_pre_post_statel  s    xxsxx'''||s||+++zzZ'''xx388###}}+++||z)))3((((xx3zzUZZ'''}}+++#,,...s||+++s||+++r5   squirrelmoosec                     g rz   rM   rM   r5   r   r   !test_setattr_cm.<locals>.<lambda>  s    4r5   boorr  c                     g rz   rM   rM   r5   r   r   r{    s    4r5   bobr^  rb  )	rf  rU  r[  rV  rr  rs  rj  r^  rb  )r[  rs  r   _setattr_cmrU  rV  rr  rf  rj  r^  rb  )r  rv  r  r!   r  s     @@@r   test_setattr_cmr  J  sF    8A  CE,, 	
AzzAH!			J<'5H
. vvzzQZZ'''zzW$$$zzU"""ww'!!!vv###xx5::%%%{{e###xx8###xx8####
.& !'
. 
.s   'CE


Ec                 6   [         R                  n U " SS5      S:X  d   eU " SS5      S:X  d   eU " SS5      S:X  d   eU " SS5      S:X  d   eU " SS	5      S:X  d   eU " S
S	5      S:X  d   eU " SS	5      S:X  d   eU " S
S5      U " S
S5      s=:X  a  S:X  d   e   eg )Nr   r'   0r(   r)   g(0z-0gHz>r+   gӴ:T?z0.00123gӴ:Tz-0.00123   r
  z
0.00123456)r   _format_approx)r&   s    r   test_format_approxr    s    AQ7c>>Q7c>>Q7c>>Wa=D   T1:_a I---q!Z///_a Aor$:JlJJJJJr5   c                     [        S5       V s/ s H"  n [        R                  " 5       [        U S9-   PM$     nn S US'   [        R
                  " U5      nUb  X!S   :X  d   eg s  sn f )Nr
  )daysr   r'   )r  r   todayr	   r   r  )r~  datetime_lstr@   s      r   !test_safe_first_element_with_noner    sa    >CBiHiDJJL9!#44iLHLO%%l3F&O";;;"; Is   )A"c                 j    [        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   eg )Nz
1 \times 2z$1 \times 2$z1 x 2z	$\rm{hi}$hi)r   rM   r5   r   test_strip_mathr    s;    m$555o&'111l#t+++r5   zfmt, value, result))z%.2f m皙?0.20 m)z{:.2f} mr  r  )z{} mr  z0.2 m)constr  r  )z%d or {}r  z0 or {})z{{{:,.0f}}}g     jAz	{200,000})z{:.2%}gUUUUUU?z66.67%)z$%ggRQ@z$2.54c                    [         R                  " X5      U:X  d   e[         R                  " U [        R                  " U5      5      U:X  d   eg)z)Apply *value* to the format string *fmt*.N)r   _auto_format_strr   float64)fmtr   rr  s      r   test_auto_format_strr    sA     !!#-777!!#rzz%'89VCCCr5   c                      " S S5      n [        S5      nXl        U[        R                  S'   [        R
                  " S5      nUR                  U5      n[        R                  " U5      n[        XB5        g)z
Test that torch tensors are converted to NumPy arrays.

We don't want to create a dependency on torch in the test suite, so we mock it.
c                       \ rS rSrS rS rSrg)/test_unpack_to_numpy_from_torch.<locals>.Tensori  c                    Xl         g rz   rm   r   s     r   rX  8test_unpack_to_numpy_from_torch.<locals>.Tensor.__init__      Ir5   c                    U R                   $ rz   r  r   s    r   	__array__9test_unpack_to_numpy_from_torch.<locals>.Tensor.__array__      99r5   r  NrN   rO   rP   rQ   rX  r  rR   rM   r5   r   Tensorr        		r5   r  torchr
  N)	r   r  r  modulesr   r   r   _unpack_to_numpyr
   )r  r  rm   torch_tensorrr  s        r   test_unpack_to_numpy_from_torchr    s`      wEL CKK99R=D<<%L##L1F v$r5   c                      " S S5      n [        S5      nXl        U[        R                  S'   [        R
                  " S5      nUR                  U5      n[        R                  " U5      n[        XB5        g)z
Test that jax arrays are converted to NumPy arrays.

We don't want to create a dependency on jax in the test suite, so we mock it.
c                       \ rS rSrS rS rSrg),test_unpack_to_numpy_from_jax.<locals>.Arrayi  c                    Xl         g rz   r  r   s     r   rX  5test_unpack_to_numpy_from_jax.<locals>.Array.__init__  r  r5   c                    U R                   $ rz   r  r   s    r   r  6test_unpack_to_numpy_from_jax.<locals>.Array.__array__  r  r5   r  Nr  rM   r5   r   Arrayr    r  r5   r  jaxr
  N)	r   r  r  r  r   r   r   r  r
   )r  r  rm   	jax_arrayrr  s        r   test_unpack_to_numpy_from_jaxr    s_      U
CICKK99R=D		$I##I.F v$r5   c                 
  ^  " S S5      m[        S5      n U4S jU l        TU l        U [        R                  S'   [
        R                  " S5      nU R                  U5      n[        R                  " U5      n[        X15        g)z
Test that tensorflow arrays are converted to NumPy arrays.

We don't want to create a dependency on tensorflow in the test suite, so we mock it.
c                       \ rS rSrS rS rSrg)4test_unpack_to_numpy_from_tensorflow.<locals>.Tensori  c                    Xl         g rz   r  r   s     r   rX  =test_unpack_to_numpy_from_tensorflow.<locals>.Tensor.__init__  r  r5   c                    U R                   $ rz   r  r   s    r   r  >test_unpack_to_numpy_from_tensorflow.<locals>.Tensor.__array__  r  r5   r  Nr  rM   r5   r   r  r    r  r5   r  
tensorflowc                   > [        U T5      $ rz   )r{   )r   r  s    r   r   6test_unpack_to_numpy_from_tensorflow.<locals>.<lambda>
  s    Z6%:r5   r
  N)
r   	is_tensorr  r  r  r   r   r   r  r
   )r  rm   	tf_tensorrr  r  s       @r   $test_unpack_to_numpy_from_tensorflowr    sn      L)J:JJ *CKK99R=D!!$'I##I.F v$r5   )T
__future__r   r  r  r   r  typingr   unittest.mockr   r   r   r   r	   numpyr   numpy.testingr
   r   r   r   r  r   r   matplotlib.colorscolorsrH   matplotlib.cbookr   r   typesr   r   rT   r   r   r   r2  rK  rO  rW  rj  r  r   rs  ru  r  r  __annotations__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  rP  r  r  r  r  r  r  r  r  rM   r5   r   <module>r     s   "    
  % . . 6 6  " # = 3 3D{@ {@|  
C$ C$LH&GB  
B  
* 
0
0
0
	+ 1#u671#Sz):;</+  
2rN1QQ',	1XQx/C#s+<=>40  .=6 >6
 8%'I'I/ ('(!
'(!
'(!
 
iimAq!3'iimSiimRYYq\"$%
$%
$
(&"	P+f////..78Od	K<, - 	0 	D	D%6%8%r5   