
    (?ev              	      ^   U d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dl	m	Z	m
Z
mZ d dlZd dlmZmZmZ d dlZd dlmZmZ d dlmZ d dlmZmZ  G d	 d
          Z G d d          Z G d d          Zd Zd Z e d             Z!d Z"d Z#ej$        %                    dg d          d             Z&d Z'd Z(ddddddgiifdddddddgiiffZ)de*d <   di i fddddddi fddiddiddddgiiffZ+d!e*d"<   ej$        %                    d#e)          d$             Z,ej$        %                    d%e+          d&             Z-d' Z.d( Z/d) Z0d* Z1d+ Z2d, Z3d- Z4ej$        %                    d. ej5        d/          6                    d0d1          df ej5        d/          df ej5        d/           ej5        d0          fg          d2             Z7d3 Z8d4 Z9d5 Z:d6 Z;d7 Z<d8 Z=d9 Z>d: Z?d; Z@d< ZAd= ZBd> ZCd? ZDd@ ZEdA ZFdB ZGdC ZHdD ZIej$        %                    dEg dF          dG             ZJdS )H    )annotationsN)Any)patchMock)datetimedate	timedelta)assert_array_equalassert_approx_equalassert_array_almost_equal)_apicbook)delete_masked_points
strip_mathc                  &    e Zd Zd Zd Zd Zd ZdS )Test_delete_masked_pointsc                    t          j        t                    5  t          dt	          j        dd                     d d d            d S # 1 swxY w Y   d S )Nza stringg      ?g      @)pytestraises
ValueErrorr   nparangeselfs    ;lib/python3.11/site-packages/matplotlib/tests/test_cbook.pytest_bad_first_argz,Test_delete_masked_points.test_bad_first_arg   s    ]:&& 	B 	B RYsC-@-@AAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   $AAAc                   g d}dddt           j        t           j        dg}t          ||          \  }}g d}t          |t          j        |          |                    t          |t          j        |          |                    d S )N)abcdef            )r   r$   r%      )r   nanr   r
   array)r   a1a2result1result2inds         r   test_string_seqz)Test_delete_masked_points.test_string_seq   s    +++Arvrvq)/B77ll7BHRLL$56667BHRLL$566666    c           
     $   t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          g}t          j                            dddt          j        t          j        dgg d	          }t          ||          }g d
}t          |d         t          j        |          |                    t          |d         ||                                                    d S )Ni  r$   r%   r&      r(   r'   FFTTFFmaskr   r$   r(   r   )r   r   mar*   r)   r   r
   
compressed)r   datesa_maskedactualr/   s        r   test_datetimez'Test_delete_masked_points.test_datetime"   s    $1%%xa';';$1%%xa';';$1%%xa';';= 5;;1a;$L$L$L  N N%eX66ii6!9bhuooc&:;;;6!9hsm&>&>&@&@AAAAAr1   c                h   t           j                            dddt           j        t           j        dgg d          }t	          j        g d          }t          ||          }g d}t          |d	         ||                                                    t          |d         ||                    d S )
Nr$   r%   r&   r'   r4   r5   )rgr   r    myr7   r   )	r   r8   r*   r)   mcolorsto_rgba_arrayr   r
   r9   )r   r;   a_rgbar<   r/   s        r   	test_rgbaz#Test_delete_masked_points.test_rgba-   s    5;;1a;$L$L$L  N N&'E'E'EFF%h77ii6!9hsm&>&>&@&@AAA6!9fSk22222r1   N)__name__
__module____qualname__r   r0   r=   rF    r1   r   r   r      sV        B B B7 7 7	B 	B 	B3 3 3 3 3r1   r   c                  \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )Test_boxplot_statsc                   t           j                            d           d| _        d| _        t           j                            | j        | j        fdd          | _        t          g d          | _        t          j
        | j                  | _        dd	d
ddt          j        g d          ddddd
| _        ddd| _        ddt          j        ddg          d| _        ddd| _        ddd| _        d S )Ni  %   r3         ?g      ?)sizemeansigma)rQ   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ޓ?)
rX   rW   rV   rQ   rS   r[   rT   rU   rZ   rY   gN!@g?)rX   rW   g =ɳE@r]   r^   )rZ   rY   r[   geLM?)rY   rZ   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_methodzTest_boxplot_stats.setup_method8   sI   
	s

I''dj$*-E-0 ( > >	  "
 "
 "
  
 !.ty99 ''%%%h         %#(**
 *
&  &&&
 &
" )*h[9:: 
  
 +)&
 &
" +( 
  
r1   c                >    t          | j        t                    sJ d S N)
isinstancerh   listr   s    r   test_form_main_listz&Test_boxplot_stats.test_form_main_listj   s!    $*D1111111r1   c                H    | j         D ]}t          |t                    sJ d S rp   )rh   rq   dictr   ress     r   test_form_each_dictz&Test_boxplot_stats.test_form_each_dictm   s7    # 	) 	)Cc4((((((	) 	)r1   c                h    | j         D ])}t          |          t          | j                  k    sJ *d S rp   )rh   setrf   rv   s     r   test_form_dict_keysz&Test_boxplot_stats.test_form_dict_keysq   sB    # 	4 	4Cs88s4?3333333	4 	4r1   c                    | j         d         }| j                                        D ]\  }}t          ||         |           d S )Nr   )rh   ri   itemsr   )r   rw   keyvalues       r   test_results_baselinez(Test_boxplot_stats.test_results_baselineu   sR    q!8>>@@ 	7 	7JC%c#h6666	7 	7r1   c                    t          j        | j        d          }|d         }| j                                        D ]\  }}t          ||         |           d S )Ni'  )	bootstrapr   )r   rg   rd   rj   r}   r   r   resultsrw   r~   r   s        r   test_results_bootstrappedz,Test_boxplot_stats.test_results_bootstrappedz   se    %di5AAAaj4::<< 	1 	1JCC%0000	1 	1r1   c                    t          j        | j        d          }|d         }| j                                        D ]\  }}t          ||         |           d S )Nr&   whisr   )r   rg   rd   rk   r}   r   r   s        r   test_results_whiskers_floatz.Test_boxplot_stats.test_results_whiskers_float   se    %dia888aj.4466 	7 	7JC%c#h6666	7 	7r1   c                    t          j        | j        ddg          }|d         }| j                                        D ]\  }}t          ||         |           d S )Nr   d   r   )r   rg   rd   rm   r}   r   r   s        r   test_results_whiskers_rangez.Test_boxplot_stats.test_results_whiskers_range   si    %diq#h???aj.4466 	7 	7JC%c#h6666	7 	7r1   c                    t          j        | j        ddg          }|d         }| j                                        D ]\  }}t          ||         |           d S )Nr(   _   r   r   )r   rg   rd   rl   r}   r   r   s        r   !test_results_whiskers_percentilesz4Test_boxplot_stats.test_results_whiskers_percentiles   si    %diq"g>>>aj4::<< 	7 	7JC%c#h6666	7 	7r1   c                    g d}t          j        | j        |          }t          ||          D ]\  }}|d         |k    sJ t          j        | j                  }|D ]}d|vsJ 	d S )N)Test1r%   Aardvarkr3   labelsr\   )r   rg   rd   zip)r   r   r   labrw   s        r   test_results_withlabelsz*Test_boxplot_stats.test_results_withlabels   s    ,,,%di???FG,, 	' 	'HCw<3&&&&&%di00 	& 	&C#%%%%%	& 	&r1   c                    ddg}t          j        t                    5  t          j        | j        |           d d d            d S # 1 swxY w Y   d S )Nr$   r%   r   )r   r   r   r   rg   rd   )r   r   s     r   test_label_errorz#Test_boxplot_stats.test_label_error   s    Q]:&& 	: 	:	&9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   AAAc                    t           j                            d          }t          j        t
                    5  t          j        |           d d d            d S # 1 swxY w Y   d S )N)"   r   r   )rP   )r   r_   normalr   r   r   r   rg   )r   rd   s     r   test_bad_dimsz Test_boxplot_stats.test_bad_dims   s    y\22]:&& 	& 	&%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   AA #A c                   t          j        d          }t          j        d|dg          }t          j        |d          }t          j        |d          }|d         d	         dk    sJ |d         d
         dk    sJ t          |d         d         ddg           |d         d	         dk    sJ |d         d
         dk    sJ t          |d         d         g            d S )N   )shapei   F)	autorangeTr   rY   rZ   r[   )r   zeroshstackr   rg   r   )r   xbstats_falsebstats_trues       r   "test_boxplot_stats_autorange_falsez5Test_boxplot_stats.test_boxplot_stats_autorange_false   s    H3IsArl##*1>>>)!t<<<Ax(A----Ax(A----!,q/(";c2YGGG1~h'3....1~h'2----!+a.":B?????r1   N)rG   rH   rI   rn   rs   rx   r{   r   r   r   r   r   r   r   r   r   rJ   r1   r   rL   rL   7   s        0
 0
 0
d2 2 2) ) )4 4 47 7 7
1 1 17 7 77 7 77 7 7& & &: : :
& & &
@ @ @ @ @r1   rL   c                  t   e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            dd	d
g          d             Ze
j                            dd	d
g          d             Ze
j                            dd	d
g          d             Ze
j                            dd	d
g          d             Zd Zd ZdS )Test_callback_registryc                D    d| _         t          j                    | _        d S )Ntest)signalr   CallbackRegistry	callbacksr   s    r   rn   z#Test_callback_registry.setup_method   s    /11r1   c                r    |r| j                             ||          S | j                             ||          S rp   )r   connect_connect_picklable)r   sfuncpickles       r   r   zTest_callback_registry.connect   s:     	>>))!T222>44Q===r1   c                6    | j                             |          S rp   )r   
disconnect)r   cids     r   r   z!Test_callback_registry.disconnect   s    ~((---r1   c                    t          | j        j                            | j        g                     }t          | j        j                            | j                            }||k    sJ |S rp   )lenr   _func_cid_mapgetr   )r   count1count2s      r   countzTest_callback_registry.count   s^    T^155dk2FFGGT^-11$+>>??r1   c                    t           j                                         | j        j        i k    sJ | j        j        i k    sJ | j        j        t                      k    sJ d S rp   )r   testingbreak_cyclesr   r   _pickled_cidsrz   r   s    r   is_emptyzTest_callback_registry.is_empty   sb    

!!!~+r1111~'2----~+suu444444r1   c                    t           j                                         | j        j        i k    sJ | j        j        i k    sJ d S rp   )r   r   r   r   r   r   s    r   is_not_emptyz#Test_callback_registry.is_not_empty   sH    

!!!~+r1111~'2------r1   c                    t          j                    }|                    dd            t          j        t          j        |                    }|                    dd           }|dk    sJ d S )Nr   c                     d S rp   rJ   rJ   r1   r   <lambda>z9Test_callback_registry.test_cid_restore.<locals>.<lambda>   s     r1   r    c                     d S rp   rJ   rJ   r1   r   r   z9Test_callback_registry.test_cid_restore.<locals>.<lambda>   s    t r1   r$   )r   r   r   r   loadsdumps)r   cbcb2r   s       r   test_cid_restorez'Test_callback_registry.test_cid_restore   se    #%%


3%%%l6<++,,kk#||,,axxxxxxr1   r   TFc                   |                                   t                      }|                     | j        |j        |          }t          |          t          u sJ |                                  |                     | j        |j        |          }||k    sJ |                                  t          | j	        j
                  dk    sJ t          | j	        j	                  dk    sJ ~|                                   d S )Nr$   )r   r   r   r   dummytypeintr   r   r   r   )r   r   mini_mecid1cid2s        r   test_callback_completez-Test_callback_registry.test_callback_complete   s     	 )** ||DK??DzzS     ||DK??t||||4>/00A55554>+,,1111 	r1   c                6   |                                   t                      }|                     | j        |j        |          }t          |          t          u sJ |                                  |                     |           |                                   d S rp   	r   r   r   r   r   r   r   r   r   r   r   r   r   s       r   test_callback_disconnectz/Test_callback_registry.test_callback_disconnect   s     	 )** ||DK??DzzS     	r1   c                6   |                                   t                      }|                     | j        |j        |          }t          |          t          u sJ |                                  |                     d           |                                  d S )Nfoor   r   s       r   test_callback_wrong_disconnectz5Test_callback_registry.test_callback_wrong_disconnect  s     	 )** ||DK??DzzS     	r1   c                   |                                   t                      }|                     | j        |j        |           t                      }|                     | j        |j        |           t                      }|                     | j        |j        |           |                                  |                                 dk    sJ d }d }|                                   d S Nr%   )r   r   r   r   r   r   r   )r   r   r   mini_me2s       r   'test_registration_on_non_empty_registryz>Test_callback_registry.test_registration_on_non_empty_registry  s     	 )**T['-888 *++T[(.&999 *++T[(.&999 	zz||q     r1   c                    d S rp   rJ   r   s    r   r   zTest_callback_registry.dummy2  s    r1   c                    t          t          j        t          j        t	          j                                        d          sJ d S )Nr   )hasattrr   r   r   r   r   r   s    r   test_picklingz$Test_callback_registry.test_pickling5  sJ    v|FL1G1I1I$J$JKK"$ $ 	$ 	$ 	$ 	$ 	$r1   N)rG   rH   rI   rn   r   r   r   r   r   r   r   markparametrizer   r   r   r   r   r   rJ   r1   r   r   r      sc       2 2 2> > >. . .  5 5 5. . .
   [Xe}55  650 [Xe}55  65" [Xe}55  65" [Xe}55  652  $ $ $ $ $r1   r   c                >   t          j                    }|                    dd            |                    t           dd            t	          j        t                    5  |                    dd           d d d            n# 1 swxY w Y   |                                 }|j	        |j
        cxk    rdk    sn J |                    t           dd            |                    dd           |                                 }|j	        dk    sJ d|j
        v sJ d S )	Nr   c                     d S rp   rJ   rJ   r1   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda><  s    d r1   "_get_running_interactive_frameworkc                     d S rp   rJ   rJ   r1   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>?      T r1   zargument mismatch c                     dS )Nznot-nonerJ   rJ   r1   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>F  s    Z r1   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_handlerr   :  sx   			!	!BJJull###3\\C C C	y	!	! / /


5-.../ / / / / / / / / / / / / / /  F:))))r))))))35G5GI I IJJu)***  F:9VZGGGGGGs   !BBBc                    G d dt                     d }d }fd}t          j        d           }|                    d|           t          j        |          }|                    d|           t          j        |          }|                    d|           t	          j                            d|t          g|g|t          gg          |           S )	Nc                      e Zd ZdS )%raising_cb_reg.<locals>.TestExceptionNrG   rH   rI   rJ   r1   r   TestExceptionr   N          r1   r   c                     t           rp   )RuntimeErrorrJ   r1   r   raise_runtime_errorz+raising_cb_reg.<locals>.raise_runtime_errorQ  s    r1   c                     t           rp   r   rJ   r1   r   raise_value_errorz)raising_cb_reg.<locals>.raise_value_errorT  s    r1   c                6    t          | t                    r| rp   )rq   r  )excpr   s    r   transformerz#raising_cb_reg.<locals>.transformerW  s     dL)) 	 
r1   exception_handlerr   zcb, excp)		Exceptionr   r   r   r   r   r   r  r   )r   r  r  r  cb_oldcb_filtcb_filt_passr   s          @r   raising_cb_regr  M  s4       	            #d;;;F
NN5-... ${CCCGOOE./// )KHHHL 1222;"":%+\$:%,m$<%1:$>$@A A BFG G Gr1   c                    |                      t          dd            t          j        |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   c                     d S rp   rJ   rJ   r1   r   r   z@test_callbackregistry_custom_exception_handler.<locals>.<lambda>q  r   r1   r   )r   r   r   r   r   )r   r   r  s      r   .test_callbackregistry_custom_exception_handlerr  n  s    3\\C C C	t		  


5                 s   AAAc                    t          j        dg          } g fd}|                     d|           t          j        t
                    5  |                     d|           d d d            n# 1 swxY w Y   |                     dd           t          j        t
                    5  |                     dd           d d d            n# 1 swxY w Y   dgk    sJ d S )Nr   )signalsc                2                         |            d S rp   )append)r   r   s    r   r   z)test_callbackregistry_signals.<locals>.cby  s    w~~a     r1   barr$   )r   r   r   r   r   r   r   )crr   r   s     @r   test_callbackregistry_signalsr  v  sY   			0	0	0BG     JJub	z	"	"  


5"              JJua	z	"	"  


5!              qc>>>>>>s$   A11A58A5+CCCc                 ~   d } t          j        |           }d }d }|                    d|           |                    d|           |                                5  |                    d           |                    d           d d d            n# 1 swxY w Y   |                    d          5  |                    d           t          j        t          d	          5  |                    d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          d
	          5  |                    d           d d d            n# 1 swxY w Y   t          j        t          d	          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nc                    | rp   rJ   )r  s    r   raise_handlerz5test_callbackregistry_blocking.<locals>.raise_handler  s    
r1   r	  c                      t          d          )N1 should be blockedr  rJ   r1   r   
test_func1z2test_callbackregistry_blocking.<locals>.test_func1      .///r1   c                      t          d          )N2 should be blockedr  rJ   r1   r   
test_func2z2test_callbackregistry_blocking.<locals>.test_func2  r   r1   test1test2)r   r"  matchr  )r   r   r   blockedr   r   r   r   )r  r   r  r#  s       r   test_callbackregistry_blockingr)    s     		-	@	@	@B0 0 00 0 0JJw
###JJw
### 
  


7


7              
 
7	#	#    


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


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


7                 sl   +BBB71D!(D
>D!
D	D!D	D!!D%(D%E))E-0E-F22F69F6zline, result)	)a : no_commentr*  )a : "quoted str"r+  )za : "quoted str" # commentr+  )a : "#000000"r,  )za : "#000000" # commentr,  )a : ["#000000", "#FFFFFF"]r-  )z$a : ["#000000", "#FFFFFF"] # commentr-  )z"a : val  # a comment "with quotes"za : val)z# only comment "with quotes" xxr   c                :    t          j        |           |k    sJ dS )z+Strip everything from the first unquoted #.N)r   _strip_comment)lineresults     r   test_strip_commentr2    s&     %%//////r1   c                     t          j        t          d          5  t          j        d           d d d            d S # 1 swxY w Y   d S )NzMissing closing quoter&  zgrid.color: "aa)r   r   r   r   r/  rJ   r1   r   test_strip_comment_invalidr4    s    	z)@	A	A	A 0 0.///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   >AAc                    dddd} g d}g d}g d}|t          t          j        |                                                     k    sJ |t          t          j        |                                                     k    sJ |t          t          j        |                                                     k    sJ |t          j        |          k    sJ |t          j        |          k    sJ d S )Nr$   r%   r&   r   r   r    r$   r%   r&   ))r   r$   )r   r%   )r    r&   )re   r   sanitize_sequencekeysvaluesr}   )r!   kvis       r   test_sanitize_sequencer>    s    aa  AA		A&&&Au.qvvxx88999999u.qxxzz::;;;;;;u.qwwyy99::::::'******'********r1   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                    t          j        t                    5  t          j                    5  t          j        | fi | d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S rp   )r   r   r   r   'suppress_matplotlib_deprecation_warningr   normalize_kwargs)inpkwargs_to_norms     r   test_normalize_kwargs_failrG    s    	y	!	! 6 6		5	7	76 6s55n5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s4   A%AA%A	A%A	A%%A),A)zinp, expected, kwargs_to_normc                    t          j                    5  |t          j        | fi |k    sJ 	 d d d            d S # 1 swxY w Y   d S rp   )r   rC  r   rD  )rE  expectedrF  s      r   test_normalize_kwargs_passrJ    s     
	5	7	7 I I51#HHHHHHHHHI I I I I I I I I I I I I I I I I Is   ;??c                 $   t          j        t          d          5 } t          d           | _        t          j        t          d          5  t          j	        d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nsys)return_valuez	\Adummy\Zr&  r   )
r   objectr   r   	_getframer   warnsUserWarningr   warn_external)mock_syss    r   (test_warn_external_frame_embedded_pythonrT    s   	eU	#	# (x!t444\+\::: 	( 	(w'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s5   1BA-!B-A1	1B4A1	5BB	B	c                 B   t          j        d          } t          j        d          }t          j        d          d d d         }t          j        | ||          \  }}}t          j        g dt
                    }t          j        g dt
                    }t          j        g dt
                    }t          ||           t          ||           t          ||           t          j        | |          \  }}t          ||           t          ||           d S )Nr3   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_presteprg    s   
	!A	1B	1ddd	B'2r22LBSz///u===H
000>>>I
000>>>Ix$$$y#&&&y#&&&"1b))GBx$$$y#&&&&&r1   c                 J    t          j        g g           } | j        dk    sJ d S N)r%   r   )r   r[  r   stepss    r   test_to_prestep_emptyrl    -     R((E;&      r1   c                 B   t          j        d          } t          j        d          }t          j        d          d d d         }t          j        | ||          \  }}}t          j        g dt
                    }t          j        g dt
                    }t          j        g dt
                    }t          ||           t          ||           t          ||           t          j        | |          \  }}t          ||           t          ||           d S )Nr3   rV  rZ  rX  rW  )r&   r&   r%   r%   r$   r$   r   )r   r   r   pts_to_poststepr\  r]  r
   r^  s	            r   test_to_poststeprp     s   
	!A	1B	1ddd	B(B33LBSz///u===H
000>>>I
000>>>Ix$$$y#&&&y#&&&#Ar**GBx$$$y#&&&&&r1   c                 J    t          j        g g           } | j        dk    sJ d S ri  )r   ro  r   rj  s    r   test_to_poststep_emptyrr    s-    !"b))E;&      r1   c                 B   t          j        d          } t          j        d          }t          j        d          d d d         }t          j        | ||          \  }}}t          j        g dt
                    }t          j        g dt
                    }t          j        g dt
                    }t          ||           t          ||           t          ||           t          j        | |          \  }}t          ||           t          ||           d S )Nr3   rV  )r         ?rt  rO   rO         @ru  r&   rX  )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_midsteprw    s   
	!A	1B	1ddd	B'2r22LBSz<<<EJJJH
3335AAAI
3335AAAIx$$$y#&&&y#&&&"1b))GBx$$$y#&&&&&r1   c                 J    t          j        g g           } | j        dk    sJ d S ri  )r   rv  r   rj  s    r   test_to_midstep_emptyry  -  rm  r1   args   r&   r3   c                    t          j        t                    5  t          j        |   d d d            d S # 1 swxY w Y   d S rp   )r   r   r   r   r[  )rz  s    r   test_step_failsr}  2  s     
z	"	" $ $d##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   6::c                   
  G d d          

fdt          d          D             x\  } }}}}}t          j                    } |j        |  t	          t          |          d                   t	          |          k    sJ t	          |                    |                     t	          |          k    sJ |dd          D ]}|                    | |          sJ |                    |            |dd          D ]}|                    | |          rJ t          j
        |dd          |dd                    D ]\  }}	|                    ||	          sJ d S )Nc                      e Zd ZdS )test_grouper.<locals>.DummyNr   rJ   r1   r   Dummyr  =  r   r1   r  c                $    g | ]}             S rJ   rJ   .0_r  s     r   
<listcomp>z test_grouper.<locals>.<listcomp>?  s    666EEGG666r1   r(   r   r$   )ranger   Grouperjoinrz   rr   get_siblingsjoinedremove	itertoolsproduct)r   r   r    r!   r"   objsr@   otherABr  s             @r   test_grouperr  <  s          6666U1XX6666MAq!QDA
AFDMMtAwwqz??c$ii''''q~~a  !!SYY....abb " "xx5!!!!!!HHQKKKabb & &88Au%%%%%%!$qrr(DH55  1xx1~~ r1   c                     G d d          fdt          d          D             } t          j                    } |j        |   |j        }| D ]}||v sJ 	|| d                  }| dd          D ]}||         |u sJ d S )Nc                      e Zd ZdS )#test_grouper_private.<locals>.DummyNr   rJ   r1   r   r  r  Q  r   r1   r  c                $    g | ]}             S rJ   rJ   r  s     r   r  z(test_grouper_private.<locals>.<listcomp>S  s    &&&EEGG&&&r1   r(   r   r$   )r  r   r  r  _mapping)r  r@   mappingobase_setr  s        @r   test_grouper_privater  P  s           &&&&U1XX&&&DA
AFDMMjG  G|||||tAwH!""X & &qzX%%%%%& &r1   c                    t          j        d          } | j        }dt          |          k    sJ dt          |          k    sJ t	          j        |          }|dk    sJ dt          |          k    sJ dt          |          k    sJ d S )Nr(   r   r$   )r   r   flatnextr   _safe_first_finite)r   itrets      r   test_flatiterr  a  s    
	!A	
BR====R====

"2
&
&C!8888R====R======r1   c                     t          j        dt           j                  } t          j        |           }t          j        |          sJ d S r   )r   fullr)   r   r  isnanarrr  s     r   test__safe_first_finite_all_nanr  m  ?    
'!RV

C

"3
'
'C8C==r1   c                     t          j        dt           j                  } t          j        |           }t          j        |          sJ d S r   )r   r  infr   r  isinfr  s     r   test__safe_first_finite_all_infr  s  r  r1   c                 B	    G d d          t          j        g d          } t          j        |           dk    sJ fdt	          d          D             }t          j        |d          } t          j        |           dk    sJ t          j        d          }t          j        |d          } t          j        |           dk    sJ fdt	          d	          D             }t          j        |d          } t          j        |           d
k    sJ t          j                            d	d          }t          j        |d          } t          j        |           dk    sJ dgdgd	gg}t          j        |d          } t          | t                    sJ t          | d         t          j
                  r| d         j        dk    sJ t          | d         t          j
                  r| d         j        dk    sJ t          | d         t          j
                  r| d         j        dk    sJ t          j        d          t          j        d          t          j        d          g}t          j        |d          } t          | t                    sJ t          |           dk    sJ t          | d         t          j
                  r| d         j        dk    sJ g dd	dgdgg}t          j        |d          } t          | t                    sJ t          | d         t          j
                  r| d         j        dk    sJ t          | d         t          j
                  r| d         j        dk    sJ t          | d         t          j
                  r| d         j        dk    sJ  G d dt          j
                  }t          j        dt                    } |dt          |j                  }t          j        |d          } t          |           dk    sJ t          | d         |          sJ g d}t          j        |d          } t          | d                   t          |          k    sJ t          | d         t          j
                  sJ d S )Nc                      e Zd ZdS )test_reshape2d.<locals>.DummyNr   rJ   r1   r   r  r  {  r   r1   r  r   )r$   r   c                $    g | ]}             S rJ   rJ   r  s     r   r  z"test_reshape2d.<locals>.<listcomp>  s    ###Q###r1   r(   )r$   r(   c                F    g | ]}fd t          d          D             S )c                $    g | ]}             S rJ   rJ   r  s     r   r  z-test_reshape2d.<locals>.<listcomp>.<listcomp>  s    	$	$	$a%%''	$	$	$r1   r(   r  r  s     r   r  z"test_reshape2d.<locals>.<listcomp>  s4    777	$	$	$	$588	$	$	$777r1   r&   )r&   r(   )r(   r&   r$   r%   r   )r$   )r&   r7  r3   )r%   c                  (     e Zd Z fdZ fdZ xZS )%test_reshape2d.<locals>.ArraySubclassc              3  ~   K   t                                                      D ]}t          j        |          V  d S rp   )super__iter__r   r*   )r   r   	__class__s     r   r  z.test_reshape2d.<locals>.ArraySubclass.__iter__  sG      ))++ & &huoo%%%%& &r1   c                j    t          j        t                                          |                    S rp   )r   r*   r  __getitem__)r   itemr  s     r   r  z1test_reshape2d.<locals>.ArraySubclass.__getitem__  s%    8EGG//55666r1   )rG   rH   rI   r  r  __classcell__)r  s   @r   ArraySubclassr    sQ        	& 	& 	& 	& 	&	7 	7 	7 	7 	7 	7 	7 	7 	7r1   r  
   rX  )r  )rY  buffer)	r   r   r    r    ddr"   r#   ffr#   )r   _reshape_2Dr   r   r  r   r_   randrq   rr   ndarrayr*   r   r]  rd   )xnewr   r  r<  r  s       @r   test_reshape2dr  y  ss           R%%D8D>>V########%((###AQ$$D8D>>V####
	!AQ$$D8D>>V####7777eAhh777AQ$$D8D>>V#### 		q!AQ$$D8D>>V#### qcA3AQ$$DdD!!!!!d1grz**DtAw}/D/D/D/Dd1grz**DtAw}/D/D/D/Dd1grz**DtAw}/D/D/D/D 
!bhqkk28A;;/AQ$$DdD!!!!!t99>>>>d1grz**DtAw}/D/D/D/D 
QFQC AQ$$DdD!!!!!d1grz**DtAw}/D/D/D/Dd1grz**DtAw}/D/D/D/Dd1grz**DtAw}/D/D/D/D7 7 7 7 7
 7 7 7 		"E"""Ae5888AQ$$D t99>>>>d1g}----- 	877AQ$$DtAw<<3q66!!!!d1grz*******r1   c                (   t          j        d                              dd          }|                     |g d          }t	          j        |d          }t          |j        |          D ]%\  }}t           j        	                    ||           &d S )N   r  r&   r6  columnsr   )
r   r   reshape	DataFramer   r  r   Tr   r
   )pdXr   Xnewr  s        r   test_reshape2d_pandasr    s    
	"b!$$A
Q00AQ$$DqsD>> / /4

%%a..../ /r1   c                (   t          j        d                              dd          }|                     |ddg          }t	          j        |d          }t          |j        |          D ]%\  }}t           j        	                    ||           &d S Nr  r  r&   r   rB   )dims)
r   r   r  	DataArrayr   r  r   r  r   r
   )xrr  r   r  r  s        r   test_reshape2d_xarrayr    s    
	"b!$$A
Qc3Z((AQ$$DqsD>> / /4

%%a..../ /r1   c                ^   t          j        d                              dd          }|                     |g d          }t	          j        |          \  }}t           j                            ||           t          j        d          }t           j                            ||           d S )Nr  r  r&   r6  r  )r   r   r  r  r   index_ofr   r
   )r  r  r   Idxr  IdxRefs         r   test_index_of_pandasr    s    
	"b!$$A
Q00Aq!!ICJ!!!T***Yr]]FJ!!#v.....r1   c                ^   t          j        d                              dd          }|                     |ddg          }t	          j        |          \  }}t           j                            ||           t          j        d          }t           j                            ||           d S r  )r   r   r  r  r   r  r   r
   )r  r  r   r  r  r  s         r   test_index_of_xarrayr    s    
	"b!$$A
Qc3Z((Aq!!ICJ!!!T***Yr]]FJ!!#v.....r1   c                 "   d\  } }}dg| z  dg|z  z   dg|z  z   }d| f| |z   | |z   |z   fg}t          j        |          |k    sJ d\  }}|dg|z  z   }t          j        |          |k    sJ dg|z  |d |          z   }||| z   f|| z   |z   || z   |z   |z   fg}t          j        |          |k    sJ |dg|z  z   }t          j        |          |k    sJ t          j        dgdz            g k    sJ t          j        g           g k    sJ d S )N)r&   r3   r(   TFr   )r'      r(   )r   contiguous_regions)r   r   r    r6   rI  r!   r"   s          r   test_contiguous_regionsr    sn   GAq!6!8ugai4&(*DA1ac!e%H#D))X5555DAq5'!)D#D))X5555719tCaRCy DAaC1Q3q5!A#a%'*+H#D))X55555'!)D#D))X5555#UGAI.."4444#B''2------r1   c                    |                      t          d          t          dd                    }t          j        |          }|dk    sJ d S )Nr(   r     )indexr   )Seriesr  r   r  )r  r   r<   s      r   %test_safe_first_element_pandas_seriesr    sF    
		%((%B--	00A%a((FQ;;;;;;r1   c                    t          j        d           t          |           dk    sJ | d         j        t          k    sJ d S )Noopsr$   r   )r   rR  r   filename__file__)recwarns    r   test_warn_externalr    sH    vw<<11:(******r1   c                     d } d }dD ]q\  }}t          j        ||z                                ||          }t          j         ||dz
             ||dz
                      D ]\  }} | |||           rd S )Nc           	     "   | j         \  }}g t          d|dz
  |          |dz
  }g t          d|dz
  |          |dz
  }g }t          |d d         |dd                    D ]k\  }}	t          |d d         |dd                    D ]E\  }
}t          j        | ||	dz   |
|dz   f                   j        }|                    |           Flt          j        |          }t          j	        |t          j
        | ||                    sJ d S )Nr   r$   rV  rstridecstride)r   r  r   r   _array_perimeterr  r  r   r\  array_equal_array_patch_perimeters)r   r  r  rowscolsrow_indscol_indspolysrsrs_nextcscs_nextpss                r   checkz*test_array_patch_perimeters.<locals>.check  sZ   W
d7U1d1fg..7Q77U1d1fg..7Q7x}hqrrl;; 	! 	!KB"8CRC=(122,?? ! !G+AblBwqyL.H,IJJLR    ! 
5!!~e#;"#WgG G GH H 	H 	H 	H 	H 	Hr1   c                B      fdt          d dz             D             S )Nc                &    g | ]}|z  d k    |S )r   rJ   )r  r=  ns     r   r  zAtest_array_patch_perimeters.<locals>.divisors.<locals>.<listcomp>+  s"    999aa!eqjjjjjr1   r$   r  )r  s   `r   divisorsz-test_array_patch_perimeters.<locals>.divisors*  s)    99995AE??9999r1   ))r(   r(   )r     )   	   r$   r  )r   r   r  r  r  )r  r  r  r  r   r  r  s          r   test_array_patch_perimetersr    s    H H H: : : 1 7 7
dIdTk""**466 ) 1((4!82D2D2:(4!82D2D!F !F 	7 	7GWE!Wg66666	77 7r1   c                 H    G d d           G d d          }              fd} |             j         _         |           t          j        ddd d	d
d ddd
  
        5  j         j         u sJ j        j        u sJ j        dk    sJ j        d	k    sJ j        d
k    sJ j        dk    sJ j        j         k    sJ j        dk    sJ j	        dk    sJ j
        dk    sJ 	 d d d            n# 1 swxY w Y    |           d S )Nc                      e Zd Z e            Z e            Zd Zd Zed             Z	e
d             Zed             Zej        d             ZdS )test_setattr_cm.<locals>.Ac                0    d| _         d| _        d| _        d S )Naardvarkoverridep)r  r  _pr   s    r   __init__z#test_setattr_cm.<locals>.A.__init__9  s    &DM&DMDGGGr1   c                    d S rp   rJ   r   s    r   methztest_setattr_cm.<locals>.A.meth>  s    Cr1   c                    d S rp   rJ   )clss    r   classyz!test_setattr_cm.<locals>.A.classyA      Cr1   c                     d S rp   rJ   rJ   r1   r   staticz!test_setattr_cm.<locals>.A.staticE  r  r1   c                    | j         S rp   r  r   s    r   propztest_setattr_cm.<locals>.A.propI  s	    7Nr1   c                    || _         d S rp   r  )r   vals     r   r  ztest_setattr_cm.<locals>.A.propM  s    DGGGr1   N)rG   rH   rI   rN  	cls_levelr  r  r  classmethodr  staticmethodr  propertyr  setterrJ   r1   r   r  r  5  s        FHH	688	 	 	
	 	 	 
	 	 
	 
	 	 
	 
	 	 
	 
	 	 
	 	 	r1   r  c                      e Zd ZdS )test_setattr_cm.<locals>.BNr   rJ   r1   r   r  r(  Q  s        r1   r  c                   | j         | j         usJ | j        | j        u sJ j        dk    sJ | j        | j        u sJ | j        j        u sJ | j        dk    sJ t          | d          rJ | j        dk    sJ | j        j         k    sJ | j        j        u sJ d| j        vsJ d| j        vsJ d| j        vsJ d S )Nr  r  extrar  r"  r  r  )r  r  r  r"  r  r   monkey__dict__)objr  r   r  s    r   verify_pre_post_statez.test_setattr_cm.<locals>.verify_pre_post_stateV  s    xsx''''|s|++++zZ''''x38####}++++|z))))3(((((x3zUZ''''}++++#,....s|++++s|++++++r1   squirrelmoosec                     d S rp   rJ   rJ   r1   r   r   z!test_setattr_cm.<locals>.<lambda>r  s    4 r1   boor*  c                     d S rp   rJ   rJ   r1   r   r   z!test_setattr_cm.<locals>.<lambda>t  s    4 r1   bobr  r  )	r  r  r  r  r*  r+  r"  r  r  )r  r+  r   _setattr_cmr  r  r*  r  r"  r  r  )r  r.  r  r   r  s     @@@r   test_setattr_cmr6  4  s          8    A    ACCE, , , , , , ,, 	
AzAH!		J<<'<5H
. 
. 
. $ $ vzQZ''''zW$$$$zU""""w'!!!!v####x5:%%%%{e####x8####x8######$ $ $ $ $ $ $ $ $ $ $ $ $ $ $& !s   1BDDDc                 d   t           j        }  | dd          dk    sJ  | dd          dk    sJ  | dd          dk    sJ  | dd          dk    sJ  | dd	          dk    sJ  | d
d	          dk    sJ  | dd	          dk    sJ  | d
d           | d
d          cxk    rdk    sn J d S )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1Q77c>>>>1Q77c>>>>1Q77c>>>>1Wa==D    1T1::1_a  I----1q!!Z////1_a  AAor$:$:JJJJlJJJJJJJJr1   c                     d t          d          D             } d | d<   t          j        |           }||| d         k    sJ d S )Nc                V    g | ]&}t          j                    t          |           z   'S ))days)r   todayr	   )r  r=  s     r   r  z5test_safe_first_element_with_none.<locals>.<listcomp>  s.    HHHDJLL9!#4#4#44HHHr1   r  r   r$   )r  r   r  )datetime_lstr<   s     r   !test_safe_first_element_with_nonerA    sT    HHeBiiHHHLLO%l33F&LO";";";";";";r1   c                     t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ d S )Nz
1 \times 2z$1 \times 2$z1 x 2z	$\rm{hi}$hi)r   rJ   r1   r   test_strip_mathrD    sS    m$$5555o&&'1111l##t++++++r1   zfmt, value, result))z%.2f m皙?0.20 m)z{:.2f} mrE  rF  )z{} mrE  z0.2 m)constrE  rG  )z%d or {}rE  z0 or {})z{{{:,.0f}}}g     jAz	{200,000})z{:.2%}gUUUUUU?z66.67%)z$%ggRQ@z$2.54c                    t          j        | |          |k    sJ t          j        | t          j        |                    |k    sJ dS )z)Apply *value* to the format string *fmt*.N)r   _auto_format_strr   float64)fmtr   r1  s      r   test_auto_format_strrL    sP     !#u--7777!#rz%'8'899VCCCCCCr1   )K
__future__r   r  r   typingr   unittest.mockr   r   r   r   r	   numpyr   numpy.testingr
   r   r   r   
matplotlibr   r   matplotlib.colorscolorsrC   matplotlib.cbookr   r   r   rL   r   r   r  r  r  r)  r   r   r2  r4  r>  r@  __annotations__rA  rG  rJ  rT  rg  rl  rp  rr  rw  ry  r   r  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r6  r;  rA  rD  rL  rJ   r1   r   <module>rW     s   " " " " " " "            % % % % % % % % . . . . . . . . . .    6 6 6 6 6 6 6 6 6 6  " " " " " " " " # # # # # # = = = = = = = =3 3 3 3 3 3 3 3D{@ {@ {@ {@ {@ {@ {@ {@|B$ B$ B$ B$ B$ B$ B$ B$JH H H&G G GB   
 
 
  B  
* 
* 
* 
 
0 0
 
0
0 0 0
	+ 	+ 	+ 1#u671#Sz):;</     
2rN1QQ'',	1XQx/C#s+<=>4     .==6 6 >=6 8%' 'I I' 'I( ( (' ' '(! ! !
' ' '(! ! !
' ' '(! ! !
 
bimmAq!!3'bimmSbimmYRYq\\"$% %
$ $% %
$
  (& & &"	 	 	    P+ P+ P+f/ / // / // / // / /. . ..  + + +7 7 78O O Od	K 	K 	K< < <, , , - 	0 	0 	0 	 	D D	 	D D Dr1   