
    
3j              	         % S SK Jr  S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	J
r
  S SKJrJrJr  S SKrS SKJrJrJr  S SKrS SKrS SKJrJr  S SKJr  S SKJrJr  S S	KJ r    " S
 S5      r! " S S5      r" " S S5      r# " S S5      r$ " S S5      r%S r&S r'\'S 5       r(S r)S r*\RV                  RY                  S/ SQ5      S 5       r-S r.S r/S r0SS S!.S"S#/04SS S!.S"S"S#/04/r1S$\2S%'   S0 0 4SS S!.SS S!.0 4S#S 0S"S 0S"S"S#/04/r3S&\2S''   \RV                  RY                  S(\15      S) 5       r4\RV                  RY                  S*\35      S+ 5       r5S, r6S- r7S. r8S/ r9S0 r:S1 r;S2 r<S3 r=\RV                  RY                  S4\R|                  " S55      R                  S6S75      S"4\R|                  " S55      S"4\R|                  " S55      \R|                  " S65      4/5      S8 5       r@S9 rAS: rBS; rCS< rDS= rES> rFS? rGS@ rHSA rISB rJSC rKSD rLSE rMSF rNSG rOSH rPSI rQ\RV                  RY                  SJ/ SKQ5      SL 5       rRSM rSSN rTSO rUSP rVg)Q    )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                  ,    \ rS rSrS rS rS rS rSrg)Test_delete_masked_points   c                    [         R                  " [        5         [        S[        R
                  " SS5      5        S S S 5        g ! , (       d  f       g = f)Nza stringg      ?g      @)pytestraises
ValueErrorr   nparangeselfs    U/home/wildlama/miniconda3/lib/python3.13/site-packages/matplotlib/tests/test_cbook.pytest_bad_first_arg,Test_delete_masked_points.test_bad_first_arg   s/    ]]:& RYYsC-@A '&&s   "A
Ac                   / SQnSSS[         R                  [         R                  S/n[        X5      u  p4/ SQn[        U[         R                  " U5      U   5        [        U[         R                  " U5      U   5        g )N)abcdef            )r   r'   r(      )r   nanr   r
   array)r   a1a2result1result2inds         r   test_string_seq)Test_delete_masked_points.test_string_seq   sa    +Arvvrvvq)/77BHHRL$567BHHRL$56    c           
        [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      /n[        R                  R                  SSS[        R                  [        R                  S// SQS	9n[        X5      n/ S
Qn[        US   [        R                  " U5      U   5        [        US   X$   R                  5       5        g )Ni  r'   r(   r)      r+   r*   FFTTFFmaskr   r'   r+   r   )r   r   mar-   r,   r   r
   
compressed)r   datesa_maskedactualr2   s        r   test_datetime'Test_delete_masked_points.test_datetime&   s    $1%xa';$1%xa';$1%xa';= 55;;1a;$L  N%e66!9bhhuoc&:;6!9hm&>&>&@Ar5   c                6   [         R                  R                  SSS[         R                  [         R                  S// SQS9n[        R
                  " / SQ5      n[        X5      n/ SQn[        US	   X   R                  5       5        [        US   X$   5        g )
Nr'   r(   r)   r*   r8   r9   )rgr"   r#   myr;   r   )	r   r<   r-   r,   mcolorsto_rgba_arrayr   r
   r=   )r   r?   a_rgbar@   r2   s        r   	test_rgba#Test_delete_masked_points.test_rgba1   s}    55;;1a;$L  N&&'EF%h76!9hm&>&>&@A6!9fk2r5    N)	__name__
__module____qualname____firstlineno__r   r3   rA   rK   __static_attributes__rM   r5   r   r   r      s    B7	B3r5   r   c                  b    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)Test_boxplot_stats;   c                   [         R                  R                  S5        SU l        SU l        [         R                  R                  U R                  U R                  4SSS9U l        [        / SQ5      U l        [        R                  " U R                  5      U l        SS	S
SS[         R                  " / SQ5      SSSSS.
U l        SSS.U l        SS[         R                  " SS/5      S.U l        SSS.U l        SSS.U l        g )Ni  %   r7         ?g      ?)sizemeansigma)rZ   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ޓ?)
ra   r`   r_   rZ   r\   rd   r]   r^   rc   rb   gN!@g?)ra   r`   g =ɳE@rf   rg   )rc   rb   rd   geLM?)rb   rc   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_methodTest_boxplot_stats.setup_method<   s   
		s

II''djj$**-E-0 ( >	  "
 
 !..tyy9 ''%%%hh    %#(**
&  &&&
" )*hh[9: 
 +)&
" +( 
r5   c                F    [        U R                  [        5      (       d   eg N)
isinstancerq   listr   s    r   test_form_main_list&Test_boxplot_stats.test_form_main_listn   s    $**D1111r5   c                X    U R                    H  n[        U[        5      (       a  M   e   g rz   )rq   r{   dictr   ress     r   test_form_each_dict&Test_boxplot_stats.test_form_each_dictq   s%    ##Cc4(((( $r5   c                r    U R                    H'  n[        U5      [        U R                  5      ::  a  M'   e   g rz   )rq   setro   r   s     r   test_form_dict_keys&Test_boxplot_stats.test_form_dict_keysu   s-    ##Cs8s4??3333 $r5   c                    U R                   S   nU R                  R                  5        H  u  p#[        X   U5        M     g )Nr   )rq   rr   itemsr   )r   r   keyvalues       r   test_results_baseline(Test_boxplot_stats.test_results_baseliney   s:    q!88>>@JC%ch6 Ar5   c                    [         R                  " U R                  SS9nUS   nU R                  R	                  5        H  u  p4[        X#   U5        M     g )Ni'  )	bootstrapr   )r   rp   rm   rs   r   r   r   resultsr   r   r   s        r   test_results_bootstrapped,Test_boxplot_stats.test_results_bootstrapped~   sH    %%dii5Aaj44::<JC%0 =r5   c                    [         R                  " U R                  SS9nUS   nU R                  R	                  5        H  u  p4[        X#   U5        M     g )Nr)   whisr   )r   rp   rm   rt   r   r   r   s        r   test_results_whiskers_float.Test_boxplot_stats.test_results_whiskers_float   sH    %%diia8aj..446JC%ch6 7r5   c                    [         R                  " U R                  SS/S9nUS   nU R                  R	                  5        H  u  p4[        X#   U5        M     g )Nr   d   r   )r   rp   rm   rv   r   r   r   s        r   test_results_whiskers_range.Test_boxplot_stats.test_results_whiskers_range   sL    %%diiq#h?aj..446JC%ch6 7r5   c                    [         R                  " U R                  SS/S9nUS   nU R                  R	                  5        H  u  p4[        X#   U5        M     g )Nr+   _   r   r   )r   rp   rm   ru   r   r   r   s        r   !test_results_whiskers_percentiles4Test_boxplot_stats.test_results_whiskers_percentiles   sL    %%diiq"g>aj44::<JC%ch6 =r5   c                    / SQn[         R                  " U R                  US9n[        X5       H  u  p4US   U:X  a  M   e   [         R                  " U R                  5      nU H  nSU;  a  M   e   g )N)Test1r(   Aardvarkr7   labelsre   )r   rp   rm   zip)r   r   r   labr   s        r   test_results_withlabels*Test_boxplot_stats.test_results_withlabels   sn    ,%%dii?F,HCw<3&&& - %%dii0C#%%% r5   c                    SS/n[         R                  " [        5         [        R                  " U R
                  US9  S S S 5        g ! , (       d  f       g = f)Nr'   r(   r   )r   r   r   r   rp   rm   )r   r   s     r   test_label_error#Test_boxplot_stats.test_label_error   s7    Q]]:&		&9 '&&s    A
Ac                    [         R                  R                  SS9n[        R                  " [
        5         [        R                  " U5        S S S 5        g ! , (       d  f       g = f)N)"   r   r   )rY   )r   rh   normalr   r   r   r   rp   r   rm   s     r   test_bad_dims Test_boxplot_stats.test_bad_dims   s?    yy\2]]:&% '&&s   A
A&c                n   [         R                  " SS9n[         R                  " SUS/5      n[        R                  " USS9n[        R                  " USS9nUS   S	   S:X  d   eUS   S
   S:X  d   e[        US   S   SS/5        US   S	   S:X  d   eUS   S
   S:X  d   e[        US   S   / 5        g )N   )shapeir   F)	autorangeTr   rb   rc   rd   )r   zeroshstackr   rp   r   )r   xbstats_falsebstats_trues       r   "test_boxplot_stats_autorange_false5Test_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?r5   )
rm   rs   ro   rr   ru   rv   rt   rk   rj   rq   N)rN   rO   rP   rQ   rw   r}   r   r   r   r   r   r   r   r   r   r   r   rR   rM   r5   r   rT   rT   ;   sE    0
d2)47
1777&:
&
@r5   rT   c                      \ rS rSrS rSrg)Hashable   c                    g rz   rM   r   s    r   dummyHashable.dummy       Tr5   rM   N)rN   rO   rP   rQ   r   rR   rM   r5   r   r   r      s    r5   r   c                      \ rS rSrSrS rSrg)
Unhashable   Nc                    g rz   rM   r   s    r   r   Unhashable.dummy   r   r5   rM   )rN   rO   rP   rQ   __hash__r   rR   rM   r5   r   r   r      s
    Hr5   r   c                     \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	S
S/5      \R                  R                  S\\/5      S 5       5       r\R                  R                  S	S
S/5      \R                  R                  S\\/5      S 5       5       r\R                  R                  S	S
S/5      \R                  R                  S\\/5      S 5       5       r\R                  R                  S	S
S/5      \R                  R                  S\\/5      S 5       5       r\R                  R                  S	S
S/5      \R                  R                  S\\/5      S 5       5       rS r\R                  R                  S	S
S/5      \R                  R                  S\\/5      S 5       5       rS r\R                  R                  S	S
S/5      \R                  R                  S\\/5      S 5       5       r\R                  R                  S	S
S/5      \R                  R                  S\\/5      S 5       5       rS rSrg)Test_callback_registry   c                F    SU l         [        R                  " 5       U l        g )Ntest)signalr   CallbackRegistry	callbacksr   s    r   rw   #Test_callback_registry.setup_method   s    //1r5   c                |    U(       a  U R                   R                  X5      $ U R                   R                  X5      $ rz   )r   connect_connect_picklable)r   sfuncpickles       r   r   Test_callback_registry.connect   s/    >>))!22>>44Q==r5   c                8    U R                   R                  U5      $ rz   )r   
disconnectr   cids     r   r   !Test_callback_registry.disconnect   s    ~~((--r5   c                   ^  [        U 4S jT R                  R                   5       5      n[        T R                  R                  R	                  T R
                  5      5      nX:X  d   eU$ )Nc              3  F   >#    U  H  u  pUTR                   :H  v   M     g 7frz   r   ).0r   pr   s      r   	<genexpr>/Test_callback_registry.count.<locals>.<genexpr>   s     O2N$!Q$++%2Ns   !)sumr   _func_cid_maplengetr   )r   count1count2s   `  r   countTest_callback_registry.count   sQ    O$..2N2NOOT^^--11$++>?r5   c                    [         R                  R                  5         / U R                  R                  Q/ :X  d   eU R                  R                  0 :X  d   eU R                  R
                  [        5       :X  d   eg rz   )r   testingbreak_cyclesr   r   _pickled_cidsr   r   s    r   is_emptyTest_callback_registry.is_empty   sa    


!.--."444~~''2---~~++su444r5   c                    [         R                  R                  5         / U R                  R                  Q/ :w  d   eU R                  R                  0 :w  d   eg rz   )r   r   r   r   r   r   s    r   is_not_empty#Test_callback_registry.is_not_empty   sG    


!.--."444~~''2---r5   c                    [         R                  " 5       nUR                  SS 5        [        R                  " [        R
                  " U5      5      nUR                  SS 5      nUS:X  d   eg )Nr!   c                     g rz   rM   rM   r5   r   <lambda>9Test_callback_registry.test_cid_restore.<locals>.<lambda>       r5   r#   c                     g rz   rM   rM   r5   r   r   r      s    tr5   r'   )r   r   r   r   loadsdumps)r   cbcb2r   s       r   test_cid_restore'Test_callback_registry.test_cid_restore   sP    ##%


3%ll6<<+,kk#|,axxr5   r   TFclsc                   U R                  5         U" 5       nU R                  U R                  UR                  U5      n[	        U5      [
        L d   eU R                  5         U R                  U R                  UR                  U5      nXE:X  d   eU R                  5         [        / U R                  R                  Q5      S:X  d   e[        U R                  R                  5      S:X  d   eAU R                  5         g )Nr'   )
r   r   r   r   typeintr   r   r   r   )r   r   r  mini_mecid1cid2s         r   test_callback_complete-Test_callback_registry.test_callback_complete   s     	 % ||DKK?DzS    ||DKK?||2T^^1123q8884>>++,111 	r5   c                
   U R                  5         U" 5       nU R                  U R                  UR                  U5      n[	        U5      [
        L d   eU R                  5         U R                  U5        U R                  5         g rz   r   r   r   r   r  r  r   r   r   r   r  r	  r
  s        r   test_callback_disconnect/Test_callback_registry.test_callback_disconnect  sg     	 % ||DKK?DzS    	r5   c                
   U R                  5         U" 5       nU R                  U R                  UR                  U5      n[	        U5      [
        L d   eU R                  5         U R                  S5        U R                  5         g )Nfoor  r  s        r   test_callback_wrong_disconnect5Test_callback_registry.test_callback_wrong_disconnect  sj     	 % ||DKK?DzS    	r5   c                   U R                  5         U" 5       nU R                  U R                  UR                  U5        U R	                  5         U R
                  R                  UR                  U R                  S9  U R                  5         g )Nr   r   r   r   r   r   r   r   r   r   r  r	  s       r   test_callback_disconnect_func4Test_callback_registry.test_callback_disconnect_func(  sh     	 % 	T[['--8 	!!'--!D 	r5   c                   U R                  5         U" 5       nU R                  U R                  UR                  U5        U R	                  5         U R
                  R                  UR                  SS9  U R	                  5         U" 5       nU R
                  R                  UR                  U R                  S9  U R	                  5         g )Nwrong_signalr   r  r   r   r  r	  mini_me2s        r   #test_callback_disconnect_func_wrong:Test_callback_registry.test_callback_disconnect_func_wrong;  s     	 % 	T[['--8 	!!'--!G 	 5!!(..!E 	r5   c                   U R                  5         S nU R                  R                  U R                  U5        U R	                  5         S nU R                  R                  XR                  S9  U R	                  5         g )Nc                     g rz   rM   rM   r5   r   r   LTest_callback_registry.test_callback_disconnect_func_redefined.<locals>.func[      r5   c                     g rz   rM   rM   r5   r   r   r$  b  r%  r5   r   )r   r   r   r   r   r   )r   r   s     r   'test_callback_disconnect_func_redefined>Test_callback_registry.test_callback_disconnect_func_redefinedU  sf     		 	t{{D1	 	!!${{!; 	r5   c                   U R                  5         U" 5       nU R                  R                  SUR                  5        U R                  R                  SUR                  5        [	        [        U R                  R                  5      5      S:X  d   eU R                  R                  UR                  5        U R                  5         g )Nsignal1signal2r(   r   r   r   r   r   r|   r   r   r  s       r   )test_callback_disconnect_func_all_signals@Test_callback_registry.test_callback_disconnect_func_all_signalsk  s     	% 	y'--8y'--844456!;;; 	!!'--0 	r5   c                   U R                  5         U R                  R                  U R                  S 5      n[        R
                  " [        SS9   U R                  R                  XR                  S9  S S S 5        g ! , (       d  f       g = f)Nc                     g rz   rM   rM   r5   r   r   OTest_callback_registry.test_disconnect_cid_with_signal_raises.<locals>.<lambda>  s    $r5   zsignal cannot be specifiedmatchr   )r   r   r   r   r   r   r   r   r   s     r   &test_disconnect_cid_with_signal_raises=Test_callback_registry.test_disconnect_cid_with_signal_raises~  sZ    nn$$T[[,?]]:-IJNN%%c++%> KJJs   $A>>
Bc                   U R                  5         U" 5       nU R                  R                  SUR                  5        U R                  R                  SUR                  5        [	        [        U R                  R                  5      5      S:X  d   eU R                  R                  UR                  SS9  [	        [        U R                  R                  5      5      S:X  d   eSU R                  R                  ;   d   eSU R                  R                  ;  d   eU R                  R                  UR                  SS9  U R                  5         g )Nr*  r+  r(   r   r'   r,  r  s       r   'test_callback_disconnect_func_selective>Test_callback_registry.test_callback_disconnect_func_selective  s   
 	% 	y'--8y'--844456!;;; 	!!'--	!B 44456!;;;DNN44444 8 8888 	!!'--	!B 	r5   c                   U R                  5         U" 5       nU R                  U R                  UR                  U5        U" 5       nU R                  U R                  UR                  U5        U" 5       nU R                  U R                  UR                  U5        U R	                  5         U R                  5       S:X  d   eS nS nU R                  5         g Nr(   )r   r   r   r   r   r   r  s        r   'test_registration_on_non_empty_registry>Test_callback_registry.test_registration_on_non_empty_registry  s     	 %T[['--8 5T[[(..&9 5T[[(..&9 	zz|q    r5   c                    [        [        R                  " [        R                  " [        R
                  " 5       5      5      S5      (       d   eg )Nr   )hasattrr   r   r   r   r   r   s    r   test_pickling$Test_callback_registry.test_pickling  s9    v||FLL1G1G1I$JK"$ $ 	$ $r5   )r   r   N)rN   rO   rP   rQ   rw   r   r   r   r   r   r  r   markparametrizer   r   r  r  r  r  r   r'  r-  r4  r7  r;  r?  rR   rM   r5   r   r   r      sl   2>.5.
 [[Xe}5[[UXz$:; < 60 [[Xe}5[[UXz$:; < 6" [[Xe}5[[UXz$:; < 6" [[Xe}5[[UXz$:; < 6" [[Xe}5[[UXz$:; < 60, [[Xe}5[[UXz$:; < 6"? [[Xe}5[[UXz$:; < 64 [[Xe}5[[UXz$:; < 62$r5   r   c                8   [         R                  " 5       nUR                  SS 5        UR                  [         SS 5        [        R
                  " [        5         UR                  SS5        S S S 5        U R                  5       nUR                  UR                  s=:X  a  S:X  d   e   eUR                  [         SS 5        UR                  SS5        U R                  5       nUR                  S:X  d   eSUR                  ;   d   eg ! , (       d  f       N= f)	Nr  c                     g rz   rM   rM   r5   r   r   Atest_callbackregistry_default_exception_handler.<locals>.<lambda>  s    dr5   "_get_running_interactive_frameworkc                     g rz   rM   rM   r5   r   r   rE        Tr5   zargument mismatch c                     g)Nznot-nonerM   rM   r5   r   r   rE    s    Zr5   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_handlerrT    s    				!BJJul#3\C	y	!


5-. 
" F::)r)))))35GIJJu)* F::9VZZGGG 
"	!s   D
Dc                  ^  " S S[         5      mS nS nU4S jn[        R                  " S S9nUR                  SU5        [        R                  " US9nUR                  SU5        [        R                  " US9nUR                  SU5        [        R
                  R                  SU[        /UT/U[        //5      " U 5      $ )	Nc                      \ rS rSrSrg)%raising_cb_reg.<locals>.TestExceptioni  rM   NrN   rO   rP   rQ   rR   rM   r5   r   TestExceptionrW        r5   rY  c                     [         erz   )RuntimeErrorrM   r5   r   raise_runtime_error+raising_cb_reg.<locals>.raise_runtime_error  s    r5   c                     [         erz   r   rM   r5   r   raise_value_error)raising_cb_reg.<locals>.raise_value_error  s    r5   c                6   > [        U [        5      (       a  TeU erz   )r{   r\  )excprY  s    r   transformer#raising_cb_reg.<locals>.transformer  s    dL))
r5   exception_handlerr  zcb, excp)		Exceptionr   r   r   r   rA  rB  r\  r   )r   r]  ra  re  cb_oldcb_filtcb_filt_passrY  s          @r   raising_cb_regrm    s    	  ##d;F
NN5-. $${CGOOE./ ))KHL 12;;"":%+\$:%,m$<%1:$>$@A BFG Gr5   c                    U R                  [        SS 5        [        R                  " U5         UR	                  S5        S S S 5        g ! , (       d  f       g = f)NrF  c                     g rz   rM   rM   r5   r   r   @test_callbackregistry_custom_exception_handler.<locals>.<lambda>  rH  r5   r  )rK  r   r   r   rM  )rR  r  rd  s      r   .test_callbackregistry_custom_exception_handlerrq    s=    3\C	t	


5 
		s   A


Ac                   ^ [         R                  " S/S9n / mU4S jnU R                  SU5        [        R                  " [
        5         U R                  SU5        S S S 5        U R                  SS5        [        R                  " [
        5         U R                  SS5        S S S 5        TS/:X  d   eg ! , (       d  f       N_= f! , (       d  f       N)= f)Nr  )signalsc                (   > TR                  U 5        g rz   )append)r   r   s    r   r  )test_callbackregistry_signals.<locals>.cb   s    w~~a r5   barr'   )r   r   r   r   r   r   rM  )crr  r   s     @r   test_callbackregistry_signalsry    s    				0BG JJub	z	"


5" 
#JJua	z	"


5! 
#qc>> 
#	" 
#	"s   B7C7
C
Cc                 *   S n [         R                  " U S9nS nS nUR                  SU5        UR                  SU5        UR                  5          UR	                  S5        UR	                  S5        S S S 5        UR                  SS9   UR	                  S5        [
        R                  " [        SS	9   UR	                  S5        S S S 5        S S S 5        [
        R                  " [        S
S	9   UR	                  S5        S S S 5        [
        R                  " [        SS	9   UR	                  S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nu= f! , (       d  f       g = f)Nc                    U erz   rM   )rd  s    r   raise_handler5test_callbackregistry_blocking.<locals>.raise_handler  s    
r5   rg  c                     [        S5      e)N1 should be blockedr`  rM   r5   r   
test_func12test_callbackregistry_blocking.<locals>.test_func1      .//r5   c                     [        S5      e)N2 should be blockedr`  rM   r5   r   
test_func22test_callbackregistry_blocking.<locals>.test_func2  r  r5   test1test2r   r  r2  r  )r   r   r   blockedrM  r   r   r   )r|  r  r  r  s       r   test_callbackregistry_blockingr  
  s   			-	@B00JJw
#JJw
# 



7


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


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


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


7 
@	? 
 DC	 
$	# 
@	?	?	?sH   #E +E"7E	E"2E3%F 
E
E	E""
E03
F
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" xxrI  c                <    [         R                  " U 5      U:X  d   eg)z+Strip everything from the first unquoted #.N)r   _strip_comment)lineresults     r   test_strip_commentr  +  s     %///r5   c                     [         R                  " [        SS9   [        R                  " S5        S S S 5        g ! , (       d  f       g = f)NzMissing closing quoter2  zgrid.color: "aa)r   r   r   r   r  rM   r5   r   test_strip_comment_invalidr  ;  s-    	z)@	A./ 
B	A	As	   :
Ac                    SSSS.n / SQn/ SQn/ SQnU[        [        R                  " U R                  5       5      5      :X  d   eU[        [        R                  " U R	                  5       5      5      :X  d   eU[        [        R                  " U R                  5       5      5      :X  d   eU[        R                  " U5      :X  d   eU[        R                  " U5      :X  d   eg )Nr'   r(   r)   r!   r"   r#   r'   r(   r)   ))r!   r'   )r"   r(   )r#   r)   )rn   r   sanitize_sequencekeysvaluesr   )r$   kvis       r   test_sanitize_sequencer  @  s    aa AAA&Au..qvvx89999u..qxxz:;;;;u..qwwy9::::''****''****r5   c                    / SQn [         R                  " / SQ5      n[        R                  " U S5      U L d   e[        R                  " US5      UL d   e[        R                  " U S5      SS/:X  d   e[	        [        R                  " US5      SS/5        [        R                  " U S5      / SQ:X  d   e[	        [        R                  " US5      / SQ5        g )Nr  r)   r(   r'   r+   )r'   r(   r)   r'   r(   )r   r-   r   _resize_sequencer
   )a_listarrs     r   test_resize_sequencer  L  s    F
((9
C !!&!,666!!#q)S000 !!&!,A666u--c151v> !!&!,???u--c15Gr5   r'   r(   )r!   r"   r!   r"   zlist[tuple[dict, dict]]fail_mappingzlist[tuple[Any, dict, dict]]pass_mappingzinp, alias_defc                   [         R                  " U5       " S S[        R                  R                  5      5       n[
        R                  " [        5         [        R                  " X5        S S S 5        g ! , (       d  f       g = f)Nc                      \ rS rSrS rSrg)(test_normalize_kwargs_fail.<locals>.Typeil  c                    g rz   rM   r   s    r   get_a.test_normalize_kwargs_fail.<locals>.Type.get_an  r   r5   rM   NrN   rO   rP   rQ   r  rR   rM   r5   r   Typer  l      $r5   r  )
r   define_aliasesmplartistArtistr   r   rL  r   normalize_kwargs)inp	alias_defr  s      r   test_normalize_kwargs_failr  i  sZ     
#%szz   % $% 
y	!s) 
"	!	!s   A77
Bzinp, expected, alias_defc                   [         R                  " U5       " S S[        R                  R                  5      5       nU[
        R                  " X5      :X  d   e0 nUR                  R                  5        H&  u  pVUR                  U/ 5      R                  U5        M(     [        R                  " [        R                  5         U[
        R                  " X5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nc                      \ rS rSrS rSrg)(test_normalize_kwargs_pass.<locals>.Typeiw  c                    g rz   rM   r   s    r   r  .test_normalize_kwargs_pass.<locals>.Type.get_ay  r   r5   rM   Nr  rM   r5   r   r  r  w  r  r5   r  )r   r  r  r  r  r   r  _alias_to_propr   
setdefaultru  r   warnsMatplotlibDeprecationWarning)r  expectedr  r  old_alias_mapaliasprops          r   test_normalize_kwargs_passr  t  s     
#%szz   % $% u--c8888M**002  r*11%8 3	c66	7511#EEEE 
8	7	7s   C**
C8c                   [         R                  " S5        [        U 5      S:X  d   e[        R                  S S S:  ag  [
        R                  " [        5      R                  S   nU S   R                  R                  [        US-  5      [        US-  5      45      (       a   eg U S   R                  [        :X  d   eg )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_externalr    s    vw<1
w& ,,x(0031:&&113w7M3N36w7O3P3R S S 	S S S
 qz""h...r5   c                    [         R                  " [        S5       n [        S S9U l        [
        R                  " [        SS9   [        R                  " S5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr  )return_valuez	\Adummy\Zr2  r   )
r   objectr   r   	_getframer   r  UserWarningr   r  )mock_syss    r   (test_warn_external_frame_embedded_pythonr    sX    	eU	#x!t4\\+\:w' ; 
$	#:: 
$	#s#   (A=A,A=,
A:	6A==
Bc                    [         R                  " S5      n [         R                  " S5      n[         R                  " S5      S S S2   n[        R                  " XU5      u  p4n[         R                  " / SQ[
        S9n[         R                  " / SQ[
        S9n[         R                  " / SQ[
        S9n[        Xc5        [        Xt5        [        X5        [        R                  " X5      u  p4[        Xc5        [        Xt5        g )Nr7   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''r2LBSzz/u=H

0>I

0>Ix$y&y&""1)GBx$y&r5   c                 V    [         R                  " / / 5      n U R                  S:X  d   eg N)r(   r   )r   r  r   stepss    r   test_to_prestep_emptyr    &      R(E;;&   r5   c                    [         R                  " S5      n [         R                  " S5      n[         R                  " S5      S S S2   n[        R                  " XU5      u  p4n[         R                  " / SQ[
        S9n[         R                  " / SQ[
        S9n[         R                  " / SQ[
        S9n[        Xc5        [        Xt5        [        X5        [        R                  " X5      u  p4[        Xc5        [        Xt5        g )Nr7   r  r  r  r  )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((3LBSzz/u=H

0>I

0>Ix$y&y&##A*GBx$y&r5   c                 V    [         R                  " / / 5      n U R                  S:X  d   eg r  )r   r  r   r  s    r   test_to_poststep_emptyr    s&    !!"b)E;;&   r5   c                    [         R                  " S5      n [         R                  " S5      n[         R                  " S5      S S S2   n[        R                  " XU5      u  p4n[         R                  " / SQ[
        S9n[         R                  " / SQ[
        S9n[         R                  " / SQ[
        S9n[        Xc5        [        Xt5        [        X5        [        R                  " X5      u  p4[        Xc5        [        Xt5        g )Nr7   r  )r         ?r  rX   rX         @r  r)   r  )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    s    
		!A	1B	1dd	B''r2LBSzz<EJH

35AI

35AIx$y&y&""1)GBx$y&r5   c                 V    [         R                  " / / 5      n U R                  S:X  d   eg r  )r   r   r   r  s    r   test_to_midstep_emptyr    r  r5   argsr  r)   r7   c                    [         R                  " [        5         [        R                  " U 6   S S S 5        g ! , (       d  f       g = frz   )r   r   r   r   r  )r  s    r   test_step_failsr    s*     
z	"d# 
#	"	"s	   8
Ac                     " S S5      n [        S5       Vs/ s H	  o" 5       PM     sn=u  p#pEpg[        R                  " 5       nUR                  " U6   [	        [        U5      S   5      [	        U5      :X  d   e[	        UR                  U5      5      [	        U5      :X  d   eX(R                  USS9;  d   eUSS   H  n	UR                  X)5      (       a  M   e   UR                  U5        USS   H  n	UR                  X)5      (       d  M   e   [        R                  " USS  USS  5       H  u  pUR                  X5      (       a  M   e   g s  snf )Nc                      \ rS rSrSrg)test_grouper.<locals>.Dummyi  rM   NrX  rM   r5   r   Dummyr	    rZ  r5   r
  r+   r   F)include_selfr'   )ranger   Grouperjoinr   r|   get_siblingsjoinedremove	itertoolsproduct)r
  _r!   r"   r#   r$   r%   objsrE   otherABs               r   test_grouperr    s1    -21X6XEGX66MA!AFFDMtAwqz?c$i'''q~~a !SY...NN15N9999abxx!!!!  HHQKab88A%%%%  !!$qr(DH5xx~~~ 6 7s   Ec                     " S S5      n [        S5       Vs/ s H	  o" 5       PM     nn[        R                  " 5       nUR                  " U6   UR                  nU H
  nXT;   a  M
   e   XBS      nUSS   H  nXE   UL a  M   e   g s  snf )Nc                      \ rS rSrSrg)#test_grouper_private.<locals>.Dummyi  rM   NrX  rM   r5   r   r
  r    rZ  r5   r
  r+   r   r'   )r  r   r  r  _mapping)r
  r  r  rE   mappingobase_sets          r   test_grouper_privater!    s     "1X&XEGXD&AFFDMjjG||  AwH!"XzX%%%  's   Bc                    [         R                  " S5      n U R                  nS[        U5      :X  d   eS[        U5      :X  d   e[        R
                  " U5      nUS:X  d   eS[        U5      :X  d   eS[        U5      :X  d   eg )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==r5   c                     [         R                  " S[         R                  5      n [        R                  " U 5      n[         R
                  " U5      (       d   eg r:  )r   fullr,   r   r%  isnanr  r'  s     r   test__safe_first_finite_all_nanr-  !  8    
''!RVV
C

"
"3
'C88C===r5   c                     [         R                  " S[         R                  5      n [        R                  " U 5      n[         R
                  " U5      (       d   eg r:  )r   r*  infr   r%  isinfr,  s     r   test__safe_first_finite_all_infr2  '  r.  r5   c                 	    " S S5      n [         R                  " / S5      n[        R                  " U5      S:X  d   e[	        S5       Vs/ s H	  o " 5       PM     nn[         R                  " US5      n[        R                  " U5      S:X  d   e[        R
                  " S5      n[         R                  " US5      n[        R                  " U5      S:X  d   e[	        S5       Vs/ s H#  n[	        S5       Vs/ s H	  o " 5       PM     snPM%     nn[         R                  " US5      n[        R                  " U5      S:X  d   e[        R                  R                  SS5      n[         R                  " US5      n[        R                  " U5      S	:X  d   eS
/S/S//n[         R                  " US5      n[        U[        5      (       d   e[        US   [        R                  5      (       a  US   R                  S:X  d   e[        US
   [        R                  5      (       a  US
   R                  S:X  d   e[        US   [        R                  5      (       a  US   R                  S:X  d   e[        R                  " S5      [        R                  " S
5      [        R                  " S5      /n[         R                  " US5      n[        U[        5      (       d   e[        U5      S
:X  d   e[        US   [        R                  5      (       a  US   R                  S:X  d   e/ SQSS/S//n[         R                  " US5      n[        U[        5      (       d   e[        US   [        R                  5      (       a  US   R                  S:X  d   e[        US
   [        R                  5      (       a  US
   R                  S:X  d   e[        US   [        R                  5      (       a  US   R                  S:X  d   e " S S[        R                  5      n[        R
                  " S[        S9nU" S[        UR                  S9n[         R                  " US5      n[        U5      S
:X  d   e[        US   U5      (       d   e/ SQn[         R                  " US5      n[        US   5      [        U5      :X  d   e[        US   [        R                  5      (       d   eg s  snf s  snf s  snf )Nc                      \ rS rSrSrg)test_reshape2d.<locals>.Dummyi/  rM   NrX  rM   r5   r   r
  r5  /  rZ  r5   r
  r   )r'   r   r+   )r'   r+   r)   )r)   r+   )r+   r)   r'   r(   r   )r'   )r)   r  r7   )r(   c                  4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )%test_reshape2d.<locals>.ArraySubclassif  c              3  h   >#    [         TU ]  5        H  n[        R                  " U5      v   M     g 7frz   )super__iter__r   r-   )r   r   	__class__s     r   r:  .test_reshape2d.<locals>.ArraySubclass.__iter__h  s&     )+hhuo% ,s   /2c                J   > [         R                  " [        TU ]  U5      5      $ rz   )r   r-   r9  __getitem__)r   itemr;  s     r   r>  1test_reshape2d.<locals>.ArraySubclass.__getitem__l  s    88EG/566r5   rM   )rN   rO   rP   rQ   r:  r>  rR   __classcell__)r;  s   @r   ArraySubclassr7  f  s    	&	7 	7r5   rB  
   r  )rC  )r  buffer)	r!   r"   r#   r#   ddr%   r&   ffr&   )r   _reshape_2Dr   r   r  r   rh   randr{   r|   ndarrayr-   r   r  rm   )r
  xnewr  r   rB  r  s         r   test_reshape2drK  -  s     R%D88D>V###(#(Q(A#Q$D88D>V###
		!AQ$D88D>V###.3Ah7h58	$8a%'8	$hA7Q$D88D>V### 			q!AQ$D88D>V### qcA3AQ$DdD!!!!d1grzz**tAw}}/DDDd1grzz**tAw}}/DDDd1grzz**tAw}}/DDD 
!bhhqk288A;/AQ$DdD!!!!t9>>d1grzz**tAw}}/DDD 
QFQC AQ$DdD!!!!d1grzz**tAw}}/DDDd1grzz**tAw}}/DDDd1grzz**tAw}}/DDD7

 7 			"E"Ae58AQ$D t9>>d1g}---- 	8AQ$DtAw<3q6!!!d1grzz****Q 	$ 
%7s   S*&S49S/
	S4/S4c                   [         R                  " S5      R                  SS5      nU R                  U/ SQS9n[        R
                  " US5      n[        UR                  U5       H$  u  p$[         R                  R                  X$5        M&     g )N   rC  r)   r  columnsr   )
r   r   reshape	DataFramer   rG  r   Tr   r
   )pdXr   XnewrJ  s        r   test_reshape2d_pandasrV    sh    
		"b!$A
Q0AQ$DqssD>


%%a. "r5   c                   [         R                  " S5      R                  SS5      nU R                  USS/S9n[        R
                  " US5      n[        UR                  U5       H$  u  p$[         R                  R                  X$5        M&     g NrM  rC  r)   r   rG   )dims)
r   r   rP  	DataArrayr   rG  r   rR  r   r
   )xrrT  r   rU  rJ  s        r   test_reshape2d_xarrayr\    sl    
		"b!$A
Qc3Z(AQ$DqssD>


%%a. "r5   c                L   [         R                  " S5      R                  SS5      nU R                  U/ SQS9n[        R
                  " U5      u  p4[         R                  R                  X5        [         R                  " S5      n[         R                  R                  X55        g )NrM  rC  r)   r  rN  )r   r   rP  rQ  r   index_ofr   r
   )rS  rT  r   IdxrU  IdxRefs         r   test_index_of_pandasra    so    
		"b!$A
Q0Aq!ICJJ!!!*YYr]FJJ!!#.r5   c                L   [         R                  " S5      R                  SS5      nU R                  USS/S9n[        R
                  " U5      u  p4[         R                  R                  X5        [         R                  " S5      n[         R                  R                  X55        g rX  )r   r   rP  rZ  r   r^  r   r
   )r[  rT  r   r_  rU  r`  s         r   test_index_of_xarrayrc    ss    
		"b!$A
Qc3Z(Aq!ICJJ!!!*YYr]FJJ!!#.r5   c                     Su  pnS/U -  S/U-  -   S/U-  -   nSU 4X-   X-   U-   4/n[         R                  " U5      U:X  d   eSu  pVUS/U-  -   n[         R                  " U5      U:X  d   eS/U-  US U*  -   nXUU -   4XP-   U-   XP-   U-   U-   4/n[         R                  " U5      U:X  d   eUS/U-  -   n[         R                  " U5      U:X  d   e[         R                  " S/S-  5      / :X  d   e[         R                  " / 5      / :X  d   eg )N)r)   r7   r+   TFr   )r*      r+   )r   contiguous_regions)r!   r"   r#   r:   r  r$   r%   s          r   test_contiguous_regionsrg    sF   GA!6!8ugai4&(*DAac!e%H##D)X555DA5'!)D##D)X555719tCaRy DaC13q5!#a%'*+H##D)X5555'!)D##D)X555##UGAI."444##B'2---r5   c                    U R                  [        S5      [        SS5      S9n[        R                  " U5      nUS:X  d   eg )Nr+   rC     )indexr   )Seriesr  r   r%  )rS  r   r@   s      r   %test_safe_first_element_pandas_seriesrl    s:    
		%(%B-	0A%%a(FQ;;r5   c                     S n S nS He  u  p#[         R                  " X#-  5      R                  X#5      n[        R                  " U" US-
  5      U" US-
  5      5       H  u  pVU " XEUS9  M     Mg     g )Nc           	        U R                   u  p4/ [        SUS-
  U5      QUS-
  Pn/ [        SUS-
  U5      QUS-
  Pn/ n[        R                  " U5       Hb  u  p[        R                  " U5       HC  u  p[        R
                  " XU	S-   2XS-   24   5      R                  nUR                  U5        ME     Md     [        R                  " U5      n[        R                  " U[        R                  " XUS95      (       d   eg )Nr   r'   rstridecstride)r   r  r  pairwiser   _array_perimeterrR  ru  r   r  array_equal_array_patch_perimeters)r   rp  rq  rowscolsrow_indscol_indspolysrsrs_nextcscs_nextpss                r   check*test_array_patch_perimeters.<locals>.check  s    WW
7U1d1fg.7Q77U1d1fg.7Q7$--h7KB(11(;++AlBqyL.H,IJLLR   < 8
 

5!~~e#;;"#gGH H 	H Hr5   c                `    [        SU S-   5       Vs/ s H  oU-  S:X  d  M  UPM     sn$ s  snf )Nr'   r   )r  )nr  s     r   divisors-test_array_patch_perimeters.<locals>.divisors  s,     AE?9?a!eqj?999s   ++))r+   r+   )re     )   	   r'   ro  )r   r   rP  r  r  )r  r  rv  rw  r   rp  rq  s          r   test_array_patch_perimetersr    sq    H: 1
IIdk"**46 ) 1 1(4!82D2:4!82D!FG!g6!F 1r5   c                   ^^^  " S S5      m " S ST5      n T" 5       mUUU4S jnU " 5       mTR                   Tl        U" T5        [        R                  " TSSS S	S
S SSSS9
   TR                   TR                   L d   eTR                  TR                  L d   eTR                  S:X  d   eTR
                  S	:X  d   eTR                  S
:X  d   eTR                  S:X  d   eTR                  TR                   :w  d   eTR                  S:X  d   eTR                  S:X  d   eTR                  S:X  d   e S S S 5        U" T5        g ! , (       d  f       N= f)Nc                      \ rS rSr\" 5       r\" 5       rS rS r\	S 5       r
\S 5       r\S 5       r\R                  S 5       rSrg	)
test_setattr_cm.<locals>.Ai  c                .    SU l         SU l        SU l        g )Naardvarkoverrider   )r  r  _pr   s    r   __init__#test_setattr_cm.<locals>.A.__init__  s    &DM&DMDGr5   c                    g rz   rM   r   s    r   methtest_setattr_cm.<locals>.A.meth  s    r5   c                    g rz   rM   )r  s    r   classy!test_setattr_cm.<locals>.A.classy      r5   c                     g rz   rM   rM   r5   r   static!test_setattr_cm.<locals>.A.static  r  r5   c                    U R                   $ rz   r  r   s    r   r  test_setattr_cm.<locals>.A.prop  s    77Nr5   c                    Xl         g rz   r  )r   vals     r   r  r    s    Gr5   )r  r  r  N)rN   rO   rP   rQ   r  	cls_levelr  r  r  classmethodr  staticmethodr  propertyr  setterrR   rM   r5   r   r  r    sn    H	8	
	 
	 
	 
	 
	 
	 
	 
	 
	r5   r  c                      \ rS rSrSrg)test_setattr_cm.<locals>.Bi  rM   NrX  rM   r5   r   r  r    s    r5   r  c                J  > U R                   U R                   Ld   eU R                  U R                  L d   eTR                  S:X  d   eU R                  U R                  L d   eU R                  TR                  L d   eU R                  S:X  d   e[        U S5      (       a   eU R                  S:X  d   eU R                  TR                   :X  d   eU R                  TR                  L d   eSU R                  ;  d   eSU R                  ;  d   eSU R                  ;  d   eg )Nr  r  extrar   r  r  r  )r  r  r  r  r  r>  monkey__dict__)objr  r!   r  s    r   verify_pre_post_state.test_setattr_cm.<locals>.verify_pre_post_state  s    xxsxx'''||s||+++zzZ'''xx388###}}+++||z)))3((((xx3zzUZZ'''}}+++#,,...s||+++s||+++r5   squirrelmoosec                     g rz   rM   rM   r5   r   r   !test_setattr_cm.<locals>.<lambda>   s    4r5   boor  c                     g rz   rM   rM   r5   r   r   r  "  s    4r5   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    sF    8A  CE,, 	
AzzAH!			J<'5H
. vvzzQZZ'''zzW$$$zzU"""ww'!!!vv###xx5::%%%{{e###xx8###xx8####
.& !'
. 
.s   'CE


Ec                 6   [         R                  n U " SS5      S:X  d   eU " SS5      S:X  d   eU " SS5      S:X  d   eU " SS5      S:X  d   eU " SS	5      S:X  d   eU " S
S	5      S:X  d   eU " SS	5      S:X  d   eU " S
S5      U " S
S5      s=:X  a  S:X  d   e   eg )Nr   r'   0r(   r)   g(0z-0gHz>r+   gӴ:T?z0.00123gӴ:Tz-0.00123   rC  z
0.00123456)r   _format_approx)r&   s    r   test_format_approxr  4  s    AQ7c>>Q7c>>Q7c>>Wa=D   T1:_a I---q!Z///_a Aor$:JlJJJJJr5   c                     [        S5       V s/ s H"  n [        R                  " 5       [        U S9-   PM$     nn S US'   [        R
                  " U5      nUb  X!S   :X  d   eg s  sn f )NrC  )daysr   r'   )r  r   todayr	   r   r%  )r  datetime_lstr@   s      r   !test_safe_first_element_with_noner  @  sa    >CBiHiDJJL9!#44iLHLO%%l3F&O";;;"; Is   )A"c                 j    [        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   eg )Nz
1 \times 2z$1 \times 2$z1 x 2z	$\rm{hi}$hi)r   rM   r5   r   test_strip_mathr  G  s;    m$555o&'111l#t+++r5   zfmt, value, result))z%.2f m皙?0.20 m)z{:.2f} mr  r  )z{} mr  z0.2 m)constr  r  )z%d or {}r  z0 or {})z{{{:,.0f}}}g     jAz	{200,000})z{:.2%}gUUUUUU?z66.67%)z$%ggRQ@z$2.54c                    [         R                  " X5      U:X  d   e[         R                  " U [        R                  " U5      5      U:X  d   eg)z)Apply *value* to the format string *fmt*.N)r   _auto_format_strr   float64)fmtr   r  s      r   test_auto_format_strr  M  sA     !!#-777!!#rzz%'89VCCCr5   c                 2    " S S5      n [        S5      nXl        U[        R                  S'   [        R
                  " S5      nUR                  U5      n[        R                  " U5      n[        U[        R                  5      (       d   e[        XB5        g)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                       \ rS rSrS rS rSrg)/test_unpack_to_numpy_from_torch.<locals>.Tensoric  c                    Xl         g rz   rm   r   s     r   r  8test_unpack_to_numpy_from_torch.<locals>.Tensor.__init__d      Ir5   c                    U R                   $ rz   r  r   s    r   	__array__9test_unpack_to_numpy_from_torch.<locals>.Tensor.__array__g      99r5   r  NrN   rO   rP   rQ   r  r  rR   rM   r5   r   Tensorr  c      		r5   r  torchrC  N)r   r  r  modulesr   r   r   _unpack_to_numpyr{   rI  r
   )r  r  rm   torch_tensorr  s        r   test_unpack_to_numpy_from_torchr  ]  sw      wEL CKK99R=D<<%L##L1Ffbjj)))) v$r5   c                 2    " S S5      n [        S5      nXl        U[        R                  S'   [        R
                  " S5      nUR                  U5      n[        R                  " U5      n[        U[        R                  5      (       d   e[        XB5        g)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                       \ rS rSrS rS rSrg),test_unpack_to_numpy_from_jax.<locals>.Arrayi  c                    Xl         g rz   r  r   s     r   r  5test_unpack_to_numpy_from_jax.<locals>.Array.__init__  r  r5   c                    U R                   $ rz   r  r   s    r   r  6test_unpack_to_numpy_from_jax.<locals>.Array.__array__  r  r5   r  Nr  rM   r5   r   Arrayr    r  r5   r  jaxrC  N)r   r  r  r  r   r   r   r  r{   rI  r
   )r  r  rm   	jax_arrayr  s        r   test_unpack_to_numpy_from_jaxr  y  sv      U
CICKK99R=D		$I##I.Ffbjj)))) v$r5   c                 L  ^  " S S5      m[        S5      n U4S jU l        TU l        U [        R                  S'   [
        R                  " S5      nU R                  U5      n[        R                  " U5      n[        U[
        R                  5      (       d   e[        X15        g)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                       \ rS rSrS rS rSrg)4test_unpack_to_numpy_from_tensorflow.<locals>.Tensori  c                    Xl         g rz   r  r   s     r   r  =test_unpack_to_numpy_from_tensorflow.<locals>.Tensor.__init__  r  r5   c                    U R                   $ rz   r  r   s    r   r  >test_unpack_to_numpy_from_tensorflow.<locals>.Tensor.__array__  r  r5   r  Nr  rM   r5   r   r  r    r  r5   r  
tensorflowc                   > [        U T5      $ rz   )r{   )r   r  s    r   r   6test_unpack_to_numpy_from_tensorflow.<locals>.<lambda>  s    Z6%:r5   rC  N)r   	is_tensorr  r  r  r   r   r   r  r{   rI  r
   )r  rm   	tf_tensorr  r  s       @r   $test_unpack_to_numpy_from_tensorflowr    s      L)J:JJ *CKK99R=D!!$'I##I.Ffbjj)))) v$r5   c                 2    " S S5      n [        S5      nXl        U[        R                  S'   [        R
                  " S5      nUR                  U5      n[        R                  " U5      n[        U[        R                  5      (       d   e[        XB5        g)z
Test that mlx arrays are converted to NumPy arrays.

We don't want to create a dependency on mlx in the test suite, so we mock it.
c                       \ rS rSrS rS rSrg),test_unpack_to_numpy_from_mlx.<locals>.Arrayi  c                    Xl         g rz   r  r   s     r   r  5test_unpack_to_numpy_from_mlx.<locals>.Array.__init__  r  r5   c                    U R                   $ rz   r  r   s    r   r  6test_unpack_to_numpy_from_mlx.<locals>.Array.__array__  r  r5   r  Nr  rM   r5   r   r  r    r  r5   r  zmlx.corerC  N)r   r-   r  r  r   r   r   r  r{   rI  r
   )r  mlx_corerm   	mlx_arrayr  s        r   test_unpack_to_numpy_from_mlxr    sw      *%HN&CKK
99R=Dt$I##I.Ffbjj)))) v$r5   )W
__future__r   r  r  r   r  typingr   unittest.mockr   r   r   r   r	   numpyr   numpy.testingr
   r   r   r   r  r  r   r   matplotlib.colorscolorsrH   matplotlib.cbookr   r   typesr   r   rT   r   r   r   rT  rm  rq  ry  r  rA  rB  r  r  r  r  r  __annotations__r  r  r  r  r  r  r  r  r  r  r  r   rP  r  r  r!  r(  r-  r2  rK  rV  r\  ra  rc  rg  rl  r  r  r  r  r  r  r  r  r  r  rM   r5   r   <module>r     s   "    
  % . . 6 6   " # = 3 3D{@ {@|  
|$ |$~H&GB  
B  
* 
0
0
0
	+H$ 1cU|$1c3Z())%  
2rN1QQ',	1XQx#Sz*+.*  )<8* 9* 3\BF CF/ ('(!
'(!
'(!
 
iimAq!3'iimSiimRYYq\"$%
$%
$
*&"	P+f////..78Od	K<, - 	0 	D	D%8%:%<%r5   