
    EVfv              	      8   U d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dl	m	Z	m
Z
mZ d dlZd dlmZmZmZ d dlZd dlmZmZ d dlmZ d dlmZmZ  G d	 d
      Z G d d      Z G d d      Zd Zd Z e d        Z!d Z"d Z#ejH                  jK                  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jH                  jK                  d#e)      d$        Z,ejH                  jK                  d%e+      d&        Z-d' Z.d( Z/d) Z0d* Z1d+ Z2d, Z3d- Z4ejH                  jK                  d. ejj                  d/      jm                  d0d1      df ejj                  d/      df ejj                  d/       ejj                  d0      fg      d2        Z7d3 Z8d4 Z9d5 Z:d6 Z;d7 Z<d8 Z=d9 Z>d: Z?d; Z@d< ZAd= ZBd> ZCd? ZDd@ ZEdA ZFdB ZGdC ZHdD ZIejH                  jK                  dEg dF      dG        ZJy)H    )annotationsN)Any)patchMock)datetimedate	timedelta)assert_array_equalassert_approx_equalassert_array_almost_equal)_apicbook)delete_masked_points
strip_mathc                  $    e Zd Zd Zd Zd Zd Zy)Test_delete_masked_pointsc                    t        j                  t              5  t        dt	        j
                  dd             d d d        y # 1 sw Y   y xY w)Nza stringg      ?g      @)pytestraises
ValueErrorr   nparangeselfs    d/var/www/html/software/conda/envs/catlas/lib/python3.12/site-packages/matplotlib/tests/test_cbook.pytest_bad_first_argz,Test_delete_masked_points.test_bad_first_arg   s<    ]]:& 	B RYYsC-@A	B 	B 	Bs   !AAc                   g d}dddt         j                  t         j                  dg}t        ||      \  }}g d}t        |t        j                  |      |          t        |t        j                  |      |          y )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   se    +Arvvrvvq)/B77BHHRL$567BHHRL$5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                  j                  dddt        j                  t        j                  dgg d	      }t        ||      }g d
}t        |d   t        j                  |      |          t        |d   ||   j                                y )Ni  r$   r%   r&      r(   r'   FFTTFFmaskr   r$   r(   r   )r   r   mar*   r)   r   r
   
compressed)r   datesa_maskedactualr/   s        r   test_datetimez'Test_delete_masked_points.test_datetime"   s    $1%xa';$1%xa';$1%xa';= 55;;1a;$L  N%eX66!9bhhuoc&:;6!9hsm&>&>&@Ar1   c                @   t         j                  j                  dddt         j                  t         j                  dgg d      }t	        j
                  g d      }t        ||      }g d}t        |d	   ||   j                                t        |d   ||          y )
Nr$   r%   r&   r'   r4   r5   )rgr   r    myr7   r   )	r   r8   r*   r)   mcolorsto_rgba_arrayr   r
   r9   )r   r;   a_rgbar<   r/   s        r   	test_rgbaz#Test_delete_masked_points.test_rgba-   s    55;;1a;$L  N&&'EF%h76!9hsm&>&>&@A6!9fSk2r1   N)__name__
__module____qualname__r   r0   r=   rF    r1   r   r   r      s    B7	B3r1   r   c                  Z    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y)Test_boxplot_statsc                   t         j                  j                  d       d| _        d| _        t         j                  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| _        y )Ni  %   r3         ?g      ?)sizemeansigma)rQ   medq1q3iqrcilocihiwhislowhishiflierslabelgP$C@g@ÿg>zzD*@gjtxJ*@gDm(
@)Ӿ#W@79qU@gEɳE@gqמC@g]Y?g6 v-@gIQ;@g inޓ?)
rX   rW   rV   rQ   rS   r[   rT   rU   rZ   rY   gN!@g?)rX   rW   g =ɳE@r]   r^   )rZ   rY   r[   geLM?)rY   rZ   g,#W@)r   randomseednrowsncols	lognormaldatasorted
known_keysr   boxplot_statsstd_resultsr*   known_nonbootstrapped_resknown_bootstrapped_ciknown_whis3_resknown_res_percentilesknown_res_ranger   s    r   setup_methodzTest_boxplot_stats.setup_method8   s   
		s

II''djj$**-E-0 ( >	  "
 
 !..tyy9 ''%%%hh    %#(**
&  &&&
" )*hh[9: 
 +)&
" +( 
r1   c                <    t        | j                  t              sJ y N)
isinstancerh   listr   s    r   test_form_main_listz&Test_boxplot_stats.test_form_main_listj   s    $**D111r1   c                J    | j                   D ]  }t        |t              rJ  y rp   )rh   rq   dictr   ress     r   test_form_each_dictz&Test_boxplot_stats.test_form_each_dictm   s'    ## 	)Cc4(((	)r1   c                l    | j                   D ]%  }t        |      t        | j                        k  r%J  y rp   )rh   setrf   rv   s     r   test_form_dict_keysz&Test_boxplot_stats.test_form_dict_keysq   s2    ## 	4Cs8s4??3333	4r1   c                    | j                   d   }| j                  j                         D ]  \  }}t        ||   |        y )Nr   )rh   ri   itemsr   )r   rw   keyvalues       r   test_results_baselinez(Test_boxplot_stats.test_results_baselineu   sB    q!88>>@ 	7JC%c#h6	7r1   c                    t        j                  | j                  d      }|d   }| j                  j	                         D ]  \  }}t        ||   |        y )Ni'  )	bootstrapr   )r   rg   rd   rj   r}   r   r   resultsrw   r~   r   s        r   test_results_bootstrappedz,Test_boxplot_stats.test_results_bootstrappedz   sQ    %%dii5Aaj44::< 	1JCC%0	1r1   c                    t        j                  | j                  d      }|d   }| j                  j	                         D ]  \  }}t        ||   |        y )Nr&   whisr   )r   rg   rd   rk   r}   r   r   s        r   test_results_whiskers_floatz.Test_boxplot_stats.test_results_whiskers_float   sQ    %%diia8aj..446 	7JC%c#h6	7r1   c                    t        j                  | j                  ddg      }|d   }| j                  j	                         D ]  \  }}t        ||   |        y )Nr   d   r   )r   rg   rd   rm   r}   r   r   s        r   test_results_whiskers_rangez.Test_boxplot_stats.test_results_whiskers_range   sU    %%diiq#h?aj..446 	7JC%c#h6	7r1   c                    t        j                  | j                  ddg      }|d   }| j                  j	                         D ]  \  }}t        ||   |        y )Nr(   _   r   r   )r   rg   rd   rl   r}   r   r   s        r   !test_results_whiskers_percentilesz4Test_boxplot_stats.test_results_whiskers_percentiles   sU    %%diiq"g>aj44::< 	7JC%c#h6	7r1   c                    g d}t        j                  | j                  |      }t        ||      D ]  \  }}|d   |k(  rJ  t        j                  | j                        }|D ]  }d|vrJ  y )N)Test1r%   Aardvarkr3   labelsr\   )r   rg   rd   zip)r   r   r   labrw   s        r   test_results_withlabelsz*Test_boxplot_stats.test_results_withlabels   s|    ,%%dii?FG, 	'HCw<3&&&	' %%dii0 	&C#%%%	&r1   c                    ddg}t        j                  t              5  t        j                  | j
                  |       d d d        y # 1 sw Y   y xY w)Nr$   r%   r   )r   r   r   r   rg   rd   )r   r   s     r   test_label_errorz#Test_boxplot_stats.test_label_error   s@    Q]]:& 	:		&9	: 	: 	:s   "A		Ac                    t         j                  j                  d      }t        j                  t
              5  t        j                  |       d d d        y # 1 sw Y   y xY w)N)"   r   r   )rP   )r   r_   normalr   r   r   r   rg   )r   rd   s     r   test_bad_dimsz Test_boxplot_stats.test_bad_dims   sH    yy\2]]:& 	&%	& 	& 	&s   AA"c                p   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        y )N   )shapei   F)	autorangeTr   rY   rZ   r[   )r   zeroshstackr   rg   r   )r   xbstats_falsebstats_trues       r   "test_boxplot_stats_autorange_falsez5Test_boxplot_stats.test_boxplot_stats_autorange_false   s    HH3IIsArl#**1>))!t<Ax(A---Ax(A---!,q/(";c2YG1~h'3...1~h'2---!+a.":B?r1   N)rG   rH   rI   rn   rs   rx   r{   r   r   r   r   r   r   r   r   r   rJ   r1   r   rL   rL   7   sE    0
d2)47
1777&:
&
@r1   rL   c                  b   e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dd	d
g      d        Ze
j                  j                  dd	d
g      d        Ze
j                  j                  dd	d
g      d        Ze
j                  j                  dd	d
g      d        Zd Zd Zy)Test_callback_registryc                D    d| _         t        j                         | _        y )Ntest)signalr   CallbackRegistry	callbacksr   s    r   rn   z#Test_callback_registry.setup_method   s    //1r1   c                v    |r| j                   j                  ||      S | j                   j                  ||      S rp   )r   connect_connect_picklable)r   sfuncpickles       r   r   zTest_callback_registry.connect   s3    >>))!T22>>44Q==r1   c                8    | j                   j                  |      S rp   )r   
disconnect)r   cids     r   r   z!Test_callback_registry.disconnect   s    ~~((--r1   c                    t        | j                  j                  j                  | j                  g             }t        | j                  j                  j                  | j                              }||k(  sJ |S rp   )lenr   _func_cid_mapgetr   )r   count1count2s      r   countzTest_callback_registry.count   s]    T^^1155dkk2FGT^^--11$++>?r1   c                    t         j                  j                          | j                  j                  i k(  sJ | j                  j                  i k(  sJ | j                  j
                  t               k(  sJ y rp   )r   testingbreak_cyclesr   r   _pickled_cidsrz   r   s    r   is_emptyzTest_callback_registry.is_empty   s\    


!~~++r111~~''2---~~++su444r1   c                    t         j                  j                          | j                  j                  i k7  sJ | j                  j                  i k7  sJ y rp   )r   r   r   r   r   r   s    r   is_not_emptyz#Test_callback_registry.is_not_empty   sB    


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


3%ll6<<+,kk#|,axxr1   r   TFc                   | j                          t               }| j                  | j                  |j                  |      }t        |      t        u sJ | j                          | j                  | j                  |j                  |      }||k(  sJ | j                          t        | j                  j                        dk(  sJ t        | j                  j                        dk(  sJ ~| j                          y )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     	 )* ||DKK?DzS    ||DKK?t||4>>//0A5554>>++,111 	r1   c                   | j                          t               }| j                  | j                  |j                  |      }t        |      t        u sJ | j                          | j                  |       | j                          y rp   	r   r   r   r   r   r   r   r   r   r   r   r   r   s       r   test_callback_disconnectz/Test_callback_registry.test_callback_disconnect   sh     	 )* ||DKK?DzS    	r1   c                   | j                          t               }| j                  | j                  |j                  |      }t        |      t        u sJ | j                          | j                  d       | j                          y )Nfoor   r   s       r   test_callback_wrong_disconnectz5Test_callback_registry.test_callback_wrong_disconnect  sk     	 )* ||DKK?DzS    	r1   c                   | j                          t               }| j                  | j                  |j                  |       t               }| j                  | j                  |j                  |       t               }| j                  | j                  |j                  |       | j                          | j                         dk(  sJ d }d }| j                          y 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 *+T[[(..&9 *+T[[(..&9 	zz|q    r1   c                     y rp   rJ   r   s    r   r   zTest_callback_registry.dummy2  s    r1   c                    t        t        j                  t        j                  t	        j
                                     d      sJ y )Nr   )hasattrr   r   r   r   r   r   s    r   test_picklingz$Test_callback_registry.test_pickling5  s4    v||FLL1G1G1I$JK"$ 	$ $r1   N)rG   rH   rI   rn   r   r   r   r   r   r   r   markparametrizer   r   r   r   r   r   rJ   r1   r   r   r      s    2>.5.
 [[Xe}5 60 [[Xe}5 6" [[Xe}5 6" [[Xe}5 62$r1   r   c                    t        j                         }|j                  dd        |j                  t         dd        t	        j
                  t              5  |j                  dd       d d d        | j                         }|j                  |j                  cxk(  rdk(  sJ  J |j                  t         dd        |j                  dd       | j                         }|j                  dk(  sJ d|j                  v sJ y # 1 sw Y   xY w)	Nr   c                      y rp   rJ   rJ   r1   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda><  r   r1   "_get_running_interactive_frameworkc                      y rp   rJ   rJ   r1   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>?  r   r1   zargument mismatch c                      y)Nznot-nonerJ   rJ   r1   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>F  r   r1   z,takes 0 positional arguments but 1 was given)r   r   r   setattrr   r   	TypeErrorprocess
readouterrouterr)capsysmonkeypatchr   outerrs       r   /test_callbackregistry_default_exception_handlerr   :  s    				!BJJul#3\C	y	! /


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


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


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


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


7


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


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


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


7  	  	 	     sH   #E-E#>EE#;E/0E;EE 	E##E,/E8;F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                8    t        j                  |       |k(  sJ y)z+Strip everything from the first unquoted #.N)r   _strip_comment)lineresults     r   test_strip_commentr2    s     %///r1   c                     t        j                  t        d      5  t        j                  d       d d d        y # 1 sw Y   y xY w)NzMissing closing quoter&  zgrid.color: "aa)r   r   r   r   r/  rJ   r1   r   test_strip_comment_invalidr4    s5    	z)@	A 0./0 0 0s	   ;Ac                    dddd} g d}g d}g d}|t        t        j                  | j                                     k(  sJ |t        t        j                  | j	                                     k(  sJ |t        t        j                  | j                                     k(  sJ |t        j                  |      k(  sJ |t        j                  |      k(  sJ y )Nr$   r%   r&   r   r   r    r$   r%   r&   ))r   r$   )r   r%   )r    r&   )re   r   sanitize_sequencekeysvaluesr}   )r!   kvis       r   test_sanitize_sequencer>    s    aa AAA&Au..qvvx89999u..qxxz:;;;;u..qwwy9::::''****''****r1   r$   r%   )r   r   alias_mappingr   r   ztuple[tuple[dict, dict], ...]fail_mappingz"tuple[tuple[Any, dict, dict], ...]pass_mappingzinp, kwargs_to_normc                    t        j                  t              5  t        j                         5  t        j                  | fi | d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wrp   )r   r   r   r   'suppress_matplotlib_deprecation_warningr   normalize_kwargs)inpkwargs_to_norms     r   test_normalize_kwargs_failrG    sW    	y	! 6		5	5	76s5n56 6 6 6 6 6s"   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        y # 1 sw Y   y xY wrp   )r   rC  r   rD  )rE  expectedrF  s      r   test_normalize_kwargs_passrJ    sG     
	5	5	7 I511#HHHHHI I Is	   ;Ac                    t        j                  t        d      5 } t        d       | _        t        j                  t        d      5  t        j                  d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nsys)return_valuez	\Adummy\Zr&  r   )
r   objectr   r   	_getframer   warnsUserWarningr   warn_external)mock_syss    r   (test_warn_external_frame_embedded_pythonrT    sj    	eU	# (x!t4\\+\: 	(w'	(( (	( 	(( (s#   -A;A/A;/A8	4A;;Bc                    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        ||       y )Nr3   r   r   r$   r$   r%   r%   r&   dtyper   r$   r$   r%   r%   r&   r&   )r&   r%   r%   r$   r$   r   r   )r   r   r   pts_to_prestepasarrayfloatr
   	r   y1y2xsy1sy2sx_target	y1_target	y2_targets	            r   test_to_presteprg    s    
		!A	1B	1dd	B''2r2LBSzz/u=H

0>I

0>Ix$y#&y#&""1b)GBx$y#&r1   c                 R    t        j                  g g       } | j                  dk(  sJ y N)r%   r   )r   r[  r   stepss    r   test_to_prestep_emptyrl    &      R(E;;&   r1   c                    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        ||       y )Nr3   rV  rZ  rX  rW  )r&   r&   r%   r%   r$   r$   r   )r   r   r   pts_to_poststepr\  r]  r
   r^  s	            r   test_to_poststeprp     s    
		!A	1B	1dd	B((B3LBSzz/u=H

0>I

0>Ix$y#&y#&##Ar*GBx$y#&r1   c                 R    t        j                  g g       } | j                  dk(  sJ y ri  )r   ro  r   rj  s    r   test_to_poststep_emptyrr    s&    !!"b)E;;&   r1   c                    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        ||       y )Nr3   rV  )r         ?rt  rO   rO         @ru  r&   rX  )r   r   r$   r$   r%   r%   r&   r&   )r&   r&   r%   r%   r$   r$   r   r   )r   r   r   pts_to_midstepr\  r]  r
   r^  s	            r   test_to_midsteprw    s    
		!A	1B	1dd	B''2r2LBSzz<EJH

35AI

35AIx$y#&y#&""1b)GBx$y#&r1   c                 R    t        j                  g g       } | j                  dk(  sJ y ri  )r   rv  r   rj  s    r   test_to_midstep_emptyry  -  rm  r1   args   r&   r3   c                    t        j                  t              5  t        j                  |   d d d        y # 1 sw Y   y xY wrp   )r   r   r   r   r[  )rz  s    r   test_step_failsr}  2  s3     
z	" $d#$ $ $s   6?c                 X    G d d      } t        d      D cg c]	  } |         c}x\  }}}}}}t        j                         } |j                  |  t	        t        |      d         t	        |      k(  sJ t	        |j                  |            t	        |      k(  sJ |dd  D ]  }	|j                  ||	      rJ  |j                  |       |dd  D ]  }	|j                  ||	      sJ  t        j                  |dd  |dd        D ]  \  }
}|j                  |
|      rJ  y c c}w )Nc                      e Zd Zy)test_grouper.<locals>.DummyNr   rJ   r1   r   Dummyr  =  r   r1   r  r(   r   r$   )ranger   Grouperjoinrz   rr   get_siblingsjoinedremove	itertoolsproduct)r  _r   r   r    r!   r"   objsr@   otherABs               r   test_grouperr  <  s+    -21X6EG66MAq!QDA
AFFDMtAwqz?c$i'''q~~a !SY...ab "xx5!!!" HHQKab &88Au%%%& !!$qr(DH5 1xx1~~ 7s   D'c                 
    G d d      } t        d      D cg c]	  } |         }}t        j                         } |j                  |  |j                  }|D ]  }||v rJ  ||d      }|dd  D ]  }||   |u rJ  y c c}w )Nc                      e Zd Zy)#test_grouper_private.<locals>.DummyNr   rJ   r1   r   r  r  Q  r   r1   r  r(   r   r$   )r  r   r  r  _mapping)r  r  r  r@   mappingobase_sets          r   test_grouper_privater  P  s     "1X&EG&D&A
AFFDMjjG G|| tAwH!"X &qzX%%%& 's   B 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 y )Nr(   r   r$   )r   r   flatnextr   _safe_first_finite)r   itrets      r   test_flatiterr  a  ss    
		!A	
BR==R==

"
"2
&C!8O8R==R==r1   c                     t        j                  dt         j                        } t        j                  |       }t        j
                  |      sJ y r   )r   fullr)   r   r  isnanarrr  s     r   test__safe_first_finite_all_nanr  m  6    
''!RVV
C

"
"3
'C88C==r1   c                     t        j                  dt         j                        } t        j                  |       }t        j
                  |      sJ y r   )r   r  infr   r  isinfr  s     r   test__safe_first_finite_all_infr  s  r  r1   c                 2	    G d d      } t        j                  g d      }t        j                  |      dk(  sJ t	        d      D cg c]	  } |         }}t        j                  |d      }t        j                  |      dk(  sJ t        j
                  d      }t        j                  |d      }t        j                  |      dk(  sJ t	        d      D cg c]   }t	        d      D cg c]	  } |         c}" }}t        j                  |d      }t        j                  |      dk(  sJ t        j                  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 y c c}w c c}w c c}w )Nc                      e Zd Zy)test_reshape2d.<locals>.DummyNr   rJ   r1   r   r  r  {  r   r1   r  r   )r$   r   r(   )r$   r(   r&   )r&   r(   )r(   r&   r$   r%   r   )r$   )r&   r7  r3   )r%   c                  (     e Zd Z fdZ fdZ xZS )%test_reshape2d.<locals>.ArraySubclassc              3  b   K   t         |          D ]  }t        j                  |        y wrp   )super__iter__r   r*   )r   r   	__class__s     r   r  z.test_reshape2d.<locals>.ArraySubclass.__iter__  s,     )+ &hhuo%&s   ,/c                H    t        j                  t        |   |            S rp   )r   r*   r  __getitem__)r   itemr  s     r   r  z1test_reshape2d.<locals>.ArraySubclass.__getitem__  s    88EG/566r1   )rG   rH   rI   r  r  __classcell__)r  s   @r   ArraySubclassr    s    	&	7 	7r1   r  
   rX  )r  )rY  buffer)	r   r   r    r    ddr"   r#   ffr#   )r   _reshape_2Dr   r   r  r   r_   randrq   rr   ndarrayr*   r   r]  rd   )r  xnewr  r   r  r<  s         r   test_reshape2dr  y  s     R%D88D>V###(#Q#A#Q$D88D>V###
		!AQ$D88D>V###.3Ah758	$a%'	$7A7Q$D88D>V### 			q!AQ$D88D>V### qcA3AQ$DdD!!!d1grzz*tAw}}/DDDd1grzz*tAw}}/DDDd1grzz*tAw}}/DDD 
!bhhqk288A;/AQ$DdD!!!t9>>d1grzz*tAw}}/DDD 
QFQC AQ$DdD!!!d1grzz*tAw}}/DDDd1grzz*tAw}}/DDDd1grzz*tAw}}/DDD7

 7 			"E"Ae58AQ$D t9>>d1g}--- 	8AQ$DtAw<3q6!!!d1grzz***Q 	$ 
%7s   R
R,R
:RRc                    t        j                  d      j                  dd      }| j                  |g d      }t	        j
                  |d      }t        |j                  |      D ]%  \  }}t         j                  j                  ||       ' y )N   r  r&   r6  columnsr   )
r   r   reshape	DataFramer   r  r   Tr   r
   )pdXr   Xnewr  s        r   test_reshape2d_pandasr    sq    
		"b!$A
Q0AQ$DqssD> /4


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


%%a./r1   c                R   t        j                  d      j                  dd      }| j                  |g d      }t	        j
                  |      \  }}t         j                  j                  ||       t        j                  d      }t         j                  j                  ||       y )Nr  r  r&   r6  r  )r   r   r  r  r   index_ofr   r
   )r  r  r   Idxr  IdxRefs         r   test_index_of_pandasr    su    
		"b!$A
Q0Aq!ICJJ!!!T*YYr]FJJ!!#v.r1   c                R   t        j                  d      j                  dd      }| j                  |ddg      }t	        j
                  |      \  }}t         j                  j                  ||       t        j                  d      }t         j                  j                  ||       y r  )r   r   r  r  r   r  r   r
   )r  r  r   r  r  r  s         r   test_index_of_xarrayr    sy    
		"b!$A
Qc3Z(Aq!ICJJ!!!T*YYr]FJJ!!#v.r1   c                    d\  } }}dg| z  dg|z  z   dg|z  z   }d| f| |z   | |z   |z   fg}t        j                  |      |k(  sJ d\  }}|dg|z  z   }t        j                  |      |k(  sJ dg|z  |d |  z   }||| z   f|| z   |z   || z   |z   |z   fg}t        j                  |      |k(  sJ |dg|z  z   }t        j                  |      |k(  sJ t        j                  dgdz        g k(  sJ t        j                  g       g k(  sJ y )N)r&   r3   r(   TFr   )r'      r(   )r   contiguous_regions)r   r   r    r6   rI  r!   r"   s          r   test_contiguous_regionsr    sT   GAq!6!8ugai4&(*DA1ac!e%H##D)X555DAq5'!)D##D)X555719tCaRy DAaC1Q3q5!A#a%'*+H##D)X5555'!)D##D)X555##UGAI."444##B'2---r1   c                    | j                  t        d      t        dd            }t        j                  |      }|dk(  sJ y )Nr(   r     )indexr   )Seriesr  r   r  )r  r   r<   s      r   %test_safe_first_element_pandas_seriesr    s:    
		%(%B-	0A%%a(FQ;;r1   c                ~    t        j                  d       t        |       dk(  sJ | d   j                  t        k(  sJ y )Noopsr$   r   )r   rR  r   filename__file__)recwarns    r   test_warn_externalr    s:    vw<11:(***r1   c                     d } d }dD ]h  \  }}t        j                  ||z        j                  ||      }t        j                   ||dz
         ||dz
              D ]  \  }} | |||        j y )Nc           	        | j                   \  }}g t        d|dz
  |      |dz
  }g t        d|dz
  |      |dz
  }g }t        |d d |dd        D ]^  \  }}	t        |d d |dd        D ]D  \  }
}t        j                  | ||	dz   |
|dz   f         j
                  }|j                  |       F ` t        j                  |      }t        j                  |t        j                  | ||            sJ y )Nr   r$   rV  rstridecstride)r   r  r   r   _array_perimeterr  r  r   r\  array_equal_array_patch_perimeters)r   r  r  rowscolsrow_indscol_indspolysrsrs_nextcscs_nextpss                r   checkz*test_array_patch_perimeters.<locals>.check  s   WW
d7U1d1fg.7Q77U1d1fg.7Q7x}hqrl; 	!KB"8CR=(12,? !G++AblBwqyL.H,IJLLR !	!
 

5!~~e#;;"#WgGH 	H Hr1   c                X    t        d| dz         D cg c]  }| |z  dk(  s| c}S c c}w )Nr$   r   )r  )nr=  s     r   divisorsz-test_array_patch_perimeters.<locals>.divisors*  s*     AE?9aa!eqj999s   ''))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: 1 7
dIIdTk"**46 ) 1 1(4!82D2:4!82D!F 	7GW!Wg6	77r1   c                     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                   k7  sJ j                  dk(  sJ j                  dk(  sJ j                  dk(  sJ 	 d d d         |       y # 1 sw Y   xY w)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y)test_setattr_cm.<locals>.Ac                .    d| _         d| _        d| _        y )Naardvarkoverridep)r  r  _pr   s    r   __init__z#test_setattr_cm.<locals>.A.__init__9  s    &DM&DMDGr1   c                     y rp   rJ   r   s    r   methztest_setattr_cm.<locals>.A.meth>  s    r1   c                     y rp   rJ   )clss    r   classyz!test_setattr_cm.<locals>.A.classyA      r1   c                      y rp   rJ   rJ   r1   r   staticz!test_setattr_cm.<locals>.A.staticE  r  r1   c                    | j                   S rp   r	  r   s    r   propztest_setattr_cm.<locals>.A.propI  s    77Nr1   c                    || _         y rp   r  )r   vals     r   r  ztest_setattr_cm.<locals>.A.propM  s	    DGr1   N)rG   rH   rI   rN  	cls_levelr  r
  r  classmethodr  staticmethodr  propertyr  setterrJ   r1   r   r  r  5  sn    H	8	
	 
	 
	 
	 
	 
	 
	 
	 
	r1   r  c                      e Zd Zy)test_setattr_cm.<locals>.BNr   rJ   r1   r   r  r  Q  s    r1   r  c                "   | j                   | j                   usJ | j                  | j                  u sJ j                  dk(  sJ | j                  | j                  u sJ | j                  j                  u sJ | j                  dk(  sJ t        | d      rJ | j                  dk(  sJ | j                  j                   k(  sJ | j                  j                  u sJ d| j                  vsJ d| j                  vsJ d| j                  vsJ y )Nr  r  extrar  r  r  r  )r  r  r  r  r  r   monkey__dict__)objr  r   r  s    r   verify_pre_post_statez.test_setattr_cm.<locals>.verify_pre_post_stateV  s    xxsxx'''||s||+++zzZ'''xx388###}}+++||z)))3(((xx3zzUZZ'''}}+++#,,...s||+++s||+++r1   squirrelmoosec                      y rp   rJ   rJ   r1   r   r   z!test_setattr_cm.<locals>.<lambda>r  r   r1   boor   c                      y rp   rJ   rJ   r1   r   r   z!test_setattr_cm.<locals>.<lambda>t  r   r1   bobr  r  )	r  r  r  r  r   r!  r  r  r  )r  r!  r   _setattr_cmr  r  r   r  r  r  r  )r  r$  r  r   r  s     @@@r   test_setattr_cmr,  4  sK    8A  CE,, 	
AzzAH!			J<'5H
. $ vvzzQZZ'''zzW$$$zzU"""ww'!!!vv###xx5::%%%{{e###xx8###xx8####$& !'$ $s   (CEE
c                 $   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J  J y )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_approxr1    s    AQ7c>>Q7c>>Q7c>>Wa=D   T1:_a I---q!Z///_a Aor$:JlJJJJJr1   c                     t        d      D  cg c]#  } t        j                         t        |       z   % }} d |d<   t	        j
                  |      }|||d   k(  sJ y c c} w )Nr  )daysr   r$   )r  r   todayr	   r   r  )r=  datetime_lstr<   s      r   !test_safe_first_element_with_noner6    sb    >CBiHDJJL9!#44HLHLO%%l3F&LO";;;"; Is   (Ac                 d    t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ y )Nz
1 \times 2z$1 \times 2$z1 x 2z	$\rm{hi}$hi)r   rJ   r1   r   test_strip_mathr9    s;    m$555o&'111l#t+++r1   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 y)z)Apply *value* to the format string *fmt*.N)r   _auto_format_strr   float64)fmtr   r1  s      r   test_auto_format_strrA    sC     !!#u-777!!#rzz%'89VCCCr1   )K
__future__r   r  r   typingr   unittest.mockr   r   r   r   r	   numpyr   numpy.testingr
   r   r   r   
matplotlibr   r   matplotlib.colorscolorsrC   matplotlib.cbookr   r   r   rL   r   r   r  r  r  r)  r   r   r2  r4  r>  r@  __annotations__rA  rG  rJ  rT  rg  rl  rp  rr  rw  ry  r   r  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r,  r1  r6  r9  rA  rJ   r1   r   <module>rL     s   "    % . . 6 6  " # =3 3D{@ {@|B$ B$JH&GB  
B  
* 
0
0
0
	+ 1#u671#Sz):;</+  
2rN1QQ',	1XQx/C#s+<=>40  .=6 >6 8%'I'I('(!
'(!
'(!
 
biimAq!3'biimSbiimYRYYq\"$%
$%
$
(&"	P+f////..+78Od	K<, - 	0 	D	Dr1   