
    G8c q              	          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  G d d	      Z G d
 d      Z G d d      Zd Zd Zed        Zd Zd Z ejB                  jE                  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i i fddddddi fddiddiddddgiiffZ'ejB                  jE                  de&      d        Z(ejB                  jE                  d e'      d!        Z)d" Z*d# Z+d$ Z,d% Z-d& Z.d' Z/d( Z0ejB                  jE                  d) ejb                  d*      je                  d+d,      df ejb                  d*      df ejb                  d*       ejb                  d+      fg      d-        Z3d. Z4d/ Z5d0 Z6d1 Z7d2 Z8d3 Z9d4 Z:d5 Z;d6 Z<d7 Z=d8 Z>d9 Z?d: Z@d; ZAd< ZBy)=    N)ref)patchMock)datetimedate	timedelta)assert_array_equalassert_approx_equalassert_array_almost_equal)_apicbook)delete_masked_pointsc                   $    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    =/usr/lib/python3/dist-packages/matplotlib/tests/test_cbook.pytest_bad_first_argz,Test_delete_masked_points.test_bad_first_arg   s<    ]]:& 	B RYYsC-@A	B 	B 	Bs   !AAc                    g d}dddt         j                  t         j                  dg}t        ||      \  }}g d}t        |t        j                  |      |          t        |t        j                  |      |          y )N)abcdef            )r   r"   r#      )r   nanr   r	   array)r   a1a2result1result2inds         r   test_string_seqz)Test_delete_masked_points.test_string_seq   se    +Arvvrvvq)/B77BHHRL$567BHHRL$56    c           
         t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      g}t        j                  j                  dddt        j                  t        j                  dgg d	      }t        ||      }g d
}t        |d   t        j                  |      |          t        |d   ||   j                                y )Ni  r"   r#   r$      r&   r%   FFTTFFmaskr   r"   r&   r   )r   r   mar(   r'   r   r	   
compressed)r   datesa_maskedactualr-   s        r   test_datetimez'Test_delete_masked_points.test_datetime    s    $1%xa';$1%xa';$1%xa';= 55;;1a;$L  N%eX66!9bhhuoc&:;6!9hsm&>&>&@Ar/   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%   r2   r3   )rgr   r   myr5   r   )	r   r6   r(   r'   mcolorsto_rgba_arrayr   r	   r7   )r   r9   a_rgbar:   r-   s        r   	test_rgbaz#Test_delete_masked_points.test_rgba+   s    55;;1a;$L  N&&'EF%h76!9hsm&>&>&@A6!9fSk2r/   N)__name__
__module____qualname__r   r.   r;   rD    r/   r   r   r      s    B7	B3r/   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  %   r1         ?g      ?)sizemeansigma)rO   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ޓ?)
rV   rU   rT   rO   rQ   rY   rR   rS   rX   rW   gN!@g?)rV   rU   g =ɳE@r[   r\   )rX   rW   rY   geLM?)rW   rX   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_method6   s   
		s

II''djj$**-E-0 ( >	  "
 
 !..tyy9 ''%%%hh    %#(**
&  &&&
" )*hh[9: 
 +)&
" +( 
r/   c                 <    t        | j                  t              sJ y N)
isinstancerf   listr   s    r   test_form_main_listz&Test_boxplot_stats.test_form_main_listh   s    $**D111r/   c                 J    | j                   D ]  }t        |t              rJ  y rn   )rf   ro   dictr   ress     r   test_form_each_dictz&Test_boxplot_stats.test_form_each_dictk   s'    ## 	)Cc4(((	)r/   c                 l    | j                   D ]%  }t        |      t        | j                        k  r%J  y rn   )rf   setrd   rt   s     r   test_form_dict_keysz&Test_boxplot_stats.test_form_dict_keyso   s2    ## 	4Cs8s4??3333	4r/   c                     | j                   d   }| j                  j                         D ]  \  }}t        ||   |        y )Nr   )rf   rg   itemsr   )r   ru   keyvalues       r   test_results_baselinez(Test_boxplot_stats.test_results_baselines   sB    q!88>>@ 	7JC%c#h6	7r/   c                     t        j                  | j                  d      }|d   }| j                  j	                         D ]  \  }}t        ||   |        y )Ni'  )	bootstrapr   )r   re   rb   rh   r{   r
   r   resultsru   r|   r}   s        r   test_results_bootstrappedz,Test_boxplot_stats.test_results_bootstrappedx   sQ    %%dii5Aaj44::< 	1JCC%0	1r/   c                     t        j                  | j                  d      }|d   }| j                  j	                         D ]  \  }}t        ||   |        y )Nr$   whisr   )r   re   rb   ri   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	7r/   c                     t        j                  | j                  ddg      }|d   }| j                  j	                         D ]  \  }}t        ||   |        y )Nr   d   r   )r   re   rb   rk   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	7r/   c                     t        j                  | j                  ddg      }|d   }| j                  j	                         D ]  \  }}t        ||   |        y )Nr&   _   r   r   )r   re   rb   rj   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	7r/   c                     g d}t        j                  | j                  |      }t        ||      D ]  \  }}|d   |k(  rJ  t        j                  | j                        }|D ]  }d|vrJ  y )N)Test1r#   Aardvarkr1   labelsrZ   )r   re   rb   zip)r   r   r   labru   s        r   test_results_withlabelsz*Test_boxplot_stats.test_results_withlabels   s|    ,%%dii?FG, 	'HCw<3&&&	' %%dii0 	&C#%%%	&r/   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   re   rb   )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   )rN   )r   r]   normalr   r   r   r   re   )r   rb   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   rW   rX   rY   )r   zeroshstackr   re   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?r/   N)rE   rF   rG   rl   rq   rv   ry   r~   r   r   r   r   r   r   r   r   rH   r/   r   rJ   rJ   5   sE    0
d2)47
1777&:
&
@r/   rJ   c                   \   e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  ddd	g      d
        Ze	j                  j                  ddd	g      d        Ze	j                  j                  ddd	g      d        Ze	j                  j                  ddd	g      d        Zd Zd Zy)Test_callback_registryc                 D    d| _         t        j                         | _        y )Ntest)signalr   CallbackRegistry	callbacksr   s    r   rl   z#Test_callback_registry.setup_method   s    //1r/   c                 v    |r| j                   j                  ||      S | j                   j                  ||      S rn   )r   connect_connect_picklable)r   sfuncpickles       r   r   zTest_callback_registry.connect   s3    >>))!T22>>44Q==r/   c                 8    | j                   j                  |      S rn   )r   
disconnect)r   cids     r   r   z!Test_callback_registry.disconnect   s    ~~((--r/   c                     t        | j                  j                  j                  | j                  g             }t        | j                  j                  j                  | j                              }||k(  sJ |S rn   )lenr   _func_cid_mapgetr   )r   count1count2s      r   countzTest_callback_registry.count   s]    T^^1155dkk2FGT^^--11$++>?r/   c                     t         j                  j                          | j                  j                  i k(  sJ | j                  j                  i k(  sJ | j                  j
                  t               k(  sJ y rn   )r   testingbreak_cyclesr   r   _pickled_cidsrx   r   s    r   is_emptyzTest_callback_registry.is_empty   s\    


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


!~~++r111~~''2---r/   r   TFc                    | j                          t               }| j                  | j                  |j                  |      }t        |      t        k(  sJ | j                          | j                  | j                  |j                  |      }||k(  sJ | j                          t        | j                  j                        dk(  sJ t        | j                  j                        dk(  sJ ~| j                          y )Nr"   )r   r   r   r   dummytypeintr   r   r   r   )r   r   mini_mecid1cid2s        r   test_callback_completez-Test_callback_registry.test_callback_complete   s     	 )* ||DKK?DzS    ||DKK?t||4>>//0A5554>>++,111 	r/   c                    | j                          t               }| j                  | j                  |j                  |      }t        |      t        k(  sJ | j                          | j                  |       | j                          y rn   	r   r   r   r   r   r   r   r   r   r   r   r   r   s       r   test_callback_disconnectz/Test_callback_registry.test_callback_disconnect   sh     	 )* ||DKK?DzS    	r/   c                    | j                          t               }| j                  | j                  |j                  |      }t        |      t        k(  sJ | j                          | j                  d       | j                          y )Nfoor   r   s       r   test_callback_wrong_disconnectz5Test_callback_registry.test_callback_wrong_disconnect   sk     	 )* ||DKK?DzS    	r/   c                    | j                          t               }| j                  | j                  |j                  |       t               }| j                  | j                  |j                  |       t               }| j                  | j                  |j                  |       | j                          | j                         dk(  sJ d }d }| j                          y )Nr#   )r   r   r   r   r   r   r   )r   r   r   mini_me2s       r   'test_registration_on_non_empty_registryz>Test_callback_registry.test_registration_on_non_empty_registry  s     	 )*T[['--8 *+T[[(..&9 *+T[[(..&9 	zz|q    r/   c                      y rn   rH   r   s    r   r   zTest_callback_registry.dummy)  s    r/   c                     t        t        j                  t        j                  t	        j
                                     d      sJ y )Nr   )hasattrr   loadsdumpsr   r   r   s    r   test_picklingz$Test_callback_registry.test_pickling,  s4    v||FLL1G1G1I$JK"$ 	$ $r/   N)rE   rF   rG   rl   r   r   r   r   r   r   markparametrizer   r   r   r   r   r   rH   r/   r   r   r      s    2>.5.
 [[Xe}5 60 [[Xe}5 6" [[Xe}5 6" [[Xe}5 62$r/   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 rn   rH   rH   r/   r   <lambda>zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>3      r/   "_get_running_interactive_frameworkc                       y rn   rH   rH   r/   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>6  r   r/   zargument mismatch c                       y)Nznot-nonerH   rH   r/   r   r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>=  r   r/   z,takes 0 positional arguments but 1 was given)r   r   r   setattrr   r   	TypeErrorprocess
readouterrouterr)capsysmonkeypatchcbouterrs       r   /test_callbackregistry_default_exception_handlerr   1  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rE   rF   rG   rH   r/   r   TestExceptionr   E      r/   r   c                      t         rn   )RuntimeErrorrH   r/   r   raise_runtime_errorz+raising_cb_reg.<locals>.raise_runtime_errorH  s    r/   c                      t         rn   r   rH   r/   r   raise_value_errorz)raising_cb_reg.<locals>.raise_value_errorK  s    r/   c                 ,    t        | t              r| rn   )ro   r   )excpr   s    r   transformerz#raising_cb_reg.<locals>.transformerN  s    dL)
r/   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  D  s    	  ##d;F
NN5-. $${CGOOE./ ))KHL 12;;"":%+\$:%,m$<%1:$>$@A BFG Gr/   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 rn   rH   rH   r/   r   r   z@test_callbackregistry_custom_exception_handler.<locals>.<lambda>h  r   r/   r   )r   r   r   r   r   )r   r   r   s      r   .test_callbackregistry_custom_exception_handlerr
  e  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 rn   )append)r   r   s    r   r   z)test_callbackregistry_signals.<locals>.cbp  s    w~~a r/   barr"   )r   r   r   r   r   r   r   )crr   r   s     @r   test_callbackregistry_signalsr  m  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                     | rn   rH   )r   s    r   raise_handlerz5test_callbackregistry_blocking.<locals>.raise_handler}  s    
r/   r  c                      t        d      )N1 should be blockedr   rH   r/   r   
test_func1z2test_callbackregistry_blocking.<locals>.test_func1      .//r/   c                      t        d      )N2 should be blockedr   rH   r/   r   
test_func2z2test_callbackregistry_blocking.<locals>.test_func2  r  r/   test1test2)r   r  matchr  )r   r   r   blockedr   r   r   r   )r  r   r  r  s       r   test_callbackregistry_blockingr!  z  s=   			-	@B00JJw
#JJw
# 
 


7


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


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


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


7  	  	 	     sH   #E-E#>EE#;E/0E;EE 	E##E,/E8;Fzline, result)	)a : no_commentr"  )a : "quoted str"r#  )za : "quoted str" # commentr#  )a : "#000000"r$  )za : "#000000" # commentr$  )a : ["#000000", "#FFFFFF"]r%  )z$a : ["#000000", "#FFFFFF"] # commentr%  )z"a : val  # a comment "with quotes"za : val)z# only comment "with quotes" xxr   c                 8    t        j                  |       |k(  sJ y)z+Strip everything from the first unquoted #.N)r   _strip_comment)lineresults     r   test_strip_commentr*    s     %///r/   c                      t        j                  t        d      5  t        j                  d       d d d        y # 1 sw Y   y xY w)NzMissing closing quoter  zgrid.color: "aa)r   r   r   r   r'  rH   r/   r   test_strip_comment_invalidr,    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$   )rc   r   sanitize_sequencekeysvaluesr{   )r   kvis       r   test_sanitize_sequencer6    s    aa AAA&Au..qvvx89999u..qxxz:;;;;u..qwwy9::::''****''****r/   r"   r#   )r   r   alias_mappingr   r   z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rn   )r   r   r   r   'suppress_matplotlib_deprecation_warningr   normalize_kwargs)inpkwargs_to_norms     r   test_normalize_kwargs_failr=    sW    	y	! 6		5	5	76s5n56 6 6 6 6 6s"   A#AA#A 	A##A,zinp, expected, kwargs_to_normc                     t        j                         5  |t        j                  | fi |k(  sJ 	 d d d        y # 1 sw Y   y xY wrn   )r   r9  r   r:  )r;  expectedr<  s      r   test_normalize_kwargs_passr@    sG     
	5	5	7 I511#HHHHHI I Is	   ;Ac                     t        j                  t        d      5 } t        d       | _        t        j                  t        d      5  t        j                  d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nsys)return_valuez	\Adummy\Zr  r   )
r   objectr   r   	_getframer   warnsUserWarningr   warn_external)mock_syss    r   (test_warn_external_frame_embedded_pythonrJ    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 )Nr1   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#&r/   c                  R    t        j                  g g       } | j                  dk(  sJ y N)r#   r   )r   rQ  r   stepss    r   test_to_prestep_emptyrb    &      R(E;;&   r/   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 )Nr1   rL  rP  rN  rM  )r$   r$   r#   r#   r"   r"   r   )r   r   r   pts_to_poststeprR  rS  r	   rT  s	            r   test_to_poststeprf    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#&r/   c                  R    t        j                  g g       } | j                  dk(  sJ y r_  )r   re  r   r`  s    r   test_to_poststep_emptyrh    s&    !!"b)E;;&   r/   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 )Nr1   rL  )r         ?rj  rM   rM         @rk  r$   rN  )r   r   r"   r"   r#   r#   r$   r$   )r$   r$   r#   r#   r"   r"   r   r   )r   r   r   pts_to_midsteprR  rS  r	   rT  s	            r   test_to_midsteprm    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#&r/   c                  R    t        j                  g g       } | j                  dk(  sJ y r_  )r   rl  r   r`  s    r   test_to_midstep_emptyro  $  rc  r/   args   r$   r1   c                     t        j                  t              5  t        j                  |   d d d        y # 1 sw Y   y xY wrn   )r   r   r   r   rQ  )rp  s    r   test_step_failsrs  )  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   rH   r/   r   Dummyrv  4  r   r/   rw  r&   r   r"   )ranger   Grouperjoinrx   rp   get_siblingsjoinedremove	itertoolsproduct)rw  _r   r   r   r   r    objsr>   otherABs               r   test_grouperr  3  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 ]  }t        |      |v rJ  |t        |d            }|dd  D ]  }|t        |         |u rJ  y c c}w )Nc                       e Zd Zy)#test_grouper_private.<locals>.DummyNr   rH   r/   r   rw  r  H  r   r/   rw  r&   r   r"   )rx  r   ry  rz  _mappingr   )rw  r  r  r>   mappingobase_sets          r   test_grouper_privater  G  s     "1X&EG&D&A
AFFDMjjG !1v   ! s47|$H!"X +s1v(***+ '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  X  ss    
		!A	
BR==R==

"
"2
&C!8O8R==R==r/   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   rH   r/   r   rw  r  f  r   r/   rw  r   )r"   r   r&   )r"   r&   r$   )r$   r&   )r&   r$   r"   r#   r   )r"   )r$   r/  r1   )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rn   )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 rn   )r   r(   r  __getitem__)r   itemr  s     r   r  z1test_reshape2d.<locals>.ArraySubclass.__getitem__  s    88EG/566r/   )rE   rF   rG   r  r  __classcell__)r  s   @r   ArraySubclassr    s    	&	7 	7r/   r  
   rN  )r  )rO  buffer)	r   r   r   r   ddr    r!   ffr!   )r   _reshape_2Dr   r   rx  r   r]   randro   rp   ndarrayr(   r   rS  rb   )rw  xnewr  r   r  r4  s         r   test_reshape2dr  d  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$   r.  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./r/   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   r@   )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./r/   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$   r.  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.r/   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.r/   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$   r1   r&   TFr   )r%      r&   )r   contiguous_regions)r   r   r   r4   r?  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---r/   c                     | j                  t        d      t        dd            }t        j                  |      }|dk(  sJ y )Nr&   r     )indexr   )Seriesrx  r   r  )r  r   r:   s      r   %test_safe_first_element_pandas_seriesr    s:    
		%(%B-	0A%%a(FQ;;r/   c                 ~    t        j                  d       t        |       dk(  sJ | d   j                  t        k(  sJ y )Noopsr"   r   )r   rH  r   filename__file__)recwarns    r   test_warn_externalr    s:    vw<11:(***r/   c                      d } d }dD ]h  \  }}t        j                  ||z        j                  ||      }t        j                   ||dz
         ||dz
              D ]  \  }} | |||        j y )Nc           	         | j                   \  }}g t        d|dz
  |      |dz
  }g t        d|dz
  |      |dz
  }g }t        |d d |dd        D ]^  \  }}	t        |d d |dd        D ]D  \  }
}t        j                  | ||	dz   |
|dz   f         j
                  }|j                  |       F ` t        j                  |      }t        j                  |t        j                  | ||            sJ y )Nr   r"   rL  rstridecstride)r   rx  r   r   _array_perimeterr  r  r   rR  array_equal_array_patch_perimeters)r   r  r  rowscolsrow_indscol_indspolysrsrs_nextcscs_nextpss                r   checkz*test_array_patch_perimeters.<locals>.check  s   WW
d7U1d1fg.7Q77U1d1fg.7Q7x}hqrl; 	!KB"8CR=(12,? !G++AblBwqyL.H,IJLLR !	!
 

5!~~e#;;"#WgGH 	H Hr/   c                 X    t        d| dz         D cg c]  }| |z  dk(  s| c}S c c}w )Nr"   r   )rx  )nr5  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7r/   c                      G d d       G d d      }         fd} |        j                   _         |       t        j                  ddd d	d
d ddd
      5  j                   j                   u sJ j                  j                  u sJ j                  dk(  sJ j
                  d	k(  sJ j                  d
k(  sJ j                  dk(  sJ j                  j                   k7  sJ j                  dk(  sJ j                  dk(  sJ j                  dk(  sJ 	 d d d         |       y # 1 sw Y   xY w)Nc                       e Zd Z e       Z e       Zd Zd Zed        Z	e
d        Zed        Zej                  d        Zy)test_setattr_cm.<locals>.Ac                 .    d| _         d| _        d| _        y )Naardvarkoverridep)r  r  _pr   s    r   __init__z#test_setattr_cm.<locals>.A.__init__$  s    &DM&DMDGr/   c                      y rn   rH   r   s    r   methztest_setattr_cm.<locals>.A.meth)  s    r/   c                      y rn   rH   )clss    r   classyz!test_setattr_cm.<locals>.A.classy,      r/   c                       y rn   rH   rH   r/   r   staticz!test_setattr_cm.<locals>.A.static0  r  r/   c                     | j                   S rn   r  r   s    r   propztest_setattr_cm.<locals>.A.prop4  s    77Nr/   c                     || _         y rn   r  )r   vals     r   r   ztest_setattr_cm.<locals>.A.prop8  s	    DGr/   N)rE   rF   rG   rD  	cls_levelr  r  r  classmethodr  staticmethodr  propertyr   setterrH   r/   r   r  r     sn    H	8	
	 
	 
	 
	 
	 
	 
	 
	 
	r/   r  c                       e Zd Zy)test_setattr_cm.<locals>.BNr   rH   r/   r   r  r	  <  s    r/   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_stateA  s    xxsxx'''||s||+++zzZ'''xx388###}}+++||z)))3(((xx3zzUZZ'''}}+++#,,...s||+++s||+++r/   squirrelmoosec                       y rn   rH   rH   r/   r   r   z!test_setattr_cm.<locals>.<lambda>]  r   r/   boor  c                       y rn   rH   rH   r/   r   r   z!test_setattr_cm.<locals>.<lambda>_  r   r/   bobr  r  )	r   r  r  r  r  r  r  r  r  )r  r  r   _setattr_cmr  r  r  r   r  r  r  )r  r  r  r   r  s     @@@r   test_setattr_cmr    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_approxr  q  s    AQ7c>>Q7c>>Q7c>>Wa=D   T1:_a I---q!Z///_a Aor$:JlJJJJJr/   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"   )rx  r   todayr   r   r  )r5  datetime_lstr:   s      r   !test_safe_first_element_with_noner!  }  sb    >CBiHDJJL9!#44HLHLO%%l3F&LO";;;"; Is   (A)Cr~  r   weakrefr   unittest.mockr   r   r   r   r   numpyr   numpy.testingr	   r
   r   r   
matplotlibr   r   matplotlib.colorscolorsrA   matplotlib.cbookr   r   rJ   r   r   r  r
  r  r!  r   r   r*  r,  r6  fail_mappingpass_mappingr=  r@  rJ  r]  rb  rf  rh  rm  ro  r   r  rs  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  rH   r/   r   <module>r,     su      % . . 6 6  " # 13 3D{@ {@|{$ {$|H&GB  
B  
* 
0
0
0
	+ 1#u671#Sz):;< 
2rN1QQ',	1XQx/C#s+<=> .=6 >6 8%'I'I('(!
'(!
'(!
 
biimAq!3'biimSbiimYRYYq\"$%
$%
$
(+"	P+f////..+78Od	K<r/   