
    g              	         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    X/var/www/dash_apps/app1/venv/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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   s2    ## 	4Cs8s4??3333	4r2   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   sB    q!88>>@ 	7JC%c#h6	7r2   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}   sQ    %%dii5Aaj44::< 	1JCC%0	1r2   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   sQ    %%diia8aj..446 	7JC%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   sU    %%diiq#h?aj..446 	7JC%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   sU    %%diiq"g>aj44::< 	7JC%c#h6	7r2   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   s|    ,%%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   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   )rQ   )r   r`   normalr   r   r   r   rh   r   re   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   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       r2   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     O$!QQ$++%Os   )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>   r   r2   r!   c                      y rq   rK   rK   r2   r   r   z9Test_callback_registry.test_cid_restore.<locals>.<lambda>   r   r2   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  r   r2   "_get_running_interactive_frameworkc                      y rq   rK   rK   r2   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>L  r   r2   zargument mismatch c                      y)Nznot-nonerK   rK   r2   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>S  r   r2   z,takes 0 positional arguments but 1 was given)r   r   r   setattrr   r   	TypeErrorprocess
readouterrouterr)capsysmonkeypatchr   outerrs       r   /test_callbackregistry_default_exception_handlerr  G  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!  {  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 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  r/  r2   test1test2r   r1  matchr-  )r   r   r   blockedr  r   r   r   )r+  r   r.  r2  s       r   test_callbackregistry_blockingr8    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_commentr9  )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_commentrA    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 quoter5  zgrid.color: "aa)r   r   r   r   r>  rK   r2   r   test_strip_comment_invalidrC    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'   )rf   r   sanitize_sequencekeysvaluesr~   )r"   kvis       r   test_sanitize_sequencerM    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_failrV    sV    	y	! 64#O#O#Q 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rq   )r   rR  r   rS  )rT  expectedrU  s      r   test_normalize_kwargs_passrY    sG     
	5	5	7 I511#HHHHHI I Is	   ;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_externalrk    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)Nr`  )return_valuez	\Adummy\Zr5  r   )
r   objectr   r   	_getframer   warnsUserWarningr   r_  )mock_syss    r   (test_warn_external_frame_embedded_pythonrs    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 )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   rz  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   ru  ry  rw  rv  )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   ru  )r         ?r  rP   rP         @r  r'   rw  )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   rz  )r  s    r   test_step_failsr  N  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  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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  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&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  }  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'   rF  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  
   rw  )r  )rx  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  rK  s         r   test_reshape2dr    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'   rE  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./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    su    
		"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'   rE  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   rX  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7 	!KB(11(; !G++AblBwqyL.H,IJLLR !	!
 

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  )nrL  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7r2   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   rn  	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  r5  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   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_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>  r   r2   boor7  c                      y rq   rK   rK   r2   r   r   z!test_setattr_cm.<locals>.<lambda>  r   r2   bobr&  r)  )	r,  r  r$  r   r7  r8  r/  r&  r)  )r$  r8  r   _setattr_cmr  r   r7  r,  r/  r&  r)  )r  r;  r  r   r  s     @@@r   test_setattr_cmrC  J  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_approxrH    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  )rL  datetime_lstr=   s      r   !test_safe_first_element_with_nonerM    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   rK   r2   r   test_strip_mathrP    s;    m$555o&'111l#t+++r2   zfmt, value, result))z%.2f m皙?0.20 m)z{:.2f} mrQ  rR  )z{} mrQ  z0.2 m)constrQ  rS  )z%d or {}rQ  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   r@  s      r   test_auto_format_strrX    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"  r`  rK   r2   r   Tensorr[        		r2   rc  torchr  N)	r   rc  r`  modulesr   r   r   _unpack_to_numpyr
   )rc  re  re   torch_tensorr@  s        r   test_unpack_to_numpy_from_torchri    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   r`  z6test_unpack_to_numpy_from_jax.<locals>.Array.__array__  ra  r2   Nrb  rK   r2   r   Arrayrl    rd  r2   ro  jaxr  N)	r   ro  r`  rf  r   r   r   rg  r
   )ro  rp  re   	jax_arrayr@  s        r   test_unpack_to_numpy_from_jaxrr    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   r`  z>test_unpack_to_numpy_from_tensorflow.<locals>.Tensor.__array__  ra  r2   Nrb  rK   r2   r   rc  ru    rd  r2   rc  
tensorflowc                    t        |       S rq   )rr   )r   rc  s    r   r   z6test_unpack_to_numpy_from_tensorflow.<locals>.<lambda>
  s    Z6%: r2   r  N)
r   	is_tensorrc  r`  rf  r   r   r   rg  r
   )rx  re   	tf_tensorr@  rc  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  rb  r   r`  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(  r8  r   r   rA  rC  rM  rO  __annotations__rP  rV  rY  rk  rs  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rC  rH  rM  rP  rX  ri  rr  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   