
    m7h              	         U d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
 d dlmZmZmZ d dlZd dlmZmZmZ d dlZd dlmZmZ d dlmZ d dlmZmZ d d	lmZ  G d
 d      Z  G d d      Z! G d d      Z" G d d      Z# G d d      Z$d Z%d Z&e&d        Z'd Z(d Z)ejT                  jW                  dg d      d        Z,d Z-d Z.ddd d!d"d#giifddd d!d"d"d#giiffZ/d$e0d%<   di i fddd ddd i fd#did"did!d"d"d#giiffZ1d&e0d'<   ejT                  jW                  d(e/      d)        Z2ejT                  jW                  d*e1      d+        Z3d, Z4d- Z5d. Z6d/ Z7d0 Z8d1 Z9d2 Z:d3 Z;ejT                  jW                  d4 ejx                  d5      j{                  d6d7      d"f ejx                  d5      d"f ejx                  d5       ejx                  d6      fg      d8        Z>d9 Z?d: Z@d; ZAd< ZBd= ZCd> ZDd? ZEd@ ZFdA ZGdB ZHdC ZIdD ZJdE ZKdF ZLdG ZMdH ZNdI ZOejT                  jW                  dJg dK      dL        ZPdM ZQdN ZRdO ZSy)P    )annotationsN)Any)patchMock)datetimedate	timedelta)assert_array_equalassert_approx_equalassert_array_almost_equal)_apicbook)delete_masked_points
strip_math)
ModuleTypec                  $    e Zd Zd Zd Zd Zd Z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    ]C:\Users\ashis\OneDrive\Desktop\poolpix\venv\Lib\site-packages\matplotlib/tests/test_cbook.pytest_bad_first_argz,Test_delete_masked_points.test_bad_first_arg   s/    ]]:& RYYsC-@A '&&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actualr0   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&>&>&@Ar2   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(   r5   r6   )rgr    r!   myr8   r   )	r   r9   r+   r*   mcolorsto_rgba_arrayr   r
   r:   )r   r<   a_rgbar=   r0   s        r   	test_rgbaz#Test_delete_masked_points.test_rgba0   s    55;;1a;$L  N&&'EF%h76!9hsm&>&>&@A6!9fSk2r2   N)__name__
__module____qualname__r   r1   r>   rG    r2   r   r   r      s    B7	B3r2   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  %   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;   s   
		s

II''djj$**-E-0 ( >	  "
 
 !..tyy9 ''%%%hh    %#(**
&  &&&
" )*hh[9: 
 +)&
" +( 
r2   c                <    t        | j                  t              sJ y N)
isinstanceri   listr   s    r   test_form_main_listz&Test_boxplot_stats.test_form_main_listm   s    $**D111r2   c                J    | j                   D ]  }t        |t              rJ  y rq   )ri   rr   dictr   ress     r   test_form_each_dictz&Test_boxplot_stats.test_form_each_dictp   s"    ##Cc4((( $r2   c                l    | j                   D ]%  }t        |      t        | j                        k  r%J  y rq   )ri   setrg   rw   s     r   test_form_dict_keysz&Test_boxplot_stats.test_form_dict_keyst   s-    ##Cs8s4??3333 $r2   c                    | j                   d   }| j                  j                         D ]  \  }}t        ||   |        y )Nr   )ri   rj   itemsr   )r   rx   keyvalues       r   test_results_baselinez(Test_boxplot_stats.test_results_baselinex   s>    q!88>>@JC%c#h6 Ar2   c                    t        j                  | j                  d      }|d   }| j                  j	                         D ]  \  }}t        ||   |        y )Ni'  )	bootstrapr   )r   rh   re   rk   r~   r   r   resultsrx   r   r   s        r   test_results_bootstrappedz,Test_boxplot_stats.test_results_bootstrapped}   sL    %%dii5Aaj44::<JCC%0 =r2   c                    t        j                  | j                  d      }|d   }| j                  j	                         D ]  \  }}t        ||   |        y )Nr'   whisr   )r   rh   re   rl   r~   r   r   s        r   test_results_whiskers_floatz.Test_boxplot_stats.test_results_whiskers_float   sL    %%diia8aj..446JC%c#h6 7r2   c                    t        j                  | j                  ddg      }|d   }| j                  j	                         D ]  \  }}t        ||   |        y )Nr   d   r   )r   rh   re   rn   r~   r   r   s        r   test_results_whiskers_rangez.Test_boxplot_stats.test_results_whiskers_range   sP    %%diiq#h?aj..446JC%c#h6 7r2   c                    t        j                  | j                  ddg      }|d   }| j                  j	                         D ]  \  }}t        ||   |        y )Nr)   _   r   r   )r   rh   re   rm   r~   r   r   s        r   !test_results_whiskers_percentilesz4Test_boxplot_stats.test_results_whiskers_percentiles   sP    %%diiq"g>aj44::<JC%c#h6 =r2   c                    g d}t        j                  | j                  |      }t        ||      D ]  \  }}|d   |k(  rJ  t        j                  | j                        }|D ]  }d|vrJ  y )N)Test1r&   Aardvarkr4   labelsr]   )r   rh   re   zip)r   r   r   labrx   s        r   test_results_withlabelsz*Test_boxplot_stats.test_results_withlabels   sr    ,%%dii?FG,HCw<3&&& - %%dii0C#%%% r2   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   rh   re   )r   r   s     r   test_label_errorz#Test_boxplot_stats.test_label_error   s7    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   )rQ   )r   r`   normalr   r   r   r   rh   r   re   s     r   test_bad_dimsz Test_boxplot_stats.test_bad_dims   s?    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   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    HH3IIsArl#**1>))!t<Ax(A---Ax(A---!,q/(";c2Y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   :   sE    0
d2)47
1777&:
&
@r2   rM   c                      e Zd Zd Zy)Hashablec                     y rq   rK   r   s    r   dummyzHashable.dummy       Tr2   N)rH   rI   rJ   r   rK   r2   r   r   r      s    r2   r   c                      e Zd ZdZd Zy)
UnhashableNc                     y rq   rK   r   s    r   r   zUnhashable.dummy   r   r2   )rH   rI   rJ   __hash__r   rK   r2   r   r   r      s
    Hr2   r   c                  d   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      e
j                  j                  deeg      d               Ze
j                  j                  dd	d
g      e
j                  j                  deeg      d               Ze
j                  j                  dd	d
g      e
j                  j                  deeg      d               Ze
j                  j                  dd	d
g      e
j                  j                  deeg      d               Zd Zy)Test_callback_registryc                D    d| _         t        j                         | _        y )Ntest)signalr   CallbackRegistry	callbacksr   s    r   ro   z#Test_callback_registry.setup_method   s    //1r2   c                v    |r| j                   j                  ||      S | j                   j                  ||      S rq   )r   connect_connect_picklable)r   sfuncpickles       r   r   zTest_callback_registry.connect   s3    >>))!T22>>44Q==r2   c                8    | j                   j                  |      S rq   )r   
disconnect)r   cids     r   r   z!Test_callback_registry.disconnect   s    ~~((--r2   c                     t         fd j                  j                  D              }t         j                  j                  j	                   j
                              }||k(  sJ |S )Nc              3  B   K   | ]  \  }}|j                   k(    y wrq   r   ).0r   pr   s      r   	<genexpr>z/Test_callback_registry.count.<locals>.<genexpr>   s!     O2N$!QQ$++%2Ns   )sumr   _func_cid_maplengetr   )r   count1count2s   `  r   countzTest_callback_registry.count   sS    O$..2N2NOOT^^--11$++>?r2   c                    t         j                  j                          g | j                  j                  g k(  sJ | j                  j                  i k(  sJ | j                  j
                  t               k(  sJ y rq   )r   testingbreak_cyclesr   r   _pickled_cidsr{   r   s    r   is_emptyzTest_callback_registry.is_empty   sa    


!.--."444~~''2---~~++su444r2   c                    t         j                  j                          g | j                  j                  g k7  sJ | j                  j                  i k7  sJ y rq   )r   r   r   r   r   r   s    r   is_not_emptyz#Test_callback_registry.is_not_empty   sG    


!.--."444~~''2---r2   c                    t        j                         }|j                  dd        t        j                  t        j
                  |            }|j                  dd       }|dk(  sJ y )Nr   c                      y rq   rK   rK   r2   r   <lambda>z9Test_callback_registry.test_cid_restore.<locals>.<lambda>   s    r2   r!   c                      y rq   rK   rK   r2   r   r   z9Test_callback_registry.test_cid_restore.<locals>.<lambda>   s    tr2   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xr2   r   TFclsc                   | j                           |       }| j                  | j                  |j                  |      }t	        |      t
        u sJ | j                          | j                  | j                  |j                  |      }||k(  sJ | j                          t        g | j                  j                        dk(  sJ t        | j                  j                        dk(  sJ ~| j                          y )Nr%   )
r   r   r   r   typeintr   r   r   r   )r   r   r   mini_mecid1cid2s         r   test_callback_completez-Test_callback_registry.test_callback_complete   s     	 % ||DKK?DzS    ||DKK?t||2T^^1123q8884>>++,111 	r2   c                   | j                           |       }| j                  | j                  |j                  |      }t	        |      t
        u sJ | j                          | j                  |       | j                          y 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  sg     	 % ||DKK?DzS    	r2   c                   | j                           |       }| 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  sj     	 % ||DKK?DzS    	r2   c                   | j                           |       }| j                  | j                  |j                  |        |       }| j                  | j                  |j                  |        |       }| 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 5T[[(..&9 5T[[(..&9 	zz|q    r2   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_picklingB  s4    v||FLL1G1G1I$JK"$ 	$ $r2   N)rH   rI   rJ   ro   r   r   r   r   r   r   r   markparametrizer   r   r   r   r   r   r   rK   r2   r   r   r      sF   2>.5.
 [[Xe}5[[UXz$:; < 60 [[Xe}5[[UXz$:; < 6" [[Xe}5[[UXz$:; < 6" [[Xe}5[[UXz$:; < 62$r2   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 rq   rK   rK   r2   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>I  s    dr2   "_get_running_interactive_frameworkc                      y rq   rK   rK   r2   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>L      Tr2   zargument mismatch c                      y)Nznot-nonerK   rK   r2   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>S  s    Zr2   z,takes 0 positional arguments but 1 was given)r   r   r   setattrr   r   	TypeErrorprocess
readouterrouterr)capsysmonkeypatchr   outerrs       r   /test_callbackregistry_default_exception_handlerr	  G  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rH   rI   rJ   rK   r2   r   TestExceptionr  [      r2   r  c                     t         rq   )RuntimeErrorrK   r2   r   raise_runtime_errorz+raising_cb_reg.<locals>.raise_runtime_error^  s    r2   c                     t         rq   r   rK   r2   r   raise_value_errorz)raising_cb_reg.<locals>.raise_value_errora  s    r2   c                ,    t        | t              r| rq   )rr   r  )excpr  s    r   transformerz#raising_cb_reg.<locals>.transformerd  s    dL)
r2   exception_handlerr   zcb, excp)		Exceptionr   r   r   r   r   r   r  r   )r   r  r  r  cb_oldcb_filtcb_filt_passr  s          @r   raising_cb_regr  Z  s    	  ##d;F
NN5-. $${CGOOE./ ))KHL 12;;"":%+\$:%,m$<%1:$>$@A BFG Gr2   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 rq   rK   rK   r2   r   r   z@test_callbackregistry_custom_exception_handler.<locals>.<lambda>~  r   r2   r   )r   r   r   r   r  )r  r   r  s      r   .test_callbackregistry_custom_exception_handlerr"  {  s=    3\C	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 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)    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                    | rq   rK   )r  s    r   raise_handlerz5test_callbackregistry_blocking.<locals>.raise_handler  s    
r2   r  c                     t        d      )N1 should be blockedr  rK   r2   r   
test_func1z2test_callbackregistry_blocking.<locals>.test_func1      .//r2   c                     t        d      )N2 should be blockedr  rK   r2   r   
test_func2z2test_callbackregistry_blocking.<locals>.test_func2  r0  r2   test1test2r   r2  matchr.  )r   r   r   blockedr  r   r   r   )r,  r   r/  r3  s       r   test_callbackregistry_blockingr9    s   			-	@B00JJw
#JJw
# 



7


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


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


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


7 
@	? 
 DC	 
$	# 
@	?	?	?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_commentrB    s     %///r2   c                     t        j                  t        d      5  t        j                  d       d d d        y # 1 sw Y   y xY w)NzMissing closing quoter6  zgrid.color: "aa)r   r   r   r   r?  rK   r2   r   test_strip_comment_invalidrD    s-    	z)@	A./ 
B	A	As	   ;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'   )rf   r   sanitize_sequencekeysvaluesr~   )r"   kvis       r   test_sanitize_sequencerN    s    aa AAA&Au..qvvx89999u..qxxz:;;;;u..qwwy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        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wrq   )r   r   r  r   'suppress_matplotlib_deprecation_warningr   normalize_kwargs)inpkwargs_to_norms     r   test_normalize_kwargs_failrW    sF    	y	!4#O#O#Qs5n5 $R	!	!#Q#Q	!	!s"   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rq   )r   rS  r   rT  )rU  expectedrV  s      r   test_normalize_kwargs_passrZ    s:     
	5	5	7511#HHHHH 
8	7	7s	   ;Ac                l   t        j                  d       t        |       dk(  sJ t        j                  d d dk\  rat        j                  t              j                  d   }| d   j                  j                  t        |dz        t        |dz        f      rJ y | d   j                  t        k(  sJ y )Noopsr%   r&   )r'      r   
matplotlibmpl_toolkits)r   warn_externalr   sysversion_infopathlibPath__file__parentsfilename
startswithstr)recwarnbasedirs     r   test_warn_externalrl    s    vw<1
w& ,,x(0031:&&113w7M3N36w7O3P3R S 	S S S
 qz""h...r2   c                    t        j                  t        d      5 } t        d       | _        t        j                  t        d      5  t        j                  d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nra  )return_valuez	\Adummy\Zr6  r   )
r   objectr   r   	_getframer   warnsUserWarningr   r`  )mock_syss    r   (test_warn_external_frame_embedded_pythonrt    sX    	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 )Nr4   r   r   r%   r%   r&   r&   r'   dtyper   r%   r%   r&   r&   r'   r'   )r'   r&   r&   r%   r%   r   r   )r   r   r   pts_to_prestepasarrayfloatr
   	r   y1y2xsy1sy2sx_target	y1_target	y2_targets	            r   test_to_prestepr    s    
		!A	1B	1dd	B''2r2LBSzz/u=H

0>I

0>Ix$y#&y#&""1b)GBx$y#&r2   c                 R    t        j                  g g       } | j                  dk(  sJ y N)r&   r   )r   r{  r   stepss    r   test_to_prestep_emptyr    &      R(E;;&   r2   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 )Nr4   rv  rz  rx  rw  )r'   r'   r&   r&   r%   r%   r   )r   r   r   pts_to_poststepr|  r}  r
   r~  s	            r   test_to_poststepr    s    
		!A	1B	1dd	B((B3LBSzz/u=H

0>I

0>Ix$y#&y#&##Ar*GBx$y#&r2   c                 R    t        j                  g g       } | j                  dk(  sJ y r  )r   r  r   r  s    r   test_to_poststep_emptyr  0  s&    !!"b)E;;&   r2   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 )Nr4   rv  )r         ?r  rP   rP         @r  r'   rx  )r   r   r%   r%   r&   r&   r'   r'   )r'   r'   r&   r&   r%   r%   r   r   )r   r   r   pts_to_midstepr|  r}  r
   r~  s	            r   test_to_midstepr  5  s    
		!A	1B	1dd	B''2r2LBSzz<EJH

35AI

35AIx$y#&y#&""1b)GBx$y#&r2   c                 R    t        j                  g g       } | j                  dk(  sJ y r  )r   r  r   r  s    r   test_to_midstep_emptyr  I  r  r2   argsr]  r'   r4   c                    t        j                  t              5  t        j                  |   d d d        y # 1 sw Y   y xY wrq   )r   r   r   r   r{  )r  s    r   test_step_failsr  N  s*     
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  rK   r2   r   Dummyr  Y  r  r2   r  r)   r   r%   )ranger   Grouperjoinr{   rs   get_siblingsjoinedremove	itertoolsproduct)r  _r   r    r!   r"   r#   objsrA   otherABs               r   test_grouperr  X  s     -21X6XEGX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~~ 6 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  rK   r2   r   r  r  m  r  r2   r  r)   r   r%   )r  r   r  r  _mapping)r  r  r  rA   mappingobase_sets          r   test_grouper_privater  l  s     "1X&XEGXD&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  }  ss    
		!A	
BR==R==

"
"2
&C!8O8R==R==r2   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    6    
''!RVV
C

"
"3
'C88C==r2   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    r  r2   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  rK   r2   r   r  r    r  r2   r  r   )r%   r   r)   )r%   r)   r'   )r'   r)   )r)   r'   r%   r&   r   )r%   )r'   rG  r4   )r&   c                  (     e Zd Z fdZ fdZ xZS )%test_reshape2d.<locals>.ArraySubclassc              3  b   K   t         |          D ]  }t        j                  |        y wrq   )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 rq   )r   r+   r  __getitem__)r   itemr  s     r   r  z1test_reshape2d.<locals>.ArraySubclass.__getitem__  s    88EG/566r2   )rH   rI   rJ   r  r  __classcell__)r  s   @r   ArraySubclassr    s    	&	7 	7r2   r  
   rx  )r  )ry  buffer)	r   r    r!   r!   ddr#   r$   ffr$   )r   _reshape_2Dr   r   r  r   r`   randrr   rs   ndarrayr+   r   r}  re   )r  xnewr  r   r  rL  s         r   test_reshape2dr    s     R%D88D>V###(#(Q(A#Q$D88D>V###
		!AQ$D88D>V###.3Ah7h58	$8a%'8	$hA7Q$D88D>V### 			q!AQ$D88D>V### qcA3AQ$DdD!!!d1grzz*tAw}}/DDDd1grzz*tAw}}/DDDd1grzz*tAw}}/DDD 
!bhhqk288A;/AQ$DdD!!!t9>>d1grzz*tAw}}/DDD 
QFQC AQ$DdD!!!d1grzz*tAw}}/DDDd1grzz*tAw}}/DDDd1grzz*tAw}}/DDD7

 7 			"E"Ae58AQ$D t9>>d1g}--- 	8AQ$DtAw<3q6!!!d1grzz***Q 	$ 
%7s   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'   rF  columnsr   )
r   r   reshape	DataFramer   r  r   Tr   r
   )pdXr   Xnewr  s        r   test_reshape2d_pandasr    sl    
		"b!$A
Q0AQ$DqssD>4


%%a. "r2   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   rC   )dims)
r   r   r  	DataArrayr   r  r   r  r   r
   )xrr  r   r  r  s        r   test_reshape2d_xarrayr    sp    
		"b!$A
Qc3Z(AQ$DqssD>4


%%a. "r2   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'   rF  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.r2   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.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 y )N)r'   r4   r)   TFr   )r(      r)   )r   contiguous_regions)r   r    r!   r7   rY  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---r2   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;;r2   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        j                  |      D ]a  \  }}	t        j                  |      D ]D  \  }
}t	        j
                  | ||	dz   |
|dz   f         j                  }|j                  |       F c t        j                  |      }t        j                  |t	        j                  | ||            sJ y )Nr   r%   rstridecstride)r   r  r  pairwiser   _array_perimeterr  r&  r   r|  array_equal_array_patch_perimeters)r   r  r  rowscolsrow_indscol_indspolysrsrs_nextcscs_nextpss                r   checkz*test_array_patch_perimeters.<locals>.check1  s   WW
d7U1d1fg.7Q77U1d1fg.7Q7$--h7KB(11(;G++AblBwqyL.H,IJLLR   < 8
 

5!~~e#;;"#WgGH 	H Hr2   c                X    t        d| dz         D cg c]  }| |z  dk(  s| c}S c c}w )Nr%   r   )r  )nrM  s     r   divisorsz-test_array_patch_perimeters.<locals>.divisors@  s.     AE?9?aa!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
dIIdTk"**46 ) 1 1(4!82D2:4!82D!FGW!Wg6!F 1r2   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overrider   )r   r!  _pr   s    r   __init__z#test_setattr_cm.<locals>.A.__init__O  s    &DM&DMDGr2   c                     y rq   rK   r   s    r   methztest_setattr_cm.<locals>.A.methT  s    r2   c                     y rq   rK   )r   s    r   classyz!test_setattr_cm.<locals>.A.classyW      r2   c                      y rq   rK   rK   r2   r   staticz!test_setattr_cm.<locals>.A.static[  r(  r2   c                    | j                   S rq   r"  r   s    r   propztest_setattr_cm.<locals>.A.prop_  s    77Nr2   c                    || _         y rq   r,  )r   vals     r   r-  ztest_setattr_cm.<locals>.A.propc  s	    DGr2   N)rH   rI   rJ   ro  	cls_levelr!  r#  r%  classmethodr'  staticmethodr*  propertyr-  setterrK   r2   r   r  r  K  sn    H	8	
	 
	 
	 
	 
	 
	 
	 
	 
	r2   r  c                      e Zd Zy)test_setattr_cm.<locals>.BNr  rK   r2   r   r  r6  g  s    r2   r  c                "   | j                   | j                   usJ | j                  | j                  u sJ j                  dk(  sJ | j                  | j                  u sJ | j                  j                  u sJ | j                  dk(  sJ t        | d      rJ | j                  dk(  sJ | j                  j                   k(  sJ | j                  j                  u sJ d| j                  vsJ d| j                  vsJ d| j                  vsJ y )Nr   r!  extrar   r0  r'  r*  )r%  r   r-  r0  r!  r   monkey__dict__)objr  r   r  s    r   verify_pre_post_statez.test_setattr_cm.<locals>.verify_pre_post_statel  s    xxsxx'''||s||+++zzZ'''xx388###}}+++||z)))3(((xx3zzUZZ'''}}+++#,,...s||+++s||+++r2   squirrelmoosec                      y rq   rK   rK   r2   r   r   z!test_setattr_cm.<locals>.<lambda>  s    4r2   boor8  c                      y rq   rK   rK   r2   r   r   z!test_setattr_cm.<locals>.<lambda>  s    4r2   bobr'  r*  )	r-  r   r%  r!  r8  r9  r0  r'  r*  )r%  r9  r   _setattr_cmr   r!  r8  r-  r0  r'  r*  )r  r<  r  r   r  s     @@@r   test_setattr_cmrD  J  sF    8A  CE,, 	
AzzAH!			J<'5H
. vvzzQZZ'''zzW$$$zzU"""ww'!!!vv###xx5::%%%{{e###xx8###xx8####
.& !'
. 
.s   (CEE
c                 $   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_approxrI    s    AQ7c>>Q7c>>Q7c>>Wa=D   T1:_a I---q!Z///_a Aor$:JlJJJJJr2   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  )rM  datetime_lstr=   s      r   !test_safe_first_element_with_nonerN    sc    >CBiHiDJJL9!#44iL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   rK   r2   r   test_strip_mathrQ    s;    m$555o&'111l#t+++r2   zfmt, value, result))z%.2f m皙?0.20 m)z{:.2f} mrR  rS  )z{} mrR  z0.2 m)constrR  rT  )z%d or {}rR  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   rA  s      r   test_auto_format_strrY    sC     !!#u-777!!#rzz%'89VCCCr2   c                      G d d      } t        d      }| |_        |t        j                  d<   t	        j
                  d      }|j                  |      }t        j                  |      }t        ||       y)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y)/test_unpack_to_numpy_from_torch.<locals>.Tensorc                    || _         y rq   re   r   s     r   r#  z8test_unpack_to_numpy_from_torch.<locals>.Tensor.__init__  	    DIr2   c                    | j                   S rq   r^  r   s    r   	__array__z9test_unpack_to_numpy_from_torch.<locals>.Tensor.__array__      99r2   NrH   rI   rJ   r#  ra  rK   r2   r   Tensorr\        		r2   rd  torchr  N)	r   rd  ra  modulesr   r   r   _unpack_to_numpyr
   )rd  rf  re   torch_tensorrA  s        r   test_unpack_to_numpy_from_torchrj    sd      wEEL CKK99R=D<<%L##L1F vt$r2   c                      G d d      } t        d      }| |_        |t        j                  d<   t	        j
                  d      }|j                  |      }t        j                  |      }t        ||       y)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y),test_unpack_to_numpy_from_jax.<locals>.Arrayc                    || _         y rq   r^  r   s     r   r#  z5test_unpack_to_numpy_from_jax.<locals>.Array.__init__  r_  r2   c                    | j                   S rq   r^  r   s    r   ra  z6test_unpack_to_numpy_from_jax.<locals>.Array.__array__  rb  r2   Nrc  rK   r2   r   Arrayrm    re  r2   rp  jaxr  N)	r   rp  ra  rg  r   r   r   rh  r
   )rp  rq  re   	jax_arrayrA  s        r   test_unpack_to_numpy_from_jaxrs    sc      U
CCICKK99R=D		$I##I.F vt$r2   c                     G d d      t        d      } fd| _        | _        | t        j                  d<   t        j                  d      }| j                  |      }t        j                  |      }t        ||       y)z
    Test that tensorflow arrays are converted to NumPy arrays.

    We don't want to create a dependency on tensorflow in the test suite, so we mock it.
    c                      e Zd Zd Zd Zy)4test_unpack_to_numpy_from_tensorflow.<locals>.Tensorc                    || _         y rq   r^  r   s     r   r#  z=test_unpack_to_numpy_from_tensorflow.<locals>.Tensor.__init__  r_  r2   c                    | j                   S rq   r^  r   s    r   ra  z>test_unpack_to_numpy_from_tensorflow.<locals>.Tensor.__array__  rb  r2   Nrc  rK   r2   r   rd  rv    re  r2   rd  
tensorflowc                    t        |       S rq   )rr   )r   rd  s    r   r   z6test_unpack_to_numpy_from_tensorflow.<locals>.<lambda>
  s    Z6%:r2   r  N)
r   	is_tensorrd  ra  rg  r   r   r   rh  r
   )ry  re   	tf_tensorrA  rd  s       @r   $test_unpack_to_numpy_from_tensorflowr}    sp      L)J:JJ *CKK99R=D!!$'I##I.F vt$r2   )T
__future__r   r  rc  r   ra  typingr   unittest.mockr   r   r   r   r	   numpyr   numpy.testingr
   r   r   r   r^  r   r   matplotlib.colorscolorsrD   matplotlib.cbookr   r   typesr   r   rM   r   r   r   r	  r  r"  r)  r9  r   r   rB  rD  rN  rP  __annotations__rQ  rW  rZ  rl  rt  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  rD  rI  rN  rQ  rY  rj  rs  r}  rK   r2   r   <module>r     s   "    
  % . . 6 6  " # = 3 3D{@ {@|  
C$ C$LH&GB  
B  
* 
0
0
0
	+ 1#u671#Sz):;</+  
2rN1QQ',	1XQx/C#s+<=>40  .=6 >6
 8%'I'I/ ('(!
'(!
'(!
 
biimAq!3'biimSbiimYRYYq\"$%
$%
$
(&"	P+f////..78Od	K<, - 	0 	D	D%6%8%r2   