
    P/Ph              	         U d dl mZ d dlZd dl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 d d	lmZ  G d
 d          Z  G d d          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$e0d%<   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Z1d&e0d'<   ej*        +                    d(e/          d)             Z2ej*        +                    d*e1          d+             Z3d, Z4d- Z5d. Z6d/ Z7d0 Z8d1 Z9d2 Z:d3 Z;ej*        +                    d4 ej<        d5          =                    d6d7          d"f ej<        d5          d"f ej<        d5           ej<        d6          fg          d8             Z>d9 Z?d: Z@d; ZAd< ZBd= ZCd> ZDd? ZEd@ ZFdA ZGdB ZHdC ZIdD ZJdE ZKdF ZLdG ZMdH ZNdI ZOej*        +                    dJg dK          dL             ZPdM ZQdN ZRdO ZSdS )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                  &    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    [/var/www/html/test/jupyter/venv/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actualr0   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Ar2   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(   r5   r6   )rgr    r!   myr8   r   )	r   r9   r+   r*   mcolorsto_rgba_arrayr   r
   r:   )r   r<   a_rgbar=   r0   s        r   	test_rgbaz#Test_delete_masked_points.test_rgba0   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2r2   N)__name__
__module____qualname__r   r1   r>   rG    r2   r   r   r      sV        B B B7 7 7	B 	B 	B3 3 3 3 3r2   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  %   r4         ?g      ?)sizemeansigma)rR   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ޓ?)
rY   rX   rW   rR   rT   r\   rU   rV   r[   rZ   gN!@g?)rY   rX   g =ɳE@r^   r_   )r[   rZ   r\   geLM?)rZ   r[   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_method;   sI   
	s

I''dj$*-E-0 ( > >	  "
 "
 "
  
 !.ty99 ''%%%h         %#(**
 *
&  &&&
 &
" )*h[9:: 
  
 +)&
 &
" +( 
  
r2   c                >    t          | j        t                    sJ d S N)
isinstanceri   listr   s    r   test_form_main_listz&Test_boxplot_stats.test_form_main_listm   s!    $*D1111111r2   c                H    | j         D ]}t          |t                    sJ d S rq   )ri   rr   dictr   ress     r   test_form_each_dictz&Test_boxplot_stats.test_form_each_dictp   s7    # 	) 	)Cc4((((((	) 	)r2   c                h    | j         D ])}t          |          t          | j                  k    sJ *d S rq   )ri   setrg   rw   s     r   test_form_dict_keysz&Test_boxplot_stats.test_form_dict_keyst   sB    # 	4 	4Cs88s4?3333333	4 	4r2   c                    | j         d         }| j                                        D ]\  }}t          ||         |           d S )Nr   )ri   rj   itemsr   )r   rx   keyvalues       r   test_results_baselinez(Test_boxplot_stats.test_results_baselinex   sR    q!8>>@@ 	7 	7JC%c#h6666	7 	7r2   c                    t          j        | j        d          }|d         }| j                                        D ]\  }}t          ||         |           d S )Ni'  )	bootstrapr   )r   rh   re   rk   r~   r   r   resultsrx   r   r   s        r   test_results_bootstrappedz,Test_boxplot_stats.test_results_bootstrapped}   se    %di5AAAaj4::<< 	1 	1JCC%0000	1 	1r2   c                    t          j        | j        d          }|d         }| j                                        D ]\  }}t          ||         |           d S )Nr'   whisr   )r   rh   re   rl   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 	7r2   c                    t          j        | j        ddg          }|d         }| j                                        D ]\  }}t          ||         |           d S )Nr   d   r   )r   rh   re   rn   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 	7r2   c                    t          j        | j        ddg          }|d         }| j                                        D ]\  }}t          ||         |           d S )Nr)   _   r   r   )r   rh   re   rm   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 	7r2   c                    g d}t          j        | j        |          }t          ||          D ]\  }}|d         |k    sJ t          j        | j                  }|D ]}d|vsJ 	d S )N)Test1r&   Aardvarkr4   labelsr]   )r   rh   re   zip)r   r   r   labrx   s        r   test_results_withlabelsz*Test_boxplot_stats.test_results_withlabels   s    ,,,%di???FG,, 	' 	'HCw<3&&&&&%di00 	& 	&C#%%%%%	& 	&r2   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   rh   re   )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   )rQ   )r   r`   normalr   r   r   r   rh   r   re   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   rZ   r[   r\   )r   zeroshstackr   rh   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?????r2   N)rH   rI   rJ   ro   rt   ry   r|   r   r   r   r   r   r   r   r   r   rK   r2   r   rM   rM   :   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& & &: : :
& & &
@ @ @ @ @r2   rM   c                      e Zd Zd ZdS )Hashablec                    d S rq   rK   r   s    r   dummyzHashable.dummy         r2   N)rH   rI   rJ   r   rK   r2   r   r   r      s        r2   r   c                      e Zd ZdZd ZdS )
UnhashableNc                    d S rq   rK   r   s    r   r   zUnhashable.dummy   r   r2   )rH   rI   rJ   __hash__r   rK   r2   r   r   r      s        Hr2   r   c                     e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            dd	d
g          e
j                            deeg          d                         Ze
j                            dd	d
g          e
j                            deeg          d                         Ze
j                            dd	d
g          e
j                            deeg          d                         Ze
j                            dd	d
g          e
j                            deeg          d                         Zd ZdS )Test_callback_registryc                D    d| _         t          j                    | _        d S )Ntest)signalr   CallbackRegistry	callbacksr   s    r   ro   z#Test_callback_registry.setup_method   s    /11r2   c                r    |r| j                             ||          S | j                             ||          S rq   )r   connect_connect_picklable)r   sfuncpickles       r   r   zTest_callback_registry.connect   s:     	>>))!T222>44Q===r2   c                6    | j                             |          S rq   )r   
disconnect)r   cids     r   r   z!Test_callback_registry.disconnect   s    ~((---r2   c                     t           fd j        j        D                       }t           j        j                             j                            }||k    sJ |S )Nc              3  4   K   | ]\  }}|j         k    V  d S rq   r   ).0r   pr   s      r   	<genexpr>z/Test_callback_registry.count.<locals>.<genexpr>   s.      OO$!QQ$+%OOOOOOr2   )sumr   _func_cid_maplengetr   )r   count1count2s   `  r   countzTest_callback_registry.count   sb    OOOO$.2NOOOOOT^-11$+>>??r2   c                    t           j                                         g | j        j        g k    sJ | j        j        i k    sJ | j        j        t                      k    sJ d S rq   )r   testingbreak_cyclesr   r   _pickled_cidsr{   r   s    r   is_emptyzTest_callback_registry.is_empty   sg    

!!!.-."4444~'2----~+suu444444r2   c                    t           j                                         g | j        j        g k    sJ | j        j        i k    sJ d S rq   )r   r   r   r   r   r   s    r   is_not_emptyz#Test_callback_registry.is_not_empty   sM    

!!!.-."4444~'2------r2   c                    t          j                    }|                    dd            t          j        t          j        |                    }|                    dd           }|dk    sJ d S )Nr   c                     d S rq   rK   rK   r2   r   <lambda>z9Test_callback_registry.test_cid_restore.<locals>.<lambda>   s     r2   r!   c                     d S rq   rK   rK   r2   r   r   z9Test_callback_registry.test_cid_restore.<locals>.<lambda>   s    t r2   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#||,,axxxxxxr2   r   TFclsc                    |                                    |            }|                     | j        |j        |          }t	          |          t
          u sJ |                                  |                     | j        |j        |          }||k    sJ |                                  t          g | j        j	                  dk    sJ t          | j        j                  dk    sJ ~|                                   d S )Nr%   )
r   r   r   r   typeintr   r   r   r   )r   r   r   mini_mecid1cid2s         r   test_callback_completez-Test_callback_registry.test_callback_complete   s     	 #%% ||DK??DzzS     ||DK??t||||2T^1233q88884>+,,1111 	r2   c                .   |                                    |            }|                     | j        |j        |          }t	          |          t
          u sJ |                                  |                     |           |                                   d S rq   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     	r2   c                .   |                                    |            }|                     | 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     	r2   c                   |                                    |            }|                     | j        |j        |            |            }|                     | j        |j        |            |            }|                     | 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 355T[(.&999 355T[(.&999 	zz||q     r2   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_picklingB  sJ    v|FL1G1I1I$J$JKK"$ $ 	$ 	$ 	$ 	$ 	$r2   N)rH   rI   rJ   ro   r   r   r   r   r   r   r   markparametrizer   r   r   r   r   r   r   rK   r2   r   r   r      s       2 2 2> > >. . .  5 5 5. . .
   [Xe}55[UXz$:;;  <; 650 [Xe}55[UXz$:;;  <; 65" [Xe}55[UXz$:;;  <; 65" [Xe}55[UXz$:;;  <; 652$ $ $ $ $r2   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 rq   rK   rK   r2   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>I  s    d r2   "_get_running_interactive_frameworkc                     d S rq   rK   rK   r2   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>L      T r2   zargument mismatch c                     dS )Nznot-nonerK   rK   r2   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>S  s    Z r2   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	  G  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rH   rI   rJ   rK   r2   r   TestExceptionr  [          r2   r  c                     t           rq   )RuntimeErrorrK   r2   r   raise_runtime_errorz+raising_cb_reg.<locals>.raise_runtime_error^  s    r2   c                     t           rq   r   rK   r2   r   raise_value_errorz)raising_cb_reg.<locals>.raise_value_errora  s    r2   c                6    t          | t                    r| rq   )rr   r  )excpr  s    r   transformerz#raising_cb_reg.<locals>.transformerd  s     dL)) 	 
r2   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  Z  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r2   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 rq   rK   rK   r2   r   r   z@test_callbackregistry_custom_exception_handler.<locals>.<lambda>~  r   r2   r   )r   r   r   r   r  )r  r   r  s      r   .test_callbackregistry_custom_exception_handlerr"  {  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 rq   )append)r   r   s    r   r   z)test_callbackregistry_signals.<locals>.cb  s    w~~a     r2   barr%   )r   r   r   r   r   r   r  )crr   r   s     @r   test_callbackregistry_signalsr)    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                    | rq   rK   )r  s    r   raise_handlerz5test_callbackregistry_blocking.<locals>.raise_handler  s    
r2   r  c                      t          d          )N1 should be blockedr  rK   r2   r   
test_func1z2test_callbackregistry_blocking.<locals>.test_func1      .///r2   c                      t          d          )N2 should be blockedr  rK   r2   r   
test_func2z2test_callbackregistry_blocking.<locals>.test_func2  r0  r2   test1test2r   r2  matchr.  )r   r   r   blockedr  r   r   r   )r,  r   r/  r3  s       r   test_callbackregistry_blockingr9    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_commentrB    s&     %%//////r2   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 quoter6  zgrid.color: "aa)r   r   r   r   r?  rK   r2   r   test_strip_comment_invalidrD    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'   )rf   r   sanitize_sequencekeysvaluesr~   )r"   kvis       r   test_sanitize_sequencerN    s    aa  AA		A&&&Au.qvvxx88999999u.qxxzz::;;;;;;u.qwwyy99::::::'******'********r2   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 rq   )r   r   r  r   'suppress_matplotlib_deprecation_warningr   normalize_kwargs)inpkwargs_to_norms     r   test_normalize_kwargs_failrW    s    	y	!	! 6 64#O#Q#Q 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 rq   )r   rS  r   rT  )rU  expectedrV  s      r   test_normalize_kwargs_passrZ    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        d           t          |           dk    sJ t          j        d d         dk    rjt          j        t                    j        d         }| d         j	        
                    t          |dz            t          |dz            f          rJ d S | d         j	        t          k    sJ d S )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_externalrl    s    vw<<1
w&& ,x((031:&113w7M3N3N36w7O3P3P3R S S 	S 	S 	S 	S 	S
 qz"h......r2   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 )Nra  )return_valuez	\Adummy\Zr6  r   )
r   objectr   r   	_getframer   warnsUserWarningr   r`  )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 )Nr4   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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#&&&&&r2   c                 J    t          j        g g           } | j        dk    sJ d S N)r&   r   )r   r{  r   stepss    r   test_to_prestep_emptyr    -     R((E;&      r2   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 )Nr4   rv  rz  rx  rw  )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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#&&&&&r2   c                 J    t          j        g g           } | j        dk    sJ d S r  )r   r  r   r  s    r   test_to_poststep_emptyr  0  s-    !"b))E;&      r2   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 )Nr4   rv  )r         ?r  rP   rP         @r  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_midstepr  5  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#&&&&&r2   c                 J    t          j        g g           } | j        dk    sJ d S r  )r   r  r   r  s    r   test_to_midstep_emptyr  I  r  r2   argsr]  r'   r4   c                    t          j        t                    5  t          j        |   d d d            d S # 1 swxY w Y   d S rq   )r   r   r   r   r{  )r  s    r   test_step_failsr  N  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  rK   r2   r   Dummyr  Y  r  r2   r  c                $    g | ]}             S rK   rK   r   _r  s     r   
<listcomp>z test_grouper.<locals>.<listcomp>[  s    666EEGG666r2   r)   r   r%   )ranger   Grouperjoinr{   rs   get_siblingsjoinedremove	itertoolsproduct)r   r    r!   r"   r#   objsrA   otherABr  s             @r   test_grouperr  X  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~~ r2   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  rK   r2   r   r  r  m  r  r2   r  c                $    g | ]}             S rK   rK   r  s     r   r  z(test_grouper_private.<locals>.<listcomp>o  s    &&&EEGG&&&r2   r)   r   r%   )r  r   r  r  _mapping)r  rA   mappingobase_setr  s        @r   test_grouper_privater  l  s           &&&&U1XX&&&DA
AFDMMjG  G|||||tAwH!""X & &qzX%%%%%& &r2   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  }  s    
	!A	
BR====R====

"2
&
&C!8888R====R======r2   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    ?    
'!RV

C

"3
'
'C8C==r2   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    r  r2   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  rK   r2   r   r  r    r  r2   r  r   )r%   r   c                $    g | ]}             S rK   rK   r  s     r   r  z"test_reshape2d.<locals>.<listcomp>  s    ###Q###r2   r)   )r%   r)   c                F    g | ]}fd t          d          D             S )c                $    g | ]}             S rK   rK   r  s     r   r  z-test_reshape2d.<locals>.<listcomp>.<listcomp>  s    	$	$	$a%%''	$	$	$r2   r)   r  r  s     r   r  z"test_reshape2d.<locals>.<listcomp>  s4    777	$	$	$	$588	$	$	$777r2   r'   )r'   r)   )r)   r'   r%   r&   r   )r%   )r'   rG  r4   )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 rq   )super__iter__r   r+   )r   r   	__class__s     r   r  z.test_reshape2d.<locals>.ArraySubclass.__iter__  sG      ))++ & &huoo%%%%& &r2   c                j    t          j        t                                          |                    S rq   )r   r+   r  __getitem__)r   itemr  s     r   r  z1test_reshape2d.<locals>.ArraySubclass.__getitem__  s%    8EGG//55666r2   )rH   rI   rJ   r  r  __classcell__)r  s   @r   ArraySubclassr    sQ        	& 	& 	& 	& 	&	7 	7 	7 	7 	7 	7 	7 	7 	7r2   r  
   rx  )r  )ry  buffer)	r   r    r!   r!   ddr#   r$   ffr$   )r   _reshape_2Dr   r   r  r   r`   randrr   rs   ndarrayr+   r   r}  re   )xnewr   r  rL  r  s       @r   test_reshape2dr    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*******r2   c                (   t          j        d                              dd          }|                     |g d          }t	          j        |d          }t          |j        |          D ]%\  }}t           j        	                    ||           &d S )N   r  r'   rF  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..../ /r2   c                (   t          j        d                              dd          }|                     |ddg          }t	          j        |d          }t          |j        |          D ]%\  }}t           j        	                    ||           &d S Nr  r  r'   r   rC   )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..../ /r2   c                ^   t          j        d                              dd          }|                     |g d          }t	          j        |          \  }}t           j                            ||           t          j        d          }t           j                            ||           d S )Nr  r  r'   rF  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.....r2   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.....r2   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'   r4   r)   TFr   )r(      r)   )r   contiguous_regions)r   r    r!   r7   rY  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------r2   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;;;;;;r2   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          j        |          D ]_\  }}	t          j        |          D ]E\  }
}t	          j        | ||	dz   |
|dz   f                   j        }|                    |           F`t          j	        |          }t          j
        |t	          j        | ||                    sJ d S )Nr   r%   rstridecstride)r   r  r  pairwiser   _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>.check1  s<   W
d7U1d1fg..7Q77U1d1fg..7Q7$-h77 	! 	!KB(1(;; ! !G+AblBwqyL.H,IJJLR    ! 
5!!~e#;"#WgG G GH H 	H 	H 	H 	H 	Hr2   c                B      fdt          d dz             D             S )Nc                &    g | ]}|z  d k    |S )r   rK   )r   rM  ns     r   r  zAtest_array_patch_perimeters.<locals>.divisors.<locals>.<listcomp>A  s"    999aa!eqjjjjjr2   r%   r  )r  s   `r   divisorsz-test_array_patch_perimeters.<locals>.divisors@  s)    99995AE??9999r2   ))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 7r2   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overrider   )r)  r*  _pr   s    r   __init__z#test_setattr_cm.<locals>.A.__init__O  s    &DM&DMDGGGr2   c                    d S rq   rK   r   s    r   methztest_setattr_cm.<locals>.A.methT  s    Cr2   c                    d S rq   rK   )r   s    r   classyz!test_setattr_cm.<locals>.A.classyW      Cr2   c                     d S rq   rK   rK   r2   r   staticz!test_setattr_cm.<locals>.A.static[  r1  r2   c                    | j         S rq   r+  r   s    r   propztest_setattr_cm.<locals>.A.prop_  s	    7Nr2   c                    || _         d S rq   r5  )r   vals     r   r6  ztest_setattr_cm.<locals>.A.propc  s    DGGGr2   N)rH   rI   rJ   ro  	cls_levelr*  r,  r.  classmethodr0  staticmethodr3  propertyr6  setterrK   r2   r   r  r'  K  s        FHH	688	 	 	
	 	 	 
	 	 
	 
	 	 
	 
	 	 
	 
	 	 
	 	 	r2   r  c                      e Zd ZdS )test_setattr_cm.<locals>.BNr  rK   r2   r   r  r?  g  s        r2   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   r9  r0  r3  )r.  r)  r6  r9  r*  r   monkey__dict__)objr  r   r  s    r   verify_pre_post_statez.test_setattr_cm.<locals>.verify_pre_post_statel  s    xsx''''|s|++++zZ''''x38####}++++|z))))3(((((x3zUZ''''}++++#,....s|++++s|++++++r2   squirrelmoosec                     d S rq   rK   rK   r2   r   r   z!test_setattr_cm.<locals>.<lambda>  s    4 r2   boorA  c                     d S rq   rK   rK   r2   r   r   z!test_setattr_cm.<locals>.<lambda>  s    4 r2   bobr0  r3  )	r6  r)  r.  r*  rA  rB  r9  r0  r3  )r.  rB  r   _setattr_cmr)  r*  rA  r6  r9  r0  r3  )r  rE  r  r   r  s     @@@r   test_setattr_cmrM  J  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_approxrR    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Jr2   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   rM  s     r   r  z5test_safe_first_element_with_none.<locals>.<listcomp>  s.    HHHDJLL9!#4#4#44HHHr2   r  r   r%   )r  r   r  )datetime_lstr=   s     r   !test_safe_first_element_with_nonerX    sT    HHeBiiHHHLLO%l33F&LO";";";";";";r2   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   rK   r2   r   test_strip_mathr[    sS    m$$5555o&&'1111l##t++++++r2   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                    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   rA  s      r   test_auto_format_strrc    sP     !#u--7777!#rz%'8'899VCCCCCCr2   c                     G d d          } t          d          }| |_        |t          j        d<   t	          j        d          }|                    |          }t          j        |          }t          ||           dS )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                      e Zd Zd Zd ZdS )/test_unpack_to_numpy_from_torch.<locals>.Tensorc                    || _         d S rq   re   r   s     r   r,  z8test_unpack_to_numpy_from_torch.<locals>.Tensor.__init__      DIIIr2   c                    | j         S rq   rh  r   s    r   	__array__z9test_unpack_to_numpy_from_torch.<locals>.Tensor.__array__  
    9r2   NrH   rI   rJ   r,  rk  rK   r2   r   Tensorrf    2        	 	 		 	 	 	 	r2   rn  torchr  N)	r   rn  ra  modulesr   r   r   _unpack_to_numpyr
   )rn  rp  re   torch_tensorrA  s        r   test_unpack_to_numpy_from_torchrt    s            wEEL CK9R==D<<%%L#L11F vt$$$$$r2   c                     G d d          } t          d          }| |_        |t          j        d<   t	          j        d          }|                    |          }t          j        |          }t          ||           dS )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                      e Zd Zd Zd ZdS ),test_unpack_to_numpy_from_jax.<locals>.Arrayc                    || _         d S rq   rh  r   s     r   r,  z5test_unpack_to_numpy_from_jax.<locals>.Array.__init__  ri  r2   c                    | j         S rq   rh  r   s    r   rk  z6test_unpack_to_numpy_from_jax.<locals>.Array.__array__  rl  r2   Nrm  rK   r2   r   Arrayrw    ro  r2   rz  jaxr  N)	r   rz  ra  rq  r   r   r   rr  r
   )rz  r{  re   	jax_arrayrA  s        r   test_unpack_to_numpy_from_jaxr}    s            U

CCICK9R==D		$I#I..F vt$$$$$r2   c                     G d d          t          d          } fd| _        | _        | t          j        d<   t          j        d          }|                     |          }t          j        |          }t          ||           dS )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                      e Zd Zd Zd ZdS )4test_unpack_to_numpy_from_tensorflow.<locals>.Tensorc                    || _         d S rq   rh  r   s     r   r,  z=test_unpack_to_numpy_from_tensorflow.<locals>.Tensor.__init__  ri  r2   c                    | j         S rq   rh  r   s    r   rk  z>test_unpack_to_numpy_from_tensorflow.<locals>.Tensor.__array__  rl  r2   Nrm  rK   r2   r   rn  r    ro  r2   rn  
tensorflowc                $    t          |           S rq   )rr   )r   rn  s    r   r   z6test_unpack_to_numpy_from_tensorflow.<locals>.<lambda>
  s    Z6%:%: r2   r  N)
r   	is_tensorrn  ra  rq  r   r   r   rr  r
   )r  re   	tf_tensorrA  rn  s       @r   $test_unpack_to_numpy_from_tensorflowr    s            L))J::::JJ *CK9R==D!!$''I#I..F vt$$$$$r2   )T
__future__r   r  rc  r   ra  typingr   unittest.mockr   r   r   r   r	   numpyr   numpy.testingr
   r   r   r   r^  r   r   matplotlib.colorscolorsrD   matplotlib.cbookr   r   typesr   r   rM   r   r   r   r	  r  r"  r)  r9  r   r   rB  rD  rN  rP  __annotations__rQ  rW  rZ  rl  rt  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  rM  rR  rX  r[  rc  rt  r}  r  rK   r2   r   <module>r     si   " " " " " " "       



       % % % % % % % % . . . . . . . . . .    6 6 6 6 6 6 6 6 6 6  " " " " " " " " # # # # # # = = = = = = = =      3 3 3 3 3 3 3 3D{@ {@ {@ {@ {@ {@ {@ {@|              
C$ C$ C$ C$ C$ C$ C$ C$L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% % %6% % %8% % % % %r2   