
    Ngz              	      ~   U d dl m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!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'             Z0d( Z1d) Z2d* Z3d+ Z4d, Z5d- Z6d. Z7ej'        (                    d/ ej8        d0          9                    d1d2          df ej8        d0          df ej8        d0           ej8        d1          fg          d3             Z:d4 Z;d5 Z<d6 Z=d7 Z>d8 Z?d9 Z@d: ZAd; ZBd< ZCd= ZDd> ZEd? ZFd@ ZGdA ZHdB ZIdC ZJdD ZKdE ZLej'        (                    dFg dG          dH             ZMdI ZNdJ ZOdS )K    )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    W/var/www/html/ai-engine/env/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_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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_listl   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_dicto   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_keyss   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_baselinew   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   9   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                  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   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          | j        j                            | j        g                     }t          | j        j                            | j                            }||k    sJ |S rq   )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$+>>??r2   c                    t           j                                         | j        j        i 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   sb    

!!!~+r1111~'2----~+suu444444r2   c                    t           j                                         | j        j        i 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   sH    

!!!~+r1111~'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   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 	r2   c                6   |                                   t                      }|                     | 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                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     	r2   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     r2   c                    d S rq   rK   r   s    r   r   zTest_callback_registry.dummy4  s    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_pickling7  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   rK   r2   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  $ $ $ $ $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>>  s    d r2   "_get_running_interactive_frameworkc                     d S rq   rK   rK   r2   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>A      T r2   zargument mismatch c                     dS )Nznot-nonerK   rK   r2   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>H  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   <  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   P          r2   r   c                     t           rq   )RuntimeErrorrK   r2   r   raise_runtime_errorz+raising_cb_reg.<locals>.raise_runtime_errorS  s    r2   c                     t           rq   r   rK   r2   r   raise_value_errorz)raising_cb_reg.<locals>.raise_value_errorV  s    r2   c                6    t          | t                    r| rq   )rr   r  )excpr   s    r   transformerz#raising_cb_reg.<locals>.transformerY  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  O  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>s  r   r2   r   )r   r   r   r   r   )r   r   r	  s      r   .test_callbackregistry_custom_exception_handlerr  p  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  x  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  r"  r2   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_commentr4    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 quoter(  zgrid.color: "aa)r   r   r   r   r1  rK   r2   r   test_strip_comment_invalidr6    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_sequencer@    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_failrI    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 rq   )r   rE  r   rF  )rG  expectedrH  s      r   test_normalize_kwargs_passrL    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_pythonrV    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_prestepri    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_emptyrn    -     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   rX  r\  rZ  rY  )r'   r'   r&   r&   r%   r%   r   )r   r   r   pts_to_poststepr^  r_  r
   r`  s	            r   test_to_poststeprr    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 rk  )r   rq  r   rl  s    r   test_to_poststep_emptyrt    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   rX  )r         ?rv  rP   rP         @rw  r'   rZ  )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_midstepry    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 rk  )r   rx  r   rl  s    r   test_to_midstep_emptyr{  /  ro  r2   args   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  4  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  ?  r  r2   r  c                $    g | ]}             S rK   rK   .0_r  s     r   
<listcomp>z test_grouper.<locals>.<listcomp>A  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  >  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  S  r  r2   r  c                $    g | ]}             S rK   rK   r  s     r   r  z(test_grouper_private.<locals>.<listcomp>U  s    &&&EEGG&&&r2   r)   r   r%   )r  r   r  r  _mapping)r  rA   mappingobase_setr  s        @r   test_grouper_privater  R  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  c  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  o  ?    
'!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  u  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'   r9  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  
   rZ  )r  )r[  buffer)	r   r    r!   r!   ddr#   r$   ffr$   )r   _reshape_2Dr   r   r  r   r`   randrr   rs   ndarrayr+   r   r_  re   )xnewr   r  r>  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'   r8  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'   r8  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   rK  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                    t          j        d           t          |           dk    sJ | d         j        t          k    sJ d S )Noopsr%   r   )r   rT  r   filename__file__)recwarns    r   test_warn_externalr    sH    vw<<11:(******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          |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%   rX  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r2   c                B      fdt          d dz             D             S )Nc                &    g | ]}|z  d k    |S )r   rK   )r  r?  ns     r   r  zAtest_array_patch_perimeters.<locals>.divisors.<locals>.<listcomp>-  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overridep)r  r  _pr   s    r   __init__z#test_setattr_cm.<locals>.A.__init__;  s    &DM&DMDGGGr2   c                    d S rq   rK   r   s    r   methztest_setattr_cm.<locals>.A.meth@  s    Cr2   c                    d S rq   rK   )clss    r   classyz!test_setattr_cm.<locals>.A.classyC      Cr2   c                     d S rq   rK   rK   r2   r   staticz!test_setattr_cm.<locals>.A.staticG  r  r2   c                    | j         S rq   r  r   s    r   propztest_setattr_cm.<locals>.A.propK  s	    7Nr2   c                    || _         d S rq   r   )r   vals     r   r!  ztest_setattr_cm.<locals>.A.propO  s    DGGGr2   N)rH   rI   rJ   rP  	cls_levelr  r  r  classmethodr  staticmethodr  propertyr!  setterrK   r2   r   r  r  7  s        FHH	688	 	 	
	 	 	 
	 	 
	 
	 	 
	 
	 	 
	 
	 	 
	 	 	r2   r  c                      e Zd ZdS )test_setattr_cm.<locals>.BNr   rK   r2   r   r  r*  S  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  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_stateX  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>t  s    4 r2   boor,  c                     d S rq   rK   rK   r2   r   r   z!test_setattr_cm.<locals>.<lambda>v  s    4 r2   bobr  r  )	r!  r  r  r  r,  r-  r$  r  r  )r  r-  r   _setattr_cmr  r  r,  r!  r$  r  r  )r  r0  r  r   r  s     @@@r   test_setattr_cmr8  6  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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  r?  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_nonerC    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_mathrF    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} mrG  rH  )z{} mrG  z0.2 m)constrG  rI  )z%d or {}rG  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   r3  s      r   test_auto_format_strrN    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        |          }||                                u sJ 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   rS  r   s    r   	__array__z9test_unpack_to_numpy_from_torch.<locals>.Tensor.__array__  
    9r2   NrH   rI   rJ   r  rV  rK   r2   r   TensorrQ    2        	 	 		 	 	 	 	r2   rY  torchr  N)	r   rY  rN  modulesr   r   r   _unpack_to_numpyrV  )rY  r[  re   torch_tensorr3  s        r   test_unpack_to_numpy_from_torchr_    s            wEEL CK9R==D<<%%L#L11F\++--------r2   c                     G d d          } t          d          }| |_        |t          j        d<   t	          j        d          }|                    |          }t          j        |          }||                                u sJ 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   rS  r   s     r   r  z5test_unpack_to_numpy_from_jax.<locals>.Array.__init__  rT  r2   c                    | j         S rq   rS  r   s    r   rV  z6test_unpack_to_numpy_from_jax.<locals>.Array.__array__  rW  r2   NrX  rK   r2   r   Arrayrb    rZ  r2   re  jaxr  N)	r   re  rN  r\  r   r   r   r]  rV  )re  rf  re   	jax_arrayr3  s        r   test_unpack_to_numpy_from_jaxrh    s            U

CCICK9R==D		$I#I..FY((********r2   )P
__future__r   rN  r  r   typingr   unittest.mockr   r   r   r   r	   numpyr   numpy.testingr
   r   r   r   
matplotlibr   r   matplotlib.colorscolorsrD   matplotlib.cbookr   r   typesr   r   rM   r   r   r  r  r  r+  r   r   r4  r6  r@  rB  __annotations__rC  rI  rL  rV  ri  rn  rr  rt  ry  r{  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r8  r=  rC  rF  rN  r_  rh  rK   r2   r   <module>rt     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. . .0+ + + + +r2   