
    dH                      d dl mZ d dlZd dlmZ d dlZd dlZd dlZ	d dl
mZmZmZ  ej         ej        ej        d           ej        ej        d          g          d	             Zedd            ZddZddZddZddZddZddZddZddZddZddZddZddZddZ ddZ!ddZ"ddZ#ddZ$ddZ%ddZ&dd Z'dd!Z(dd"Z)dd#Z*dd$Z+dd%Z,dd&Z-dd'Z.dd(Z/dd)Z0dd*Z1dd+Z2dd,Z3dd-Z4dd.Z5dd/Z6dd0Z7dd1Z8dd2Z9dd3Z:dd4Z;dd5Z<dd6Z=dd7Z>dd8Z?ej@        A                    d9d:g ej        d; g d<d=           ej        d> g d?d@           ej        dA g dBdC           ej        dD g dEdF           ej        dG g dHdI           ej        dJ g dKdL           ej        dM g dNdO          g          ddR            ZBddSZCddTZDddUZEddVZFddWZGddXZHddYZIddZZJdd[ZKdd\ZLdd]ZMdd^ZNdd_ZOdd`ZPddaZQddbZRddcZSdddZTddeZUddfZVddgZWddhZXddiZYddjZZddkZ[ddlZ\ddmZ]ddnZ^ddoZ_ej@        A                    d9d:g ej        dp dqdrgg dsdtggg dug g dvggdw           ej        dx dqdrgg dsdtggg dug g dvggdy           ej        dz dqdrgd{d|gdtggd}d~gg ddgggd           ej        d dqdrgddgdtggddgg ddgggd          g          dd            Z`ej@        A                    d9d:g ej        d g dg dg dgg dug dg dvggdw           ej        d g dg dg dgg dug dg dvggdy           ej        d dqdrgd{d|gdtdggd}d~gddgddgggd           ej        d dqdrgddgddtggddgddgddgggd          g          dd            Zaej@        A                    d9d:g ej        d dqdrgg ddtggg dudgg dvggdw           ej        d dqdrgg ddtggg dudgg dvggdy           ej        d dqdrgd{dgdtggd}dgdgddgggd           ej        d dqdrgddgdtggddgdgddgggd           ej        d dqdrgg ddtggg dudgg dvggd           ej        d dqdrgg ddtggg dudgg dvggd          g          dd            Zbej@        A                    d9d:g ej        d g dg dg dgg dug dg dvggdw           ej        d g dg dg dgg dug dg dvggdy           ej        d dqdrgd{dgdtdggd}dgddgddgggd           ej        d dqdrgddgddtggddgddgddgggd           ej        d g dg dg dgg dug dg dvggd           ej        d g dg dg dgg dug dg dvggd          g          dd            ZcddZdddZeddZfddZgddZhddZiddZjddZkddZlddZmddZnddZoddZpddZqddZrddZsddZtddZuddZvddÄZwddĄZxddńZydS )    )annotationsN)Callable)assert_equalassert_identicalrequires_daskstr)idbytes)paramsc                    | j         S N)param)requests    >lib/python3.11/site-packages/xarray/tests/test_accessor_str.pydtyper   3   s     =    returnNonec                 2   dd l m}  |                     g dd          }t          j        |          }|j                                                                        }t          j        g d          }|j        |j        k    sJ t          ||           d S )Nr   abc)chunks)   r   r   )

dask.arrayarray
from_arrayxr	DataArrayr   lencomputer   r   )daarrxarrresultexpecteds        r   	test_daskr)   :   s    
---
3
3C<DX\\^^##%%F|III&&H<8>))))"""""r   c                   t          j        g d                              |           } | d          }t          j        |          }|j                            |          }|j                            |          }t          j        g d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )Nfoofoofoofoooofooofommmfoof[o]+)r         )	r    r!   astyperecompiler   countr   r   r   valuespat_strpat_re
result_str	result_rer(   s          r   
test_countr<   G   s    \@@@AAHHOOFeHooGZ  F!!'**J
  ((I|III&&Hx~----?hn,,,,X&&&H%%%%%r   c                   t          j        g d                              |           }t          j        g d                              |           }t          j        d |D                       }|j                            |          }|j                            |          }t          j        g d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )Nr+   )r/   omc                6    g | ]}t          j        |          S  r3   r4   .0xs     r   
<listcomp>z(test_count_broadcast.<locals>.<listcomp>Z   s     666rz!}}666r   )r   r1      )	r    r!   r2   npr   r   r5   r   r   r6   s          r   test_count_broadcastrI   W   s    \@@@AAHHOOFh---..55e<<GX66g66677F!!'**J
  ((I|III&&Hx~----?hn,,,,X&&&H%%%%%r   c                x   t          j        g d                              |           }|j                            d          }|j                            |d          }t          j        g d          }|j        |j        k    sJ t          ||           |j                            t          j	        |t          j
                            }|j        |j        k    sJ t          ||           |j                            d          }|j                            |          }t          j        g d          }|j        |j        k    sJ t          ||           |j                            t          j	        |                    }|j        |j        k    sJ t          ||           |j                            d	dd
          }t          j        g d          }|j        |j        k    sJ t          ||           |j                            ddd
          }t          j        g d          }|j        |j        k    sJ t          ||           t          j	        d          }t          j        t          d          5  |j                            |d           d d d            d S # 1 swxY w Y   d S )NFooxYzfOOomMm__fOoMMM_FOO|mmmFcase)TFTTflagszFoo|mMm)TFTFr,   regexrR   fOT)FFTFz(/w+)zCMust use regular expression matching for regular expression object.matchrV   )r    r!   r2   r   typer   containsr   r3   r4   
IGNORECASEpytestraises
ValueError)r   r7   patr'   r(   r9   s         r   test_containsrb   g   s   \@@@AAHHOOF ,

I
&
&CZ  5 11F|55566H<8>))))"""Z  Cr}!E!E!EFFF<8>))))""" ,

I
&
&CZ  %%F|66677H<8>))))"""Z  C11F<8>))))""" Z  e% @@F|66677H<8>))))""" Z  U >>F|77788H<8>))))""" Z  F	S
 
 
 1 1 	
F%000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   J//J36J3c                   t          j        g dd                              |           }t          j        g dd                              |           }t          j        d |j        D             d          }|j                            |d          }t          j        g d	g d
g dg dgddg          }|j        |j        k    sJ t          ||           |j                            |          }t          j        g dg d
g d
g dgddg          }|j        |j        k    sJ t          ||           |j                            |          }|j        |j        k    sJ t          ||           |j                            |dd          }t          j        g dg d
g dg dgddg          }|j        |j        k    sJ t          ||           |j                            |dd          }t          j        g dg d
g d
g dgddg          }|j        |j        k    sJ t          ||           d S )NrK   Xdims)rP   rL   MMMYc                6    g | ]}t          j        |          S rA   rB   rC   s     r   rF   z+test_contains_broadcast.<locals>.<listcomp>   s     ???Q2:a==???r   FrQ   TTF)FFF)TTTTFT)FTFFFTrU   )FTTT)r    r!   r2   datar   r\   r   r   )r   r7   r8   r9   r'   r(   s         r   test_contains_broadcastrn      s   \@@@sKKKRR F l4443???FFuMMG\??',???cJJJF Z  u 55F|!!!		
 3Z  H <8>))))""" Z  ))F|   !!!!!!   		
 3Z  H <8>))))"""Z  ((F<8>))))""" Z  E BBF|   !!!   		
 3Z  H <8>))))""" Z  D AAF|   !!!!!!   		
 3Z  H <8>))))"""""r   c                   t          j        g d                              |           }|j                            d          }t          j        g d          }|j        |j        k    sJ t          ||           |j                            d          }t          j        g d          }|j        |j        k    sJ t          ||           d S )N)omfoo_nomnombar_foor,   r,   )FTFFT)FFFTTr    r!   r2   r   
startswithr   r   endswithr   r7   r'   r(   s       r   test_starts_ends_withrx      s    \DDDEELLUSSFZ""5))F|===>>H<8>))))"""Z  ''F|===>>H<8>))))"""""r   c                >   t          j        g dd                              |           }t          j        ddgd                              |           }|j                            |          }t          j        ddgddgddgddgddggddg          }|j        |j        k    sJ t          ||           |j                            |          }t          j        ddgddgddgddgddggddg          }|j        |j        k    sJ t          ||           d S )	N)rp   rq   rr   rs   foo_barrd   re   r,   barrh   FTrt   r   r7   ra   r'   r(   s        r   test_starts_ends_with_broadcastr}      sV   \666S  fUmm  ,u~C
0
0
0
7
7
>
>CZ""3''F|
$e}U3Z  H <8>))))"""Z  %%F|
%%$PTV3Z  H <8>))))"""""r   c                    t          j        dg                              t          j                  } t          j        dg                              t          j                  }t          j        dg                              t          j                  }t          j        dg                              t          j                  }t          j        dg                              t          j                  }t          j        dg                              t          j                  }| j                                        }| j                                        }| j                                        }| j        	                                }	| j        
                                }
|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |	j        |j        k    sJ |
j        |j        k    sJ t          ||           t          ||           t          ||           t          |	|           t          |
|           d S )Nz	SOme wOrdz	Some wordz	some wordz	soME WoRDz	Some Wordz	SOME WORD)r    r!   r2   rH   bytes_r   
capitalizelowerswapcasetitleupperr   r   )valueexp_capitalizedexp_loweredexp_swapped
exp_titledexp_upperedres_capitalizedres_loweredres_swapped
res_titledres_uppereds              r   test_case_bytesr      s   L+''..ry99ElK=1188CCO,}--44RY??K,}--44RY??K{m,,33BI>>J,}--44RY??Ki**,,O)//##K)$$&&K""J)//##K O$99999 11111 11111z///// 11111/222k***k***Z(((k*****r   c                    t          j        dg                              t          j                  } t          j        dg                              t          j                  }t          j        dg                              t          j                  }t          j        dg                              t          j                  }t          j        dg                              t          j                  }t          j        dg                              t          j                  }t          j        dg                              t          j                  }t          j        dg                              t          j                  }t          j        dg                              t          j                  }t          j        d	g                              t          j                  }	t          j        d
g                              t          j                  }
| j                                        }| j                                        }| j                                        }| j        	                                }| j        
                                }| j                                        }| j                            d          }| j                            d          }| j                            d          }| j                            d          }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |	j        k    sJ |j        |j        k    sJ |j        |
j        k    sJ t          ||           t          ||           t          ||           t          ||           t          ||           t          ||           t          ||           t          ||	           t          ||           t          ||
           d S )Nu(   SOme wOrd Ǆ ß ᾛ ΣΣ ﬃ⁵Å Ç Ⅰu(   Some word ǆ ß ᾓ σς ﬃ⁵å ç ⅰu(   some word ǆ ß ᾓ σς ﬃ⁵å ç ⅰu(   soME WoRD ǆ SS ᾛ σς FFI⁵å ç ⅰu(   Some Word ǅ Ss ᾛ Σς Ffi⁵Å Ç Ⅰu*   SOME WORD Ǆ SS ἫΙ ΣΣ FFI⁵Å Ç Ⅰu*   some word ǆ ss ἣι σσ ffi⁵å ç ⅰu%   SOme wOrd DŽ ß ᾛ ΣΣ ffi5Å Ç Iu/   SOme wOrd Ǆ ß ᾛ ΣΣ ﬃ⁵Å Ç Ⅰu-   SOme wOrd DŽ ß ᾛ ΣΣ ffi5Å Ç INFCNFDNFKCNFKD)r    r!   r2   rH   unicode_r   r   casefoldr   r   r   r   	normalizer   r   )r   r   r   r   r   r   exp_casefoldedexp_norm_nfcexp_norm_nfkcexp_norm_nfdexp_norm_nfkdr   res_casefoldedr   r   r   r   res_norm_nfcres_norm_nfdres_norm_nfkcres_norm_nfkds                        r   test_case_strr     s    LDEFFMMbkZZEl$N#OPPWWXZXcddO, JKLLSSTVT_``K, JKLLSSTVT_``KIJKKRRSUS^__J, LMNNUUVXVabbK\#O"PQQXX
 N <!K LMMTTUWU`aaLL"I!JKKRRSUS^__M<!R STT[[\^\ghhLL"Q!RSSZZ
 M i**,,OY''))N)//##K)$$&&K""J)//##K9&&u--L9&&u--LI''//MI''//M O$99999>#77777 11111 11111z///// 11111!33333!33333-"55555-"55555/222000k***k***Z(((k***|,,,|,,,........r   c                   t          j        dgdg                              |           }|j                            dd          }t          j        dgdg                              |           }|j        |j        k    sJ t          ||           |j                            ddd          }t          j        d	gdg                              |           }|j        |j        k    sJ t          ||           t          j        dd
gdg                              |           }|j                            |d          }t          j        ddggddg                              |           }|j        |j        k    sJ t          ||           t          j        ddgdg                              |           }|j                            ||d          }t          j        d	dggddg                              |           }|j        |j        k    sJ t          ||           t          j        g d                              |           }t          j        g d                              |           }|j                            dd          }|j        |j        k    sJ t          ||           |j                            ddd          }|j        |j        k    sJ t          ||           |j                            ddd          }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j                            ddd          }t          j        g d                              |           }|j        |j        k    sJ t          ||           d S )NfooBAD__barBADrE   re   BAD[_]* foobarr   n	foobarBADAD[_]*yfooBbarBspamfooBspambarBAD)	ABCAabaBacar   CABAdogcat)	YYYr   r   YYYabar   r   CYYYBYYYr   r   r   r   FrZ   rQ   )	r   r   r   
YYYYYYbYYYBYYYcYYYr   r   r   cYYYtz^.a|dogXX-XX )	r   r   r   zXX-XX bazXX-XX car   zXX-XX BAr   zXX-XX t)r    r!   r2   r   replacer   r   )r   r7   r'   r(   ra   repls         r   test_replacer   Q  s   \+,C5999@@GGFZ	2..F|XJcU333::5AAH<8>))))"""Z	233F|[M666==eDDH<8>))))"""
,	8,C5
9
9
9
@
@
G
GCZR((F|h
34C:FFFMMeTTH<8>))))"""<VC511188??DZTQ//F|k+;<=S#JOOOVV H <8>))))"""\AAA fUmm  |III fUmm  ZU++F<8>))))"""ZU%88F<8>))))"""ZU77F|SSS fUmm  <8>))))"""Z	8%@@F|TTT fUmm  <8>))))"""""r   c                    t          j        dg          } d }| j                            d|d          }t          j        dg          }|j        |j        k    sJ t          ||           t          j        dg          } d}d	 }| j                            ||          }t          j        d
g          }|j        |j        k    sJ t          ||           t          j        dgdg          } d}t          j        d d d gdg          }| j                            ||          }t          j        g dgddg          }|j        |j        k    sJ t          ||           d S )Nr   c                P    |                      d                                          S Nr   groupr   r?   s    r   <lambda>z'test_replace_callable.<locals>.<lambda>  s    QWWQZZ((** r   [a-z][A-Z]{2}r0   r   foObaD__baRbaDzFoo Bar Bazz,(?P<first>\w+) (?P<middle>\w+) (?P<last>\w+)c                P    |                      d                                          S Nmiddler   r   s    r   r   z'test_replace_callable.<locals>.<lambda>  s    QWWX&&//11 r   bARrE   re   c                P    |                      d                                          S )Nfirstr   r   s    r   r   z'test_replace_callable.<locals>.<lambda>  s    aggg&&//11 r   c                P    |                      d                                          S r   r   r   s    r   r   z'test_replace_callable.<locals>.<lambda>  s    aggh''0022 r   c                P    |                      d                                          S )Nlastr   r   s    r   r   z'test_replace_callable.<locals>.<lambda>  s    aggfoo..00 r   rh   )fOOr   bAZ)r    r!   r   r   r   r   )r7   r   r'   expra   repl2s         r   test_replace_callabler     s   \+,--F +*DZ;;F
,()
*
*C<39$$$$ \=/**F
9C11DZT**F
,w

C<39$$$$ \=/666F
9CL112200	

 U  E ZU++F
,---.c3Z
@
@
@C<39$$$$r   c                 R   t          j        d                    d          g          } t          j        d                    d          g          }t          j        dt          j                  }| j                            |d          }|j        |j        k    sJ t          ||           t          j        d                    d          gdg          } t          j        d                    d          d	                    d          ggdd
g          }t          j        t          j        dt          j                  dgd
g          }t          j        ddgd
g          }| j                            ||          }|j        |j        k    sJ t          ||           d S )Ns   abcd,àutf-8s   abcd, àz(?<=\w),(?=\w)rS   , rd   re   s   BAcd,àrh   abBA)
r    r!   decoder3   r4   UNICODEr   r   r   r   )r7   r(   ra   r'   pat2r   s         r   test_replace_unicoder     s   \+227;;<==F|.55g>>?@@H
*&bj
9
9
9CZT**F<8>))))""" \+227;;<C5IIIF|

"
"7
+
+-=-D-DW-M-M	NO3Z  H <	%RZ	8	8	8%@u  D <tC5111DZd++F<8>))))"""""r   c                   t          j        dgdg                              |           }t          j         | d                    }|j                            |d          }t          j        dgdg                              |           }|j        |j        k    sJ t          ||           |j                            |dd          }t          j        d	gdg                              |           }|j        |j        k    sJ t          ||           t          j        t          j         | d                    t          j         | d
                    gdg          }|j                            |d          }t          j        ddggddg                              |           }|j        |j        k    sJ t          ||           t          j        ddgdg                              |           }|j                            ||d          }t          j        d	dggddg                              |           }|j        |j        k    sJ t          ||           t          j        dg                              |           }t          j         | d                    }t          j
        t          d          5  |j                            |dt          j                  }d d d            n# 1 swxY w Y   t          j
        t          d          5  |j                            |dd          }d d d            n# 1 swxY w Y   t          j
        t          d          5  |j                            |dd          }d d d            n# 1 swxY w Y   t          j        dg                              |           }d }t          j         | d                    }	|j                            |	|d          }t          j        dg                              |           }|j        |j        k    sJ t          ||           d S )Nr   rE   re   r   r   r   r   r   r   r   r   r   r   r   fooBAD__barBAD__badz1Flags cannot be set when pat is a compiled regex.rX   rS   0Case cannot be set when pat is a compiled regex.FrQ   Tc                P    |                      d                                          S r   r   r   s    r   r   z-test_replace_compiled_regex.<locals>.<lambda>  s    aggajj))++ r   r   r0   r   )r    r!   r2   r3   r4   r   r   r   r   r^   r_   r`   r]   )
r   r7   ra   r'   r(   r   r   pat3r   pat4s
             r   test_replace_compiled_regexr     s   \+,C5999@@GGF *UU9%%
&
&CZR((F|XJcU333::5AAH<8>))))"""ZR1--F|[M666==eDDH<8>))))""" <	EE)$$	%	%rz%%//'B'BC3%  D Zb))F|h
34C:FFFMMeTTH<8>))))"""<VC511188??DZda00F|k+;<=S#JOOOVV H <8>))))""" \012299%@@F:eeI&&''D	M
 
 
 C C ##D"BM#BBC C C C C C C C C C C C C C C
 
L
 
 
 : : ##D"5#99: : : : : : : : : : : : : : :
 
L
 
 
 9 9 ##D"4#889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 \+,--44U;;F++E:eeO,,--DZeq11F|-.//66u==H<8>))))"""""s6   (LL	L(MMM8N""N&)N&c                   t          j        ddgdg                              |           }t          j        ddgdg                              |           }|j                            dd          }|j        |j        k    sJ t          ||           t          j        ddgdg                              |           }|j                            ddd	          }|j        |j        k    sJ t          ||           t          j        dd
gdg                              |           }t          j        ddgddggddg                              |           }|j                            |d          }|j        |j        k    sJ t          ||           t          j        ddgddggddg                              |           }|j                            |dd	          }|j        |j        k    sJ t          ||           d }t          j        d          }d}t          j
        t          |          5  |j                            d|d	           d d d            n# 1 swxY w Y   d}t          j
        t          |          5  |j                            |dd	           d d d            d S # 1 swxY w Y   d S )Nzf.or,   rd   re   baozf.baFrZ   z.oyyfbac                P    |                      d                                          S r   r   r   s    r   r   z&test_replace_literal.<locals>.<lambda>   s    aggajj1133 r   r   z2Cannot use a callable replacement when regex=FalserX   abczCCannot use a compiled regex as replacement pattern with regex=Falser   )r    r!   r2   r   r   r   r   r3   r4   r^   r_   r`   )r   r7   r(   r'   ra   callable_replcompiled_patmsgs           r   test_replace_literalr     sU   \5%.u555<<UCCF|UEN#777>>uEEHZd++F<8>))))"""|UEN#777>>uEEHZd%88F<8>))))""" ,d|4&
1
1
1
8
8
?
?C|eU^eU^<C;OOOVV H ZT**F<8>))))"""|eU^eU^<C;OOOVV H ZT77F<8>))))""" 43M:o..L
>C	z	-	-	- > >
5-u===> > > > > > > > > > > > > > > PC	z	-	-	- : :
<5999: : : : : : : : : : : : : : : : : :s$   ?I))I-0I-J<<K K c                T    | d          }t          j        |          }t          j        dggddg                              |           }t          j        t          d          5  |j        	                    |d	           d d d            n# 1 swxY w Y   t          j        t          d          5  |j        	                    |d	           d d d            n# 1 swxY w Y   t          j        t          d          5  |j        
                    |d
d           d d d            n# 1 swxY w Y   t          j        t          d          5  |j        
                    |d
d           d d d            n# 1 swxY w Y   t          j        t          d          5  |j                            |           d d d            n# 1 swxY w Y   t          j        t          d          5  |j                            |           d d d            d S # 1 swxY w Y   d S )N.*r   rd   rh   re   z#No capture groups found in pattern.rX   ZZra   dimXXYYra   	group_dim	match_dimra   r3   r4   r    r!   r2   r^   r_   r`   r   extract
extractallfindallr   r8   r9   r   s       r   ,test_extract_extractall_findall_empty_raisesr  ,  s   eEllGZ  FL3%Sz22299%@@E	z)N	O	O	O 1 1	g40001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
z)N	O	O	O 0 0	f$///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
z)N	O	O	O J J	DDIIIJ J J J J J J J J J J J J J J 
z)N	O	O	O I I	44HHHI I I I I I I I I I I I I I I 
z)N	O	O	O ' '	g&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 
z)N	O	O	O & &	f%%%& & & & & & & & & & & & & & & & & &sl   (BBB7C  C$'C$D00D47D4F  FF&GGG4HH!$H!c                   d}t          j        |          }t          j        dggddg                              |           }t          j        t          d          5  |j        	                    |d            d d d            n# 1 swxY w Y   t          j        t          d          5  |j        	                    |d            d d d            d S # 1 swxY w Y   d S )	Nz(\w+)_(\d+)a_brd   rh   re   zDDimension must be specified if more than one capture group is given.rX   r   )
r3   r4   r    r!   r2   r^   r_   r`   r   r  r  s       r   test_extract_multi_None_raisesr  E  so   GZ  FL5'#s444;;EBBE	T
 
 
 1 1 		g4000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
T
 
 
 0 0 		f$///	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s$   BBB.CCCc                N   d}t          j        |          }t          j        dggddg                              |           }t          j        t          d          5  |j        	                    |dd	
           d d d            n# 1 swxY w Y   t          j        t          d          5  |j        	                    |dd	
           d d d            n# 1 swxY w Y   t          j        t          d          5  |j        
                    |ddd           d d d            n# 1 swxY w Y   t          j        t          d          5  |j        
                    |ddd           d d d            n# 1 swxY w Y   t          j        t          d          5  |j                            |d           d d d            n# 1 swxY w Y   t          j        t          d          5  |j                            |d           d d d            d S # 1 swxY w Y   d S )Nr   r   rd   rh   re   r   rX   Tr   )ra   rR   r   Fr   r   )ra   rR   r   r   ra   rR   r   r  s       r   .test_extract_extractall_findall_case_re_raisesr  X  s   GZ  FL3%Sz22299%@@E	L
 
 
 ; ; 		f4T:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
 
L
 
 
 < < 		f5d;;;< < < < < < < < < < < < < < <
 
L
 
 
 T T 		dddSSST T T T T T T T T T T T T T T
 
L
 
 
 U U 		ettTTTU U U U U U U U U U U U U U U
 
L
 
 
 1 1 		f40001 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 
L
 
 
 2 2 		f51112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2sl   B		BB/CC C?D**D.1D.E;;E?E?!G

GG0HH!Hc                   d}t          j        |          }t          j        dggddg                              |           }t          j        t          d          5  |j        	                    |d           d d d            n# 1 swxY w Y   t          j        t          d          5  |j        	                    |d           d d d            n# 1 swxY w Y   t          j        t          d	          5  |j        
                    |dd
           d d d            n# 1 swxY w Y   t          j        t          d	          5  |j        
                    |dd           d d d            n# 1 swxY w Y   t          j        t          d          5  |j        
                    |dd           d d d            n# 1 swxY w Y   t          j        t          d          5  |j        
                    |dd           d d d            n# 1 swxY w Y   t          j        t          d          5  |j        
                    |d
d
           d d d            n# 1 swxY w Y   t          j        t          d          5  |j        
                    |d
d
           d d d            d S # 1 swxY w Y   d S )Nz(\w+)r   rd   rh   re   z+Dimension 'X' already present in DataArray.rX   r   z1Group dimension 'X' already present in DataArray.r   r   r   z1Match dimension 'Y' already present in DataArray.r   z9Group dimension 'ZZ' is the same as match dimension 'ZZ'.)r3   r4   r    r!   r2   r^   r_   KeyErrorr   r  r  r  s       r   -test_extract_extractall_name_collision_raisesr  }  s8   GZ  FL3%Sz22299%@@E	x'T	U	U	U 0 0	g3///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
x'T	U	U	U / /	f#.../ / / / / / / / / / / / / / / 
K
 
 
 I I 		C4HHHI I I I I I I I I I I I I I I
 
K
 
 
 H H 		3$GGGH H H H H H H H H H H H H H H
 
K
 
 
 I I 		DCHHHI I I I I I I I I I I I I I I
 
K
 
 
 H H 		43GGGH H H H H H H H H H H H H H H
 
S
 
 
 J J 		DDIIIJ J J J J J J J J J J J J J J
 
S
 
 
 I I 		44HHHI I I I I I I I I I I I I I I I I Is   BBB.CCC=D''D+.D+E77E;>E;GGG-HHH=I''I+.I+J88J<?J<c                   d}| t           j        k    r|nt          |d          }t          j        |          }t          j        g dg dgddg                              |           }t          j        g d	g d
gddg                              |           }t          j        dgdgdggdgdgdgggg d                              |           }|j        	                    |d           }|j        	                    |d          }|j        	                    |d d          }	|j        	                    |dd          }
|j        	                    |d           }|j        	                    |d          }|j
        |j
        k    sJ |j
        |j
        k    sJ |	j
        |j
        k    sJ |
j
        |j
        k    sJ |j
        |j
        k    sJ |j
        |j
        k    sJ t          ||           t          ||           t          |	|           t          |
|           t          ||           t          ||           d S )N(\w+)_Xy_\d*UTF-8encodinga_Xy_0z ab_xY_10-bab_Xy_110-baab_Xy_1100zabc_Xy_01-cbc_Xy_2210$abcd_Xy_-dcd_Xy_33210-dccd_Xy_332210r   abcdef_Xy_101-fef_Xy_5543210rd   rh   re   )r   babr   abcdr   abcdefr   r  r   r  r   r  rd   rh   r   r   r   Tra   r   rR   rH   r   r
   r3   r4   r    r!   r2   r   r  r   r   )r   r8   r9   pat_compiledr   	targ_nonetarg_dimres_str_noneres_str_dimres_str_none_caseres_str_dim_caseres_re_none
res_re_dims                r   test_extract_single_caser)    s   GBK''U7W-M-M-M  :f%%LLSSS  	
 3Z
 
 
 fUmm 
 			4445S#J  fUmm  |%%5'	"fXthZ$@AHXHXHX  fUmm  9$$d$;;L)##T#::K	))g4d)KKy((W$T(JJ)##$#??K""|">>J0000...."io5555!X^3333	////x~----y)))h'''"I...!8,,,i(((X&&&&&r   c                   d}| t           j        k    r|nt          |d          }t          j        |t          j                  }t          j        g dg dgddg	                              |           }t          j        g d
g dgddg	                              |           }t          j        dgdgdggdgdgdgggg d	                              |           }|j	        
                    |d d          }|j	        
                    |dd          }|j	        
                    |d           }	|j	        
                    |d          }
|
j        |j        k    sJ |j        |j        k    sJ |	j        |j        k    sJ |
j        |j        k    sJ t          ||           t          ||           t          |	|           t          |
|           d S )Nz(\w+)?_Xy_\d*r  r  rS   r  )r  _Xy_1r  rd   rh   re   )r   r   r   r  r   r   r   r  r   r  r  Fr  r   r   rH   r   r
   r3   r4   r]   r    r!   r2   r   r  r   r   )r   r8   r9   r   r   r!  r"  r#  r$  r'  r(  s              r   test_extract_single_nocaser-    s.   GBK''U7W-M-M-M  :fBM:::LLSSS  	
 3Z
 
 
 fUmm 
 			3334C:  fUmm  |%$%	!VHrdXJ#?@GWGWGW  fUmm  9$$d$GGL)##T#FFK)##$#??K""|">>Jy........	////x~----y)))h'''i(((X&&&&&r   c                   d}| t           j        k    r|nt          |d          }t          j        |          }t          j        g dg dgddg                              |           }t          j        d	d
gddgddggddgddgddgggg d                              |           }|j        	                    |d          }|j        	                    |d          }|j        	                    |dd          }|j
        |j
        k    sJ |j
        |j
        k    sJ |j
        |j
        k    sJ t          ||           t          ||           t          ||           d S )N(\w+)_Xy_(\d*)r  r  r  r  rd   rh   re   r   0r  110r   01r  r   r  101r  r   r   Tr  r  	r   r8   r9   r   r   r(   res_strres_reres_str_cases	            r   test_extract_multi_caser8    s   GBK''U7W-M-M-M  :f%%LLSSS  	
 3Z
 
 
 fUmm 
 |3Z%%7b\B8h%67	
    fUmm  iG66GY<T::F9$$d$FFL=HN****<8>))))////(###"""x(((((r   c                j   d}| t           j        k    r|nt          |d          }t          j        |t          j                  }t          j        g dg dgddg	                              |           }t          j        d
dgddgddggddgddgddgggg d	                              |           }|j	        
                    |dd          }|j	        
                    |d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )Nr/  r  r  rS   r  r  rd   rh   re   r   r0  r   10r   r2  r  r   r  r3  r  r   Fr  r   r,  r   r8   r9   r   r   r(   r5  r6  s           r   test_extract_multi_nocaser<  *  s}   GBK''U7W-M-M-M  :fBM:::LLSSS  	
 3Z
 
 
 fUmm 
 |3Z$t}5b\B8h%67	
    fUmm  iGEBBGY<T::F=HN****<8>))))(###"""""r   c                h   t          j        g ddg                              |           }t          j        ddgdg                              |           }|j                            |          }dd	gd
d
ggd
d
gddggddgd
d
ggg}t          j        |g d                              |           }|j                            |d          }|j                            |d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )Nr  ab_xY_10	abc_Xy_01rd   re   r/  (\w+)_xY_(\d*)rh   r   r   r0  r   r   r:  r   r2  )rd   rh   ZzrB  r   )r    r!   r2   r   _re_compiler  r   r   )r   r   r8   r   expected_listr(   r5  r6  s           r   test_extract_broadcastrE  O  sn   L+++U   fUmm 

 l	-.U   fUmm  9((W(55L sb"X
bD$< 
R!M
 |M0@0@0@AAAHHOOHiG66GY<T::F=HN****<8>))))(###"""""r   c                   d}| t           j        k    r|nt          |d          }t          j        |          }t          j        g dg dgddg                              |           }t          j        d	ggd
ggdgggdggd
ggdggggg d                              |           }|j        	                    |dd          }|j        	                    |dd          }|j        	                    |ddd          }|j
        |j
        k    sJ |j
        |j
        k    sJ |j
        |j
        k    sJ t          ||           t          ||           t          ||           d S )Nr  r  r  r>  abcd_Xy_r   abcdef_Xy_101rd   rh   re   r   r   r   r  r  rd   rh   r   r   r   r   r   Tra   r   r   rR   rH   r   r
   r3   r4   r    r!   r2   r   r  r   r   r4  s	            r   "test_extractall_single_single_caserM  l  s   GBK''U7W-M-M-M  :f%%LL	,	,	,.O.O.OP3Z   fUmm 

 |5'RD6UG9	%&
bTFhZL'IJ###   fUmm 
 i""w$$"OOGY!!ldd!SSF9''tt$ (  L =HN****<8>))))////(###"""x(((((r   c                n   d}| t           j        k    r|nt          |d          }t          j        |t          j                  }t          j        g dg dgddg	                              |           }t          j        d
ggdggdgggdggdggdggggg d	                              |           }|j	        
                    |ddd          }|j	        
                    |dd          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )Nr  r  r  rS   r>  rG  rd   rh   re   r   r   r   r  r   r  rJ  r   r   FrK  r   rH   r   r
   r3   r4   Ir    r!   r2   r   r  r   r   r;  s           r   $test_extractall_single_single_nocaserQ    sz   GBK''U7W-M-M-M  :fBD111LL	,	,	,.O.O.OP3Z   fUmm 

 |5'TF8ugY	'F8*tfzl)KL###   fUmm 
 i""tt% #  G Y!!ldd!SSF=HN****<8>))))(###"""""r   c                   d}| t           j        k    r|nt          |d          }t          j        |          }t          j        g dg dgddg                              |           }t          j        d	gd
gd
ggdgdgd
ggdgdgd
gggdgdgdggd
gd
gd
ggdgdgd
ggggg d                              |           }|j        	                    |dd          }|j        	                    |dd          }|j        	                    |ddd          }|j
        |j
        k    sJ |j
        |j
        k    sJ |j
        |j
        k    sJ t          ||           t          ||           t          ||           d S )Nr  r  r  r  r  rd   rh   re   r   r   r  baabr   cbcr  dcddccdr  fefrJ  r   r   r   TrK  rL  r4  s	            r   !test_extractall_single_multi_caserX    s    GBK''U7W-M-M-M  :f%%LLSSS  	
 3Z
 
 
 fUmm 
 |ebTB4 E7VHrd";ugwQSPT=UVE7VH-tbT"eWrd+	
 $##
 
 
 fUmm  i""w$$"OOGY!!ldd!SSF9''tt$ (  L =HN****<8>))))////(###"""x(((((r   c                   d}| t           j        k    r|nt          |d          }t          j        |t          j                  }t          j        g dg dgddg	                              |           }t          j        d
gdgdggdgdgdggdgdgdgggdgdgdggdgdgdggdgdgdggggg d	                              |           }|j	        
                    |ddd          }|j	        
                    |dd          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )Nr  r  r  rS   r  r  rd   rh   re   r   r   r   r  rS  r   rT  r  rU  rV  r  rW  rJ  r   r   FrK  r   rO  r;  s           r   #test_extractall_single_multi_nocaserZ    s   GBK''U7W-M-M-M  :fBD111LLSSS  	
 3Z
 
 
 fUmm 
 | rd#%6(+5'B4( E7VH-tbT"eWrd+	
 $##   fUmm   i""tt% #  G Y!!ldd!SSF=HN****<8>))))(###"""""r   c                   d}| t           j        k    r|nt          |d          }t          j        |          }t          j        g dg dgddg                              |           }t          j        d	d
ggddggddgggddggddggddggggg d                              |           }|j        	                    |dd          }|j        	                    |dd          }|j        	                    |ddd          }|j
        |j
        k    sJ |j
        |j
        k    sJ |j
        |j
        k    sJ t          ||           t          ||           t          ||           d S )Nr/  r  r  r>  rG  rd   rh   re   r   r0  r   r   r2  r  r  r3  rJ  r   r   r   TrK  rL  r4  s	            r   !test_extractall_multi_single_caser\    s   GBK''U7W-M-M-M  :f%%LL	,	,	,.O.O.OP3Z   fUmm 

 |Cj\RH:7rl^r2hZ8U*;)<=	
 $##   fUmm  i""w$$"OOGY!!ldd!SSF9''tt$ (  L =HN****<8>))))////(###"""x(((((r   c                z   d}| t           j        k    r|nt          |d          }t          j        |t          j                  }t          j        g dg dgddg	                              |           }t          j        d
dggddggddgggddggddggddggggg d	                              |           }|j	        
                    |ddd          }|j	        
                    |dd          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )Nr/  r  r  rS   r>  rG  rd   rh   re   r   r0  r   r:  r   r2  r  r   r  r3  rJ  r   r   FrK  r   rO  r;  s           r   #test_extractall_multi_single_nocaser^  )  s   GBK''U7W-M-M-M  :fBD111LL	,	,	,.O.O.OP3Z   fUmm 

 |Cj\T4L>UDM?;rl^r2hZ8U*;)<=	
 $##   fUmm  i""tt% #  G Y!!ldd!SSF=HN****<8>))))(###"""""r   c           	     (   d}| t           j        k    r|nt          |d          }t          j        |          }t          j        g dg dgddg                              |           }t          j        d	d
gddgddggddgddgddggddgddgddgggddgddgddggddgddgddggddgddgddggggg d                              |           }|j        	                    |dd           }|j        	                    |dd           }|j        	                    |ddd!"          }|j
        |j
        k    sJ |j
        |j
        k    sJ |j
        |j
        k    sJ t          ||           t          ||           t          ||           d S )#Nr/  r  r  r  r  rd   rh   re   r   r0  r   r  r1  rS  1100r   r2  rT  2210r  rU  33210rV  332210r  r3  rW  5543210rJ  r   r   r   TrK  rL  r4  s	            r    test_extractall_multi_multi_casere  I  s/   GBK''U7W-M-M-M  :f%%LLSSS  	
 3Z
 
 
 fUmm 
 | sb"XBx0&&!1B8<"b: "w/&(1CDbB8b"X.E"UI$6RA	
 $##   fUmm   i""w$$"OOGY!!ldd!SSF9''tt$ (  L =HN****<8>))))////(###"""x(((((r   c           	        d}| t           j        k    r|nt          |d          }t          j        |t          j                  }t          j        g dg dgddg	                              |           }t          j        d
dgddgddggddgddgddggddgddgddgggddgddgddggddgddgddggddgddgddggggg d 	                              |           }|j	        
                    |d!d"d#$          }|j	        
                    |d!d"%          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )&Nr/  r  r  rS   r  r  rd   rh   re   r   r0  r   r   r:  r  r1  rS  r`  r   r2  rT  ra  r  rU  rb  rV  rc  r  r3  rW  rd  rJ  r   r   FrK  r   rO  r;  s           r   "test_extractall_multi_multi_nocaserg  {  s   GBK''U7W-M-M-M  :fBD111LLSSS  	
 3Z
 
 
 fUmm 
 | sb"XBx0u~/?@"b: "w/&(1CDbB8b"X.E"UI$6RA	
 $##   fUmm   i""tt% #  G Y!!ldd!SSF=HN****<8>))))(###"""""r   c                x   t          j        g ddg                              |           }t          j        ddgdg                              |           }|j                            |          }dd	ggd
d
gggd
d
ggddgggddggd
d
gggg}t          j        |g d                              |           }|j                            |dd          }|j                            |dd          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )Nr>  rd   re   r/  rA  rh   r   r   r0  r   r   r:  r   r2  )rd   rh   ZXZYri  rj  r   )r    r!   r2   r   rC  r  r   r   )r   r   r8   r9   rD  r(   r5  r6  s           r   test_extractall_broadcastrk    s~   L+++U   fUmm 

 l	-.U   fUmm  Y""w"//F *Rz"r(tTl^$$-B8*%M
 |M0F0F0FGGGNNuUUHi""w$$"OOGY!!f!MMF=HN****<8>))))(###"""""r   c                    d}t          j          |                    }t          j        g dg dgddg                                         }dgg dggd	gg d
ggg} fd|D             }t          j        |t
          j                  }t          j        |ddg          }|j        	                    |          }|j        	                    |          }	|j        	                    |d          }
|j
        |j
        k    sJ |	j
        |j
        k    sJ |
j
        |j
        k    sJ t          ||           t          |	|           t          |
|           d S )Nr  r>  rG  rd   rh   re   r   r   r  r  c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                &    g | ]} |          S rA   rA   rD   rE   r   s     r   rF   zItest_findall_single_single_case.<locals>.<listcomp>.<listcomp>.<listcomp>  !    ,,,Qa,,,r   rA   rD   r   r   s     r   rF   z>test_findall_single_single_case.<locals>.<listcomp>.<listcomp>  .    888,,,,!,,,888r   rA   rD   zr   s     r   rF   z3test_findall_single_single_case.<locals>.<listcomp>  .    PPPQ8888a888PPPr   r   r   Tr
  r3   r4   r    r!   r2   rH   r   object_r   r  r   r   r   r8   r9   r   rD  expected_dtypeexpected_npr(   r5  r6  r7  s   `          r   test_findall_single_single_caser}    s   GZg''FL	,	,	,.O.O.OP3Z   fUmm 

 *-rE7';vhXJ=W&XMPPPP-PPPN(><<<K|KsCj999HiG,,GY6**F9$$t$<<L=HN****<8>))))////(###"""x(((((r   c                `    d}t          j          |          t           j                  }t          j        g dg dgddg                                         }dgd	gd
ggdgg dggg} fd|D             }t          j        |t          j                  }t          j        |ddg          }|j	        
                    |d          }|j	        
                    |          }	|j        |j        k    sJ |	j        |j        k    sJ t          ||           t          |	|           d S )Nr  rS   r>  rG  rd   rh   re   r   r   r   r  r  c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                &    g | ]} |          S rA   rA   rp  s     r   rF   zKtest_findall_single_single_nocase.<locals>.<listcomp>.<listcomp>.<listcomp>  rq  r   rA   rr  s     r   rF   z@test_findall_single_single_nocase.<locals>.<listcomp>.<listcomp>  rs  r   rA   rt  s     r   rF   z5test_findall_single_single_nocase.<locals>.<listcomp>  rv  r   rw  Fr
  r   r3   r4   rP  r    r!   r2   rH   r   ry  r   r  r   r   
r   r8   r9   r   rD  r{  r|  r(   r5  r6  s
   `         r   !test_findall_single_single_nocaser    s[   GZgbd333FL	,	,	,.O.O.OP3Z   fUmm 
  
2z"'M QPPP-PPPN(><<<K|KsCj999HiG%88GY6**F=HN****<8>))))(###"""""r   c                    d}t          j          |                    }t          j        g dg dgddg                                         }dgdd	gd
dggg dg ddggg} fd|D             }t          j        |t
          j                  }t          j        |ddg          }|j        	                    |          }|j        	                    |          }	|j        	                    |d          }
|j
        |j
        k    sJ |	j
        |j
        k    sJ |
j
        |j
        k    sJ t          ||           t          |	|           t          |
|           d S )Nr  r  r  rd   rh   re   r   r  rS  r   rT  r  rU  rV  r  rW  c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                &    g | ]} |          S rA   rA   rp  s     r   rF   zHtest_findall_single_multi_case.<locals>.<listcomp>.<listcomp>.<listcomp>  rq  r   rA   rr  s     r   rF   z=test_findall_single_multi_case.<locals>.<listcomp>.<listcomp>  rs  r   rA   rt  s     r   rF   z2test_findall_single_multi_case.<locals>.<listcomp>  rv  r   rw  r   Tr
  rx  rz  s   `          r   test_findall_single_multi_caser    s   GZg''FLSSS  	
 3Z
 
 
 fUmm 
 %0###u	
'M QPPP-PPPN(><<<K|KsCj999HiG,,GY6**F9$$t$<<L=HN****<8>))))////(###"""x(((((r   c                h    d}t          j          |          t           j                  }t          j        g dg dgddg                                         }dgg d	d
dggg dg ddggg} fd|D             }t          j        |t          j                  }t          j        |ddg          }|j	        
                    |d          }|j	        
                    |          }	|j        |j        k    sJ |	j        |j        k    sJ t          ||           t          |	|           d S )Nr  rS   r  r  rd   rh   re   r   )r   r  rS  r   rT  r  r  rW  c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                &    g | ]} |          S rA   rA   rp  s     r   rF   zJtest_findall_single_multi_nocase.<locals>.<listcomp>.<listcomp>.<listcomp>B  rq  r   rA   rr  s     r   rF   z?test_findall_single_multi_nocase.<locals>.<listcomp>.<listcomp>B  rs  r   rA   rt  s     r   rF   z4test_findall_single_multi_nocase.<locals>.<listcomp>B  rv  r   rw  Fr
  r   r  r  s
   `         r    test_findall_single_multi_nocaser  &  s|   GZgbd333FLSSS  	
 3Z
 
 
 fUmm 
 E!!!EN	
 $##u	
'M QPPP-PPPN(><<<K|KsCj999HiG%88GY6**F=HN****<8>))))(###"""""r   c                    d}t          j          |                    }t          j        g dg dgddg                                         }ddggg d	d
gggddggg ddgggg} fd|D             }t          j        |t
          j                  }t          j        |ddg          }|j        	                    |          }|j        	                    |          }	|j        	                    |d          }
|j
        |j
        k    sJ |	j
        |j
        k    sJ |
j
        |j
        k    sJ t          ||           t          |	|           t          |
|           d S )Nr/  r>  rG  rd   rh   re   r   r0  r   r2  r  r   r  r3  c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                F    g | ]}t          fd |D                       S )c              3  .   K   | ]} |          V  d S r   rA   rp  s     r   	<genexpr>zRtest_findall_multi_single_case.<locals>.<listcomp>.<listcomp>.<listcomp>.<genexpr>^  +      $$Qa$$$$$$r   tuplerr  s     r   rF   zHtest_findall_multi_single_case.<locals>.<listcomp>.<listcomp>.<listcomp>^  6    	0	0	0%$$$$!$$$
$
$	0	0	0r   rA   rt  s     r   rF   z=test_findall_multi_single_case.<locals>.<listcomp>.<listcomp>^  .    <<<Q	0	0	0	0a	0	0	0<<<r   rA   rD   wr   s     r   rF   z2test_findall_multi_single_case.<locals>.<listcomp>]  ;       AB<<<<!<<<  r   rw  r   Tr
  rx  rz  s   `          r   test_findall_multi_single_caser  P  s   GZg''FL	,	,	,.O.O.OP3Z   fUmm 
 *rUDM?+2,x/01-M   FS  N (><<<K|KsCj999HiG,,GY6**F9$$t$<<L=HN****<8>))))////(###"""x(((((r   c                t    d}t          j          |          t           j                  }t          j        g dg dgddg                                         }dd	ggd
dggddgggddggg ddgggg} fd|D             }t          j        |t          j                  }t          j        |ddg          }|j	        
                    |d          }|j	        
                    |          }	|j        |j        k    sJ |	j        |j        k    sJ t          ||           t          |	|           d S )Nr/  rS   r>  rG  rd   rh   re   r   r0  r   r:  r   r2  r  r   r  r3  c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                F    g | ]}t          fd |D                       S )c              3  .   K   | ]} |          V  d S r   rA   rp  s     r   r  zTtest_findall_multi_single_nocase.<locals>.<listcomp>.<listcomp>.<listcomp>.<genexpr>~  r  r   r  rr  s     r   rF   zJtest_findall_multi_single_nocase.<locals>.<listcomp>.<listcomp>.<listcomp>~  r  r   rA   rt  s     r   rF   z?test_findall_multi_single_nocase.<locals>.<listcomp>.<listcomp>~  r  r   rA   r  s     r   rF   z4test_findall_multi_single_nocase.<locals>.<listcomp>}  r  r   rw  Fr
  r   r  r  s
   `         r    test_findall_multi_single_nocaser  p  s   GZgbd333FL	,	,	,.O.O.OP3Z   fUmm 
 *t~72,x/01-M   FS  N (><<<K|KsCj999HiG%88GY6**F=HN****<8>))))(###"""""r   c                    d}t          j          |                    }t          j        g dg dgddg                                         }ddggd	d
gddggddgddgggddgddgddggg ddgddgggg} fd|D             }t          j        |t
          j                  }t          j        |ddg          }|j        	                    |          }|j        	                    |          }	|j        	                    |d          }
|j
        |j
        k    sJ |	j
        |j
        k    sJ |
j
        |j
        k    sJ t          ||           t          |	|           t          |
|           d S ) Nr/  r  r  rd   rh   re   r   r0  r  r1  rS  r`  r   r2  rT  ra  r  r   rU  rb  rV  rc  r  r3  rW  rd  c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                F    g | ]}t          fd |D                       S )c              3  .   K   | ]} |          V  d S r   rA   rp  s     r   r  zQtest_findall_multi_multi_case.<locals>.<listcomp>.<listcomp>.<listcomp>.<genexpr>  r  r   r  rr  s     r   rF   zGtest_findall_multi_multi_case.<locals>.<listcomp>.<listcomp>.<listcomp>  r  r   rA   rt  s     r   rF   z<test_findall_multi_multi_case.<locals>.<listcomp>.<listcomp>  r  r   rA   r  s     r   rF   z1test_findall_multi_multi_case.<locals>.<listcomp>  r  r   rw  r   Tr
  rx  rz  s   `          r   test_findall_multi_multi_caser    s   GZg''FLSSS  	
 3Z
 
 
 fUmm 
 3ZLU^ff-.T]UFO,	
 b\E7+fh-?@	 23	
-M   FS  N (><<<K|KsCj999HiG,,GY6**F9$$t$<<L=HN****<8>))))////(###"""x(((((r   c                    d}t          j          |          t           j                  }t          j        g dg dgddg                                         }dd	ggd
dgddgddggddgddgggddgddgddggg ddgddgggg} fd|D             }t          j        |t          j                  }t          j        |ddg          }|j	        
                    |d !          }|j	        
                    |"          }	|j        |j        k    sJ |	j        |j        k    sJ t          ||           t          |	|           d S )#Nr/  rS   r  r  rd   rh   re   r   r0  r   r:  r  r1  rS  r`  r   r2  rT  ra  r  r   rU  rb  rV  rc  r  r3  rW  rd  c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                F    g | ]}t          fd |D                       S )c              3  .   K   | ]} |          V  d S r   rA   rp  s     r   r  zStest_findall_multi_multi_nocase.<locals>.<listcomp>.<listcomp>.<listcomp>.<genexpr>  r  r   r  rr  s     r   rF   zItest_findall_multi_multi_nocase.<locals>.<listcomp>.<listcomp>.<listcomp>  r  r   rA   rt  s     r   rF   z>test_findall_multi_multi_nocase.<locals>.<listcomp>.<listcomp>  r  r   rA   r  s     r   rF   z3test_findall_multi_multi_nocase.<locals>.<listcomp>  r  r   rw  Fr
  r   r  r  s
   `         r   test_findall_multi_multi_nocaser    s   GZgbd333FLSSS  	
 3Z
 
 
 fUmm 
 3ZLD\E5>FF+;<T]UFO,	
 b\E7+fh-?@	 23	
-M   FS  N (><<<K|KsCj999HiG%88GY6**F=HN****<8>))))(###"""""r   c                    t          j        g ddg                                         }t          j        ddgdg                                         }|j                            |          }dgd	ggg g gd
gdggg} fd|D             }t          j        |t
          j                  }t          j        |ddg          }|j                            |          }|j                            |          }	|j	        |j	        k    sJ |	j	        |j	        k    sJ t          ||           t          |	|           d S )Nr>  rd   re   r  z\w+_Xy_(\d*)rh   r   r   r0  r   r2  c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                &    g | ]} |          S rA   rA   rp  s     r   rF   z@test_findall_broadcast.<locals>.<listcomp>.<listcomp>.<listcomp>  rq  r   rA   rr  s     r   rF   z5test_findall_broadcast.<locals>.<listcomp>.<listcomp>  rs  r   rA   rt  s     r   rF   z*test_findall_broadcast.<locals>.<listcomp>  rv  r   rw  )r    r!   r2   r   rC  rH   r   ry  r  r   r   )
r   r   r8   r9   rD  r{  r|  r(   r5  r6  s
   `         r   test_findall_broadcastr    sn   L+++U   fUmm 

 l	/*U   fUmm  Y""w"//F),u~Bx5'D6AR&SMPPPP-PPPN(><<<K|KsCj999HiG,,GY6**F=HN****<8>))))(###"""""r   c                z   t          j        g d                              |           }|j                            d          }|j        dz  }t          j        g d                              |           }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )Nr   r   r   drG   )aaabbbcccdddr    r!   r2   r   repeatr   r   )r   r7   r'   
result_mulr(   s        r   test_repeatr    s    \...//66u==FZq!!FaJ|88899@@GGH<8>))))x~----X&&&"""""r   c                   t          j        g ddg                              |           }t          j        ddgdg          }|j                            |          }|j        |z  }t          j        ddgd	d
gddgddggddg                              |           }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )Nr  rd   re   rG   r1   rh   r  aaaar  bbbbr  ccccr  ddddr  )r   r7   repsr'   r  r(   s         r   test_repeat_broadcastr    s   \...cU;;;BB5IIF<AcU+++DZt$$Fd"J|
5&/E6?UFOL3Z   fUmm 
 <8>))))x~----X&&&"""""r   c                   t          j        ddg                              |           }|j                            d          }|j                            |          }t          j        ddg          }|j        |j        k    sJ t          ||           |j                            t          j	        |                    }|j        |j        k    sJ t          ||           |j                            d          }|j                            |          }t          j        ddg          }|j        |j        k    sJ t          ||           |j                            t          j	        |                    }|j        |j        k    sJ t          ||           |j                            d          }|j                            |d          }t          j        ddg          }|j        |j        k    sJ t          ||           |j                            t          j	        |t          j
        	                    }|j        |j        k    sJ t          ||           d S )
Nr   r,   z.*(BAD[_]+).*(BAD)TFz.*BAD[_]+.*BADz.*bAd[_]+.*badrQ   rS   )r    r!   r2   r   r[   r   rY   r   r3   r4   r]   r|   s        r   
test_matchr  %  s.   \+U344;;EBBF ,

0
1
1CZc""F|T5M**H<8>))))"""Zbjoo..F<8>))))""" ,

,
-
-CZc""F|T5M**H<8>))))"""Zbjoo..F<8>))))""" ,

,
-
-CZc..F|T5M**H<8>))))"""ZbjBMBBBCCF<8>))))"""""r   c                    t          j        t          j        dd                    } | }t          j        t          j        dt                              }t          j        t          j        dt
                              }t          j        t          j        dd                    }|j        | j                            d          j        k    sJ |j        | j        	                    d          j        k    sJ |j        | j        
                    d          j        k    sJ |j        | j                            d          j        k    sJ |j        | j                                        j        k    sJ |j        | j                                        j        k    sJ |j        | j                                        j        k    sJ |j        | j                                        j        k    sJ |j        | j                                        j        k    sJ |j        | j                                        j        k    sJ |j        | j                                        j        k    sJ |j        | j                                        j        k    sJ |j        | j                                        j        k    sJ |j        j        | j                            d          j        j        k    sJ |j        j        | j                            d          j        j        k    sJ |j        j        | j                            d          j        j        k    sJ |j        j        | j                                        j        j        k    sJ |j        j        | j                            d          j        j        k    sJ |j        j        | j                                        j        j        k    sJ |j        j        | j                            d          j        j        k    sJ |j        j        | j                            d	          j        j        k    sJ |j        j        | j                                        j        j        k    sJ |j        j        | j                                        j        j        k    sJ |j        j        | j                             d          j        j        k    sJ |j        j        | j        !                    d
          j        j        k    sJ |j        j        | j        "                                j        j        k    sJ |j        j        | j        #                    d          j        j        k    sJ |j        j        | j        #                    d          j        j        k    sJ |j        j        | j        $                                j        j        k    sJ |j        j        | j        %                                j        j        k    sJ |j        j        | j        &                                j        j        k    sJ |j        j        | j        '                                j        j        k    sJ |j        j        | j        (                    d          j        j        k    sJ |j        j        |j        )                    d          j        j        k    sJ tU          || j                            d                     tU          || j        	                    d                     tU          || j        
                    d                     tU          || j                            d                     tU          || j                                                   tU          || j                                                   tU          || j                                                   tU          || j                                                   tU          || j                                                   tU          || j                                                   tU          || j                                                   tU          || j                                                   tU          || j                                                   tU          || j                            d                     tU          || j                            d                     tU          || j                            d                     tU          || j                                                   tU          || j                            d                     tU          || j                                                   tU          || j                            d                     tU          || j                            d	                     tU          || j                                                   tU          || j                                                   tU          || j                             d                     tU          || j        !                    d
                     tU          || j        +                    dd                     tU          || j        "                                           tU          || j        #                    d                     tU          || j        #                    d                     tU          || j        $                                           tU          || j        %                                           tU          || j        &                                           tU          || j        '                                           tU          || j        (                    d                     tU          ||j        )                    d                     t          ,                    dd          }|j        j        | j        -                    |          j        j        k    sJ tU          || j        -                    |                     d S )N)r   U)shaper   Sr   z^aascii*   r   rG   r   )step)stopr   ).r    r!   rH   emptyintboolr   r   r\   rv   rY   ru   isalnumisalpha	isdecimalisdigitislower	isnumericisspaceistitleisupperkindencoder5   findr"   rfindr   centergetr   lstrippadr  rstripslicestripr   r   r   wrapr   r   r   	maketrans	translate)r  	empty_str	empty_int
empty_boolempty_bytestables         r   test_empty_str_methodsr  G  sd
   LC88899EIRXD<<<==IbhT>>>??J,rxd#>>>??K
 uy11#66<<<<<uy11#66<<<<<uyt44:::::uy33C88>>>>>uy002288888uy002288888uy2244:::::uy002288888uy002288888uy2244:::::uy002288888uy002288888uy002288888!UY%5%5g%>%>%D%IIIII?59??3#7#7#=#BBBBB?59>>##6#6#<#AAAAA?59==??#8#=====?59??3#7#7#=#BBBBB?59#7#7#9#9#?#DDDDD?59#3#3B#7#7#=#BBBBB?59==#3#3#9#>>>>>?59??#4#4#:#??????59#3#3#5#5#;#@@@@@?59==#4#4#:#??????59#3#3A#6#6#<#AAAAA?59#3#3#5#5#;#@@@@@?59???#:#:#@#EEEEE?59???#:#:#@#EEEEE?59??#4#4#:#??????59#5#5#7#7#=#BBBBB?59??#4#4#:#??????59??#4#4#:#??????59>>"#5#5#;#@@@@@?;?#9#9'#B#B#H#MMMMMUY//44555UY//44555UY__T22333UY11#66777UY..00111UY..00111UY0022333UY..00111UY..00111UY0022333UY..00111UY..00111UY..00111ei..w77888EIOOC00111EINN3//000EIMMOO,,,EIOOC00111EI0022333EI,,R00111EIMM!,,---EIOO--...EI,,..///EIMM"--...EI,,Q//000EI--c377888EI,,..///EIOOO33444EIOOO33444EIOO--...EI..00111EIOO--...EIOO--...EINN2..///KO227;;<<<MM#s##E?59#6#6u#=#=#C#HHHHHEI//6677777r   funcr(   c                4    | j                                         S r   )r   r  rE   s    r   r   r         aemmoo r   )
TTTTTFTTFFr  c                4    | j                                         S r   )r   r  r  s    r   r   r     r  r   )
TTTFFFTFFFr  c                4    | j                                         S r   )r   r  r  s    r   r   r     r  r   )
FFFTFFFTFFr  c                4    | j                                         S r   )r   r  r  s    r   r   r     r  r   )
FTFFFFFFFFr  c                4    | j                                         S r   )r   r  r  s    r   r   r     r  r   )
FFFFFFFFFTr  c                4    | j                                         S r   )r   r  r  s    r   r   r     r  r   )
TFTFTFFFFFr  c                4    | j                                         S r   )r   r  r  s    r   r   r     r  r   )
TFFFTFTFFFr  &Callable[[xr.DataArray], xr.DataArray]
list[bool]c                    t          j        g d                              |           }t          j        |          } ||          }|j        |j        k    sJ t	          ||           d S )N)
r   r   Xy43Ar   TT55-z  )r    r!   r2   r   r   )r   r  r(   r7   expected_daactuals         r   test_ismethodsr    sw    V \>>> fUmm  ,x((KT&\\F<;,,,,,%%%%%r   c                 v   t          j        g d          } t          j        g d          }t          j        g d          }| j                                        }| j                                        }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )N)r   3   ¼u   ★u   ፸u   ３four)FTTFTTF)FTFFFTF)r    r!   r   r  r  r   r   )r7   exp_numericexp_decimalres_numericres_decimals        r   test_isnumericr    s    
 \GGGHHF,LLLMMK,NNNOOK*&&((K*&&((K 11111 11111k***k*****r   c                
   g d}t          j        |                              |           j                                        }t          j        d |D                       }|j        |j        k    sJ t          ||           d S )N)r,   fooofooooofoooooooc                ,    g | ]}t          |          S rA   )r"   rC   s     r   rF   ztest_len.<locals>.<listcomp>  s    444SVV444r   )r    r!   r2   r   r"   r   r   rw   s       r   test_lenr    s    222F\&!!((//37799F|44V44455H<8>))))"""""r   c                "    t          j        g d          }|                               }|j                            d          }|j                            dd          }t          j        g d          }t          j         fd|j        D                       }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           t          ||           t          ||           |j                            d          }|j                            dd          }t          j        g d          }t          j         fd	|j        D                       }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           t          ||           t          ||           |j                            dd
          }|j                            dd
d          }t          j        g d          }t          j         fd|j        D                       }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           t          ||           t          ||           |j                            dd
          }|j                            dd
d          }t          j        g d          }t          j         fd|j        D                       }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           t          ||           t          ||           |j                            dd
d          }|j                            dd
dd          }t          j        g d          }t          j         fd|j        D                       }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           t          ||           t          ||           |j                            dd
d          }|j                            dd
dd          }t          j        g d          }t          j         fd|j        D                       }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           t          ||           t          ||           d S )NABCDEFGBCDEFEF	DEFGHIJEFEFGHEFXXXEFleftside)r1   rG   r   r   r   c                L    g | ] }|                      d                     !S r  r  rD   vr   s     r   rF   ztest_find.<locals>.<listcomp>  s-    JJJqqvveeDkk22JJJr   right)r1         r1   r   c                L    g | ] }|                      d                     !S r#  r  r%  s     r   rF   ztest_find.<locals>.<listcomp>  s-    KKKqwwuuT{{33KKKr   rG   )r1   rG   r)  r1   r   c                N    g | ]!}|                      d           d          "S r  rG   r$  r%  s     r   rF   ztest_find.<locals>.<listcomp>  s/    MMM!qvveeDkk155MMMr   c                N    g | ]!}|                      d           d          "S r-  r+  r%  s     r   rF   ztest_find.<locals>.<listcomp>  s/    NNN1qwwuuT{{A66NNNr      )r1   rG   r   r1   r   c                P    g | ]"}|                      d           dd          #S r  rG   r/  r$  r%  s     r   rF   ztest_find.<locals>.<listcomp>)  s1    PPPQqvveeDkk1a88PPPr   c                P    g | ]"}|                      d           dd          #S r1  r+  r%  s     r   rF   ztest_find.<locals>.<listcomp>6  s1    QQQaqwwuuT{{Aq99QQQr   )	r    r!   r2   r   r  r7   r   r   r  )r   r7   result_0result_1
expected_0
expected_1s   `     r   	test_findr7    sB   \NNNOOF]]5!!Fzt$$Hzt&11H...//JJJJJFMJJJKKJ>Z----->Z----->Z----->Z-----:&&&:&&&:&&&:&&&z%%Hzt'22H...//JKKKKV]KKKLLJ>Z----->Z----->Z----->Z-----:&&&:&&&:&&&:&&&ztQ''HztQV44H...//JMMMMv}MMMNNJ>Z----->Z----->Z----->Z-----:&&&:&&&:&&&:&&&za((HztQW55H...//JNNNNNNNOOJ>Z----->Z----->Z----->Z-----:&&&:&&&:&&&:&&&ztQ**HztQ77H///00JPPPP&-PPPQQJ>Z----->Z----->Z----->Z-----:&&&:&&&:&&&:&&&za++HztQ88H///00JQQQQ6=QQQRRJ>Z----->Z----->Z----->Z-----:&&&:&&&:&&&:&&&&&r   c           
     >   t          j        g ddg          }|                    |           }t          j        g ddg                              |           }t          j        ddgdg          }t          j        d	d
gdg          }|j                            |||          }|j                            |||d          }t          j        ddgddgddggddgddgddggddgddgddggddgddgddggddgddgddgggg d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           |j                            |||          }|j                            |||d          }t          j        ddgddgddggddgddgddggddgddgddggddgddgddggddgddgddgggg d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )Nr  rd   re   )r  BCr   rh   r   r)  Zr/  	   r  r   r1   r   r   rG   rd   rh   r:  r'  )r    r!   r2   r   r  r   r   r  r   r7   substartendr3  r4  r(   s           r   test_find_broadcastrA  A  s   \<<<C5  F ]]5!!F
,)))
6
6
6
=
=e
D
DCL!Qse,,,E
,1vSE
*
*
*CzsE3//HzsE3V<<H|Wq"gBx(Wq"gBx(Vb"XBx(Wr2hR)"XBx!R)	
 __	 	 	H >X^++++>X^++++8$$$8$$$zUC00HzsE3W==H|Wq"gBx(Wq"gBx(Vb"XBx(Wr2hR)"XBx!R)	
 __	 	 	H >X^++++>X^++++8$$$8$$$$$r   c                   t          j        g d                              |           }|j                            d          }|j                            dd          }t          j        g d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           |j                            d          }|j                            dd          }t          j        g d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           |j                            dd          }|j                            ddd          }t          j        g d	          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           |j                            dd          }|j                            ddd          }t          j        g d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           |j                            d
dd          }|j                            d
ddd          }t          j        g d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           |j                            d
dd          }|j                            d
ddd          }t          j        g d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           | t          j	        k    rdnd}t          j        t          | d          5  |j                            d           d d d            d S # 1 swxY w Y   d S )N)r  r  r  r  r  r  r   )r1   rG   r   r   r'  )r1   r(  r)  r1   rG   )r1   rG   r)  r1   Er1      r   r(  )r1   rG   r   r1   
subsection	substringz
 not foundrX   DE)r    r!   r2   r   indexr   r   rindexrH   r   r^   r_   r`   )r   sr3  r4  r(   	matchtypes         r   
test_indexrL  o  s   
BBBCCJJ5QQAu{{4  Hu{{4f{--H|LLL))H>X^++++>X^++++8$$$8$$$u||D!!Hu{{4g{..H|LLL))H>X^++++>X^++++8$$$8$$$u{{4##Hu{{4{00H|LLL))H>X^++++>X^++++8$$$8$$$u||D!$$Hu{{4{11H|LLL))H>X^++++>X^++++8$$$8$$$u{{31%%Hu{{316{22H|LLL))H>X^++++>X^++++8$$$8$$$u||CA&&Hu{{317{33H|LLL))H>X^++++>X^++++8$$$8$$$ % 2 2I	zI)A)A)A	B	B	B  	D                 s   O00O47O4c                   t          j        g ddg          }|                    |           }t          j        ddgdg                              |           }t          j        ddgd	g          }t          j        dd
gd	g          }|j                            |||          }|j                            |||d          }t          j        ddgddggddgddggddgddggddgddgggg d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           |j                            |||          }|j                            |||d          }t          j        ddgddggddgddggddgddggddgddgggg d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )N)ABCDEFGEFDBCABCDEFEFEFDBCDEFBCGHIEFBCEFGHBCEFBCBCBCEFrd   re   r  r9  rh   r   r/  r:     r  r   r1   r)  r   
   rG   rD  r<  r'  )r    r!   r2   r   rH  r   r   rI  r=  s           r   test_index_broadcastrT    s[   \MMMU  F ]]5!!F
,d|3%
0
0
0
7
7
>
>CL!Qse,,,E
,2wcU
+
+
+CzUC00HzUCf==H|a&1b'	aVaW-AB/@Aq6Aq6BRS__  H
 >X^++++>X^++++8$$$8$$$z  eS11HzUCg>>H|a&1b'	aVaW-AB/@Aq6Ar7BST__  H
 >X^++++>X^++++8$$$8$$$$$r   c                    t          j        g d          } t                              dd          }| j                            |          }t          j        g d          }|j        |j        k    sJ t          ||           d S )N)abcdefgabcccdddfgcdefgggr   cde)cdedefgcdeeedddfgedefggg)r    r!   r   r  r  r   r   )r7   r  r'   r(   s       r   test_translater_    s    \BBBCCFMM%''EZ!!%((F|DDDEEH<8>))))"""""r   c                *   t          j        g d                              |           }|j                            d          }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j                            dd          }|j        |j        k    sJ t          ||           |j                            d          }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j                            dd          }|j        |j        k    sJ t          ||           |j        	                    d          }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j                            dd	          }|j        |j        k    sJ t          ||           d S )
N)r   r   r   eeeeer(  )z  a  z  b  z  c  ra  bothr   )za    zb    zc    ra  r'  )z    az    bz    cra  r  
r    r!   r2   r   r  r   r   r  ljustrjustrw   s       r   test_pad_center_ljust_rjustrf    s   \22233::5AAFZq!!F|@@@AAHHOOH<8>))))"""Z^^AF^++F<8>))))"""Za  F|@@@AAHHOOH<8>))))"""Z^^AG^,,F<8>))))"""Za  F|@@@AAHHOOH<8>))))"""Z^^AF^++F<8>))))"""""r   c                   t          j        g d                              |           }|j                            dd          }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j                            ddd          }|j        |j        k    sJ t          ||           |j                            dd          }t          j        g d                              |           }|j        |j        k    sJ t          ||                    |                      |j                            dd	d          }|j        |j        k    sJ t          ||           |j        	                    dd          }t          j        g d
                              |           }|j        |j        k    sJ t          ||                    |                      |j                            ddd          }|j        |j        k    sJ t          ||           d}t          j        t          |                    d                    5  |j                            dd           d d d            n# 1 swxY w Y   t          j        t          |                    d                    5  |j                            dd           d d d            n# 1 swxY w Y   t          j        t          |                    d                    5  |j        	                    dd           d d d            n# 1 swxY w Y   t          j        t          |                    d                    5  |j                            dd           d d d            d S # 1 swxY w Y   d S )Nr   bbr  dddddeeeeeer(  rd   fillchar)XXaXXXXbbXXccccrj  rk  rb  r!  rm  )aXXXXbbXXXccccXrj  rk  r'  )XXXXaXXXbbrp  rj  rk  r  z)fillchar must be a character, not {dtype}r   rw  rX   XY)r    r!   r2   r   r  r   r   r  rd  re  r^   r_   	TypeErrorformat)r   r7   r'   r(   templates        r   $test_pad_center_ljust_rjust_fillcharr{    s   \@@@AAHHOOFZq3//F|JJJKKRR H <8>))))"""Z^^AFS^99F<8>))))"""Za#..F|JJJKKRR H <8>))))//000Z^^AGc^::F<8>))))"""Za#..F|JJJKKRR H <8>))))//000Z^^AFS^99F<8>))))"""
 ;H	ye(D(D	E	E	E , ,
!d+++, , , , , , , , , , , , , , , 
ye(D(D	E	E	E + +
T***+ + + + + + + + + + + + + + + 
ye(D(D	E	E	E + +
T***+ + + + + + + + + + + + + + + 
ye(D(D	E	E	E ) )
q4((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )sH   3JJ #J K??LL9M""M&)M&OO
O
c                x   t          j        g dd                              |           }t          j        ddgd          }t          j        ddgd                              |           }|j                            ||          }t          j        d	d
gddgddgddgddggddg                              |           }|j        |j        k    sJ t          ||           |j                            |d|          }|j        |j        k    sJ t          ||           |j                            ||          }t          j        ddgddgddgddgddggddg                              |           }|j        |j        k    sJ t          ||                    |                      |j                            |d|          }|j        |j        k    sJ t          ||           |j        	                    ||          }t          j        ddgddgddgddgddggddg                              |           }|j        |j        k    sJ t          ||                    |                      |j                            |d|          }|j        |j        k    sJ t          ||           d S )Nrh  rd   re   r(  r1   rh   #rl  rn  z#a##ro  z#bb#rp  r  rj  rk  rb  rq  rr  za###rs  zbb##rt  r'  ru  z###arv  z##bbr  rc  )r   r7   widthrm  r'   r(   s         r   %test_pad_center_ljust_rjust_broadcastr  "  s   \@@@sKKKRR F L!Qc***E|S#JS11188??HZux88F|fffgx 	
 3Z	 	 	 fUmm  <8>))))"""Z^^E^BBF<8>))))"""Zeh77F|fffgx 	
 3Z	 	 	 fUmm  <8>))))//000Z^^E(^CCF<8>))))"""Zeh77F|fffgx 	
 3Z	 	 	 fUmm  <8>))))//000Z^^E^BBF<8>))))"""""r   c                   t          j        g d                              |           }|j                            d          }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j                            d          }t          j        g d                              |           }|j        |j        k    sJ t          ||           d S )N122r  33345678r(  )000010002200aaa00333r  rG   )001022r  r  r  )r    r!   r2   r   zfillr   r   rw   s       r   
test_zfillr  ]  s    \<<<==DDUKKFZa  F|IIIJJQQRWXXH<8>))))"""Za  F|AAABBII%PPH<8>))))"""""r   c                N   t          j        g d                              |           }t          j        g d          }|j                            |          }t          j        g d                              |           }|j        |j        k    sJ t          ||           d S )Nr  )r1   r(  r   rG   rD  )0001r  r  r  00045678)	r    r!   r2   rH   r   r   r  r   r   )r   r7   r~  r'   r(   s        r   test_zfill_broadcastr  k  s    \<<<==DDUKKFH___%%EZe$$F|GGGHHOOPUVVH<8>))))"""""r   c           
     @   t          j        g d                              |           }|j                            dd          }t          j        g d                              |           }|j        |j        k    sJ t          ||           dD ]\  	 |j                 }t          j        fd|j        D                       }t          ||                    |                      b# t          $ r t          d d d             w xY wd S )	Naafootwoaabartwoaabazquxr0   r(  )r,   r{   baz))r   rG   r   )NNr   )rG   rS  r0   )rG   r   r   c                &    g | ]}|         S rA   rA   )rD   rJ  r?  r  r  s     r   rF   ztest_slice.<locals>.<listcomp>  s$    $L$L$LAQuT$%7$L$L$Lr   z
failed on :)
r    r!   r2   r   r  r   r   r7   
IndexErrorprint)r   r%   r'   r   r(   r?  r  r  s        @@@r   
test_slicer  u  sN   
,;;;
<
<
C
CE
J
JCW]]1a  F
,,,,
-
-
4
4U
;
;C<39$$$$S  tT	WU4_-F|$L$L$L$L$L$L$L$L$LMMH!7!78888 	 	 	4u44t44d44555	 s   AC77$Dc                V   t          j        g d                              |           }t          j        g d          }d}|j                            ||          }t          j        g d                              |           }|j        |j        k    sJ t          ||           d S )Nr  )r   r0   rG   r(  )r?  r  )afoor{   az)r    r!   r2   r   r  r   r   )r   r%   r?  r  r'   r   s         r   test_slice_broadcastr    s    
,;;;
<
<
C
CE
J
JCL##EDW]]T]22F
,,,,
-
-
4
4U
;
;C<39$$$$r   c                     fd} |g d          } |g d          }|j                             dd          }|j        |j        k    sJ t          ||            |g d          }|j                             ddd          }|j        |j        k    sJ t          ||            |g d          }|j                             ddd          }|j        |j        k    sJ t          ||            |g d          }|j                             dd	d          }|j        |j        k    sJ t          ||            |g d
          }|j                             dd d          }|j        |j        k    sJ t          ||            |g d          }|j                             d dd          }|j        |j        k    sJ t          ||            |g d          }|j                             ddd          }|j        |j        k    sJ t          ||            |g d          }|j                             ddd          }|j        |j        k    sJ t          ||           d S )Nc                R    t          j        |                                         S r   )r    r!   r2   )rE   r   s    r   r   z$test_slice_replace.<locals>.<lambda>  s    2<??))%00 r   shortza bit longerevenlongerthanthatr   )shrtza it longerevnlongerthanthatr   r0   rG   )shzrta zit longerevznlongerthanthatru  ru  )shzortza zbit longerevzenlongerthanthatru  r   )shorzza bit longezevenlongerthanthazru  r   )zrtzerzatru  )shortzza bit zngerevenlozerthanthatru  r/  rD  )r  r  evenlongzerthanthatru  i)r   slice_replacer   r   )r   r$   r7   r(   r'   s   `    r   test_slice_replacer    s   	0	0	0	0BRCCCDDFrBBBCCHZ%%a++F<8>))))"""rFFFGGHZ%%aC00F<8>))))"""rIIIJJHZ%%aC00F<8>))))"""rIIIJJHZ%%aC00F<8>))))"""rFFFGGHZ%%b$44F<8>))))"""r,,,--HZ%%dB44F<8>))))"""rEEEFFHZ%%aC00F<8>))))"""rEEEFFHZ%%c1c22F<8>))))"""""r   c                Z   t          j        g d                              |           }d}t          j        g d          }d}t          j        g d                              |           }|j                            |||          }|j        |j        k    sJ t          ||           d S )Nr  r0   )r1   r(  Nr)  test)shtesttza test longerevtestr  )	r    r!   r2   rH   r   r   r  r   r   )r   r7   r?  r  r   r(   r'   s          r   test_slice_replace_broadcastr    s    \MMMNNUU F E8OOO$$DD|JJJKKRR H Z%%eT488F<8>))))"""""r   c                   t          j        g d                              |           }|j                                        }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j                                        }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j                                        }t          j        g d                              |           }|j        |j        k    sJ t          ||           d S )N)z  aa   z bb 
cc  )aari  cc)zaa   zbb 
r  )z  aaz bbr  	r    r!   r2   r   r  r   r   r  r  rw   s       r   test_strip_lstrip_rstripr    s@   \77788??FFFZF|...//66u==H<8>))))"""Z  F|66677>>uEEH<8>))))"""Z  F|1112299%@@H<8>))))"""""r   c                   t          j        g d                              |           }|j                            d          }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j                            d          }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j                            d          }t          j        g d                              |           }|j        |j        k    sJ t          ||           d S )N)xxABCxxxx BNSDLDFJH xxrE   ABC BNSDLDFJH )ABCxxr  r  )xxABCr  r  r  rw   s       r   test_strip_lstrip_rstrip_argsr    sF   \<<<==DDUKKFZc""F|66677>>uEEH<8>))))"""Zs##F|:::;;BB5IIH<8>))))"""Zs##F|:::;;BB5IIH<8>))))"""""r   c                   t          j        g d                              |           }t          j        g d                              |           }|j                            |          }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j                            |          }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j                            |          }t          j        g d                              |           }|j        |j        k    sJ t          ||           d S )N)r  yy BNSDLDFJH zz)rE   r   ru  r  )r  r  r  )r  r  r  r  )r   r7   to_stripr'   r(   s        r   "test_strip_lstrip_rstrip_broadcastr    sg   \<<<==DDUKKF|OOO,,33E::HZh''F|66677>>uEEH<8>))))"""Zx((F|:::;;BB5IIH<8>))))"""Zx((F|:::;;BB5IIH<8>))))"""""r   c                    t          j        g d          } t          j        g d          }| j                            dd          }|j        |j        k    sJ t          ||           t          j        ddg          } t          j        dd	g          }| j                            d
          }|j        |j        k    sJ t          ||           d S )N)	hello worldhello world!zhello world!!abcdefabcdeabcdefabcdefabcdefabcdefazab ab ab ab zab ab ab ab a	)	r  r  zhello
world!!r  r  zabcdefabcdef
azab ab ab abzab ab ab ab
ar   rR  T)break_long_wordsz  pre  u   ¬€耀 abadcafez  preu   ¬€耀 ab
adcafer/  r    r!   r   r  r   r   )r7   r(   r'   s      r   	test_wrapr  		  s    
 \
	
 
	
 
	
 F |
	
 
	
 
	
 H Z__R$_77F<8>))))""" \9&EFGGF|W&GHIIHZ__QF<8>))))"""""r   c                 r   t          j        d          } | j                            d          }t          j        d          }|j        |j        k    sJ t          ||           | j                            dd          }t          j        d          }|j        |j        k    sJ t          ||           d S )Nz  hello world  r)  z  hello
worldF)drop_whitespacez  hello
 world
  r  )r7   r'   r(   s      r   test_wrap_kwargs_passedr  8	  s     \+,,FZ__QF|,--H<8>))))"""Z__Q_66F|122H<8>))))"""""r   c                   t          j        g d                              |           }|j        d         }t          j        g d                              |           }|j        |j        k    sJ t          ||           t          j        g d                              |           }|j        d         }t          j        g d                              |           }|j        |j        k    sJ t          ||           |j        d         }t          j        g d                              |           }|j        |j        k    sJ t          ||           d S )	Na_b_cc_d_ef_g_hr0   )r   r  g)	1_2_3_4_5
6_7_8_9_1011_12r(  )_r  r   i)r  8r   )r    r!   r2   r   r   r   rw   s       r   test_getr  H	  sI   \55566==eDDFZ]F|OOO,,33E::H<8>))))""" \>>>??FFuMMF Z]F|NNN++22599H<8>))))""" Z^F|NNN++22599H<8>))))"""""r   c                $   t          j        g d                              |           }|j                            dd          }t          j        g d                              |           }|j        |j        k    sJ t          ||           d S )N)r  r   r   r0   default)r   r  r  r    r!   r2   r   r  r   r   rw   s       r   test_get_defaultr  `	  s    \***++22599FZ^^Ay))F|77788??FFH<8>))))"""""r   c                p   t          j        g ddg                              |           }t          j        ddgdg          }|j                            |          }t          j        ddgd	d
gddggddg                              |           }|j        |j        k    sJ t          ||           d S )Nr  rd   re   r   r0   rh   r   r   r   r  fr  r  )r   r7   indsr'   r(   s        r   test_get_broadcastr  j	  s    \555SEBBBII%PPF<AcU+++DZ^^D!!F|
sc3Z#s,C:  fUmm  <8>))))"""""r   c                     t          j        g d          } | j                            d          }|j                            d          }| j        |j        k    sJ t          | |           d S )N)r   r   u   aär   )r    r!   r   r  r   r   r   )rm   encodeddecodeds      r   test_encode_decoder  v	  sk    <+++,,Dhoog&&Gk  ))G:&&&&wr   c                 x   t          j        g d          } d}t          j        t          |          5  | j                            d           d d d            n# 1 swxY w Y   d | j                            dd          }t          j        fd| j                                        D                       }|j	        |j	        k    sJ t          ||           t          j        g d          }d	}t          j        t          |          5  |j                            d           d d d            n# 1 swxY w Y   d
 |j                            dd          }t          j        fd|j                                        D                       }|j	        |j	        k    sJ t          ||           d S )N)r   r   u   az['charmap' codec can't encode character '\\x9d' in position 1: character maps to <undefined>rX   cp1252c                .    |                      dd          S Nr  ignore)r  r  s    r   r   z+test_encode_decode_errors.<locals>.<lambda>	      !((8X.. r   r  c                &    g | ]} |          S rA   rA   rD   rE   r  s     r   rF   z-test_encode_decode_errors.<locals>.<listcomp>	  !    FFFaQQqTTFFFr   )   a   bs   azS'charmap' codec can't decode byte 0x9d in position 1: character maps to <undefined>c                .    |                      dd          S r  )r   r  s    r   r   z+test_encode_decode_errors.<locals>.<lambda>	  r  r   c                &    g | ]} |          S rA   rA   r  s     r   rF   z-test_encode_decode_errors.<locals>.<listcomp>	  r   r   )r    r!   r^   r_   UnicodeEncodeErrorr   r  r7   tolistr   r   UnicodeDecodeErrorr   )
encodeBaser   r'   r(   
decodeBaser  s        @r   test_encode_decode_errorsr
  ~	  sA   11122J	)  
)	5	5	5 ( (h'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 	/.A^""8X66F|FFFF:+<+C+C+E+EFFFGGH<8>))))"""44455J	)  
)	5	5	5 ( (h'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 	/.A^""8X66F|FFFF:+<+C+C+E+EFFFGGH<8>))))"""""s#   AA #A D88D<?D<c                `   t          j        g dg dgddg                              |           }g dg dg dgg d	g d
g dgg}g dg dg dgg dg d
g dgg}t          j        |g d                              |           }t          j        |g d                              |           }|j                            d          }|j                            d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )N)abc defzspam eggs swallowred_blue)ztest0 test1 test2 test3r   zabra ka da brard   rh   re   )r    def)r   r  eggs swallowr  r   r   )test0r  ztest1 test2 test3r   r   r   )abrar  z	ka da bra)z	spam eggsr  swallowr   r   r  )ztest0 test1 test2r  test3)z
abra ka dar  brard   rh   r   r   r   r    r!   r2   r   	partition
rpartitionr   r   r   r7   exp_part_dim_listexp_rpart_dim_listexp_part_dimexp_rpart_dimres_part_dimres_rpart_dims           r   test_partition_whitespacer%  	  s   \888===	
 3Z   fUmm   )))   	
 0//LL&&&	
  )))   	
 0//LL&&&	
 < 18H8H8HIIIPPQVWWLL!3:J:J:JKKKRR M :''D'11LJ))d)33M!33333-"55555|,,,.....r   c                d   t          j        g dg dgddg                              |           }g dg dg dgg d	g d
g dgg}g dg dg dgg dg d
g dgg}t          j        |g d                              |           }t          j        |g d                              |           }|j                            dd          }|j                            dd          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )N)zabc, defzspam, eggs, swallowr  )ztest0, test1, test2, test3r   zabra, ka, da, brard   rh   re   )r   r   r  )r   r   zeggs, swallowr  )r  r   ztest1, test2, test3r  )r  r   zka, da, bra)z
spam, eggsr   r  r  )ztest0, test1, test2r   r  )zabra, ka, dar   r  r  r   r   sepr   r  r  s           r   test_partition_commar)  	  s   \;;;CCC	
 3Z   fUmm  !  +++   	
 322LL)))	
 !  +++   	
 322LL)))	
 < 18H8H8HIIIPPQVWWLL!3:J:J:JKKKRR M :''Dd';;LJ))d)==M!33333-"55555|,,,.....r   c                P   t          j        g dg                              |           }t          j        t          j        d          ddg                              |           }|j                            dd          }|j        |j        k    sJ t          ||           d S Nrd   re   r   r   r   r   r'  )	r    r!   r2   rH   zerosr   r  r   r   r   r7   r(   ress       r   test_partition_emptyr0  
  s    \"C5)))0077F|BHV,,C;???FFuMMH
*

4T

2
2C9&&&&hr   c                8    | j                             d           S Nr  r   splitr  s    r   r   r   
      aekkdk++ r   r   r  )r   eggsr  r  )r  test1test2r  )r  kar$   r  
split_fullc                8    | j                             d           S r2  r   rsplitr  s    r   r   r   
      aelltl,, r   rsplit_fullc                :    | j                             d d          S Nr   r   maxsplitr3  r  s    r   r   r   "
      aekkdQk77 r   r   zeggs	swallowr  ztest1
test2

test3r  z	ka
da	brasplit_1c                :    | j                             d d          S rA  r<  r  s    r   r   r   *
      aelltal88 r   z
spam		eggsr  ztest0
test1
test2r  zabra  ka
dar  rsplit_1xr.DataArrayc                P    t          j        g dg dgddg                                         } fd|D             }t          j        |t          j                  }t          j        |ddg          } ||          }|j        |j        k    sJ t          ||           d S )Nr  zspam		eggs	swallowr  ztest0
test1
test2

test3r   zabra  ka
da	brard   rh   re   c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                &    g | ]} |          S rA   rA   rp  s     r   rF   zEtest_split_whitespace_nodim.<locals>.<listcomp>.<listcomp>.<listcomp>>
  rq  r   rA   rr  s     r   rF   z:test_split_whitespace_nodim.<locals>.<listcomp>.<listcomp>>
  rs  r   rA   rt  s     r   rF   z/test_split_whitespace_nodim.<locals>.<listcomp>>
  .    KKKQ8888a888KKKr   rw  r    r!   r2   rH   r   ry  r   r   r   r  r(   r7   r{  r|  r  r  s   `       r   test_split_whitespace_nodimrS  
  s    P \<<<EEE	
 3Z   fUmm  LKKK(KKKN(><<<K,{#s<<<KT&\\F<;,,,,,%%%%%r   c                8    | j                             d          S Nr   r  r3  r  s    r   r   r   L
  r5  r   )r   r  r   r   )r   r6  r  r   )r  r   r   r   r   r   r   r   c                8    | j                             d          S rU  r<  r  s    r   r   r   \
  r>  r   )r   r   r   r  )r   r   r6  r  )r   r   r   r  c                :    | j                             dd          S Nr   r   rB  r3  r  s    r   r   r   l
  rD  r   r   c                :    | j                             dd          S rY  r<  r  s    r   r   r   t
  rG  r   c                v    t          j        g dg dgddg                                         } fd|D             }t          j        |t          j                  }t          j        |g d                                         } ||          }|j        |j        k    sJ t          ||           d S )	NrK  rL  rd   rh   re   c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                &    g | ]} |          S rA   rA   rp  s     r   rF   zCtest_split_whitespace_dim.<locals>.<listcomp>.<listcomp>.<listcomp>
  rq  r   rA   rr  s     r   rF   z8test_split_whitespace_dim.<locals>.<listcomp>.<listcomp>
  rs  r   rA   rt  s     r   rF   z-test_split_whitespace_dim.<locals>.<listcomp>
  rP  r   rw  r  rQ  rR  s   `       r   test_split_whitespace_dimr_  H
  s    p \<<<EEE	
 3Z   fUmm  LKKK(KKKN(><<<K,{1A1A1ABBBII%PPKT&\\F<;,,,,,%%%%%r   c                :    | j                             dd           S N,r'  r3  r  s    r   r   r   
      aekkctk44 r   )r   r   r6  r  c                :    | j                             dd           S ra  r<  r  s    r   r   r   
      aellsl55 r   c                <    | j                             dd d          S Nrb  r   r(  r   rC  r3  r  s    r   r   r   
      aekkctak@@ r   z,eggs,swallowztest1,test2,test3z	ka,da,brac                <    | j                             dd d          S rg  r<  r  s    r   r   r   
      aellsqlAA r   z
spam,,eggsztest0,test1,test2z
abra,ka,dac                <    | j                             dd d          S Nrb  rS  rh  r3  r  s    r   r   r   
      aekkctbkAA r   split_10c                <    | j                             dd d          S rm  r<  r  s    r   r   r   
      aellsrlBB r   	rsplit_10c                P    t          j        g dg dgddg                                         } fd|D             }t          j        |t          j                  }t          j        |ddg          } ||          }|j        |j        k    sJ t          ||           d S )Nzabc,defzspam,,eggs,swallowr  ztest0,test1,test2,test3r   zabra,ka,da,brard   rh   re   c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                &    g | ]} |          S rA   rA   rp  s     r   rF   z@test_split_comma_nodim.<locals>.<listcomp>.<listcomp>.<listcomp>
  rq  r   rA   rr  s     r   rF   z5test_split_comma_nodim.<locals>.<listcomp>.<listcomp>
  rs  r   rA   rt  s     r   rF   z*test_split_comma_nodim.<locals>.<listcomp>
  rP  r   rw  rQ  rR  s   `       r   test_split_comma_nodimry  
  s    P \999===	
 3Z   fUmm  LKKK(KKKN(><<<K,{#s<<<KT&\\F<;,,,,,%%%%%r   c                :    | j                             dd          S Nrb  r   r'  r3  r  s    r   r   r   
  rc  r   c                :    | j                             dd          S r{  r<  r  s    r   r   r      re  r   c                <    | j                             ddd          S Nrb  r   r   rh  r3  r  s    r   r   r     ri  r   c                <    | j                             ddd          S r~  r<  r  s    r   r   r     rk  r   c                <    | j                             ddd          S Nrb  r   rS  rh  r3  r  s    r   r   r      rn  r   c                <    | j                             ddd          S r  r<  r  s    r   r   r   0  rq  r   c                v    t          j        g dg dgddg                                         } fd|D             }t          j        |t          j                  }t          j        |g d                                         } ||          }|j        |j        k    sJ t          ||           d S )	Nrt  ru  rd   rh   re   c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                &    g | ]} |          S rA   rA   rp  s     r   rF   z>test_split_comma_dim.<locals>.<listcomp>.<listcomp>.<listcomp>L  rq  r   rA   rr  s     r   rF   z3test_split_comma_dim.<locals>.<listcomp>.<listcomp>L  rs  r   rA   rt  s     r   rF   z(test_split_comma_dim.<locals>.<listcomp>L  rP  r   rw  r  rQ  rR  s   `       r   test_split_comma_dimr  
  s    p \999===	
 3Z   fUmm  LKKK(KKKN(><<<K,{1A1A1ABBBII%PPKT&\\F<;,,,,,%%%%%r   c                   t          j        g ddg                              |           }t          j        ddgdg                              |           }t          j        ddgd	d
ggddgddggddgddgggg d                              |           }t          j        ddgd	d
ggddgddggddgddgggg d                              |           }|j                            d|d          }|j                            d|d          }t          ||           t          ||           t          j        g dg dgg dg dgg dg dggg d                              |           }t          j        g dg dgg dg dgg dg dggg d                              |           }|j                            d|           }|j                            d|           }t          ||           t          ||           d S )!N)zab cd,de fgzspam, ,eggs swallowr  rd   re   r  rb  rh   r   cd,de fgab cdde fgspam,,eggs swallowr    ,eggs swallowr  r   r  zab cd,defgzspam, ,eggsr  zspam, r  r   r   )r   r(  rC  )r   r  r  )r  rb  r  )r  r  r  )r   rb  r  r  r   r(  )r    r!   r2   r   r4  r=  r   r  )r   r7   r(  expected_leftexpected_rightres_left	res_rights          r   test_splitters_broadcastr  V  s   \:::U   fUmm 
 ,	c
U   fUmm 
 LJ'7!34'&2B)CD"
B/0	

    fUmm  \$'7!34Y'(N)CD*J/0	

    fUmm  zDcA>>H
!!da!@@I
 =)))N+++L$$$&=&=&=>,,,.M.M.MN!!!#7#7#78	

    fUmm  \$$$&=&=&=>,,,.M.M.MN!!!#7#7#78	

    fUmm  z####66H
$$3$77I
 =)))N+++++r   c                P   t          j        g dg                              |           }t          j        t          j        d          ddg                              |           }|j                            dd          }|j        |j        k    sJ t          ||           d S r+  )	r    r!   r2   rH   r-  r   r4  r   r   r.  s       r   test_split_emptyr    s    \"C5)))0077F|BHV,,C;???FFuMMH
*

t

.
.C9&&&&hr   c                   t          j        g dg dgddg                              |           }t          j        g dg dgddg                              |           }t          j        g d                              |           }t          j        g d	                              |           }g d
g dg dgg dg dg dgg}t          j        |          }t          j        |g d          }|                                }|                                }	||j        d<   ||	j        d<   |j                            d          }
|j                            dd          }|j                            dd          }|
j	        |j	        k    sJ |j	        |j	        k    sJ |j	        |	j	        k    sJ t          |
|           t          ||           t          ||	           d S )N)za|ab~abc|abcr   za||abc|abcd)z	abcd|ab|az
abc|ab~abcz|ard   rh   re   )za~ab|abc~~abcr   z
a~abc~abcd)z	abcd~ab~az
abc~ab|abcz~a)r   r   r   r  zab~abc)r   r   r   r  zab|abc)TFTFT)FTFFF)TFTTF)TTFTF)FFTFT)TFFFFr  r   r  |r  ~)r    r!   r2   rH   r   copycoordsr   get_dummiesr   r   )r   values_linevalues_comma	vals_line
vals_commarD  r|  r(   	targ_line
targ_commares_defaultres_line	res_commas                r   test_get_dummiesr    sA   ,	.	.	.0Q0Q0QR3Z   fUmm  <	.	.	.0Q0Q0QR3Z   fUmm 
 ===>>EEeLLI>>>??FFuMMJ -,,...,,,	
 -,,---...	
M (=))K|K.>.>.>???HIJ&IT(Jd/--$-77K**t*==H ,,3,??I	////>Y_,,,,?j.....i(((9%%%J'''''r   c                (   t          j        g ddg                              |           }t          j        ddgdg                              |           }g dg dgg d	g d	gg d
g dgg dg d	gg}t          j        |          }t          j        |g d          }t          j        g d                              |           |j        d<   |j                            d|          }|j        |j        k    sJ t          ||           d S )N)zx~x|x~xrE   zx|x~xx~xrd   re   r  r  rh   rl   rj   )TFFrk   r  )rE   zx|xr  r   r  )
r    r!   r2   rH   r   r  r   r  r   r   )r   r7   r(  rD  r|  r(   r/  s          r   test_get_dummies_broadcastr    sc   \(((U   fUmm 
 ,	c
U   fUmm  
		2223			3334			1112			3334	M (=))K|K.>.>.>???HH%8%8%899@@GGHOD
*
 
 Ts
 
3
3C9&&&&hr   c                N   t          j        g dg                              |           }t          j        t          j        d          ddg                              |           }|j                            d          }|j        |j        k    sJ t          ||           d S )Nrd   re   r,  r   r  )	r    r!   r2   rH   r-  r   r  r   r   r.  s       r   test_get_dummies_emptyr    s    \"C5)))0077F|BHV,,C;???FFuMMH
*
 
 T
 
*
*C9&&&&hr   c                    t          j        g dg dgddg                                         }t          j        g dg dg dgg dg dg dggg d                                         }g dg dg dgg dg dg dgg} fd|D             }t          j        |t          j                  }|d	         d
= t          j        |ddg          }t          j        dgdgdggdgdgdgggg d                                         }t          j        t          j        g g g gg g dgggt          j                  ddg          }|j        d	         d
= |j                            d          }|j        	                    d          }	|j                            d           }
|j        	                    d           }|j        
                    d          }|j                            d          }|j        
                    d           }|j                            d           }|j                            d          }|j        |j        k    sJ |	j        |j        k    sJ |
j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ t          ||           t          |	|           t          |
|           t          ||           t          ||           t          ||           t          ||           t          ||           t          ||           d S )Nr  rd   rh   re   r  rV  c                ,    g | ]}fd |D             S )c                ,    g | ]}fd |D             S )c                &    g | ]} |          S rA   rA   rp  s     r   rF   zBtest_splitters_empty_str.<locals>.<listcomp>.<listcomp>.<listcomp>  s!    			q%%((			r   rA   rr  s     r   rF   z7test_splitters_empty_str.<locals>.<listcomp>.<listcomp>  s.    ***1				A			***r   rA   rt  s     r   rF   z,test_splitters_empty_str.<locals>.<listcomp>  s;          /0*******     r   rw  )r   r   r   r   r   r  )r    r!   r2   rH   r   ry  rm   r   r  r  r4  r=  r   r   )r   r7   targ_partition_dimtarg_partition_none_listtarg_partition_none_nptarg_partition_nonetarg_split_dimtarg_split_noneres_partition_dimres_rpartition_dimres_partition_noneres_rpartition_noneres_split_dimres_rsplit_dimres_split_noneres_rsplit_noneres_dummiess   `                r   test_splitters_empty_strr    sF   \	|||$3Z   fUmm 
 \\<<<6\\<<<6	
    fUmm  
|||\\\2	|||%5%5%56        4L       X&>bjQQQv&r*,3Z  
 \$rd	rdRD2$/0   fUmm  l
2r2,R"/rzBBB3Z  O 	V$R(
,,,66..4.88--$-77 *//D/99J$$$..MZ&&4&00NZ%%$%//Nj''D'11O*###--K"&8&>>>>>#'9'?????#':'@@@@@$(;(AAAAA."66666>#77777?#88888 O$99999 44444"$6777#%7888#%8999$&9:::///000111/222n-----r   c                8   t          j        g dg dgddg                              |           }d}t          j        g dg dgddg                              |           }t          j        g d	g d
gddg                              |           }t          j        g dg dgddg                              |           }t          j        g dg dgddg                              |           }|j                            |          }|j        |z   }|j                            |d          }	|j                            |d          }
|j                            |d          }|j        |j        k    sJ |j        |j        k    sJ |	j        |j        k    sJ |
j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           t          |	|           t          |
|           t          ||           d S )Nr   ri  r  rj  eeeefffrd   rh   re   111)a111bb111cccc111)ddddd111eeee111fff111)za 111zbb 111zcccc 111)z	ddddd 111zeeee 111zfff 111)za||111zbb||111z	cccc||111)z
ddddd||111z	eeee||111zfff||111)za, 111zbb, 111z	cccc, 111)z
ddddd, 111z	eeee, 111zfff, 111r  r(  ||r   r    r!   r2   r   r   r   r   r   values_1values_2
targ_blank
targ_space	targ_barsr  	res_blankres_add	res_spaceres_barsr  s               r   test_cat_strr  =  s   |			66673Z   fUmm  H	%	%	%'H'H'HI3Z   fUmm 
 	(	(	(*N*N*NO3Z   fUmm 
 	+	+	+-T-T-TU3Z   fUmm 
 	+	+	+-T-T-TU3Z   fUmm 
   **IlX%G  s 33I|d33H  t 44I?j.....=J,,,,,?j.....>Y_,,,,?j.....J'''*%%%J'''9%%%J'''''r   c                p   t          j        g dg dgddg                              |           }t          j        g dg dgddg          }t          j        g dg d	gddg                              |           }t          j        g d
g dgddg                              |           }t          j        g dg dgddg                              |           }t          j        g dg dgddg                              |           }|j                            |          }|j        |z   }|j                            |d          }	|j                            |d          }
|j                            |d          }|j        |j        k    sJ |j        |j        k    sJ |	j        |j        k    sJ |
j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           t          |	|           t          |
|           t          ||           d S )Nr  r  rd   rh   re   1111122233r   555566a11111bb222cccc33)ddddd4eeee5555fff66a 11111zbb 222zcccc 33)zddddd 4z	eeee 5555zfff 66a||11111zbb||222zcccc||33)zddddd||4z
eeee||5555zfff||66a, 11111zbb, 222zcccc, 33)zddddd, 4z
eeee, 5555zfff, 66r  r  r  r   r  r  s               r   test_cat_uniformr  k  s   |			66673Z   fUmm  |			!4!4!453Z  H
 	&	&	&(G(G(GH3Z   fUmm 
 	)	)	)+M+M+MN3Z   fUmm 
 	,	,	,.S.S.ST3Z   fUmm 
 	,	,	,.S.S.ST3Z   fUmm 
   **IlX%G  s 33I|d33H  t 44I?j.....=J,,,,,?j.....>Y_,,,,?j.....J'''*%%%J'''9%%%J'''''r   c                f   t          j        g dg dgddg                              |           }t          j        g ddg          }t          j        g dg dgddg                              |           }t          j        g d	g d
gddg                              |           }t          j        g dg dgddg                              |           }t          j        g dg dgddg                              |           }|j                            |          }|j        |z   }|j                            |d          }	|j                            |d          }
|j                            |d          }|j        |j        k    sJ |j        |j        k    sJ |	j        |j        k    sJ |
j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           t          |	|           t          |
|           t          ||           d S )Nr  r  rd   rh   re   r  r  )
ddddd11111eeee222fff33r  )zddddd 11111zeeee 222zfff 33r  )zddddd||11111z	eeee||222zfff||33r  )zddddd, 11111z	eeee, 222zfff, 33r  r  r  r   r  r  s               r   test_cat_broadcast_rightr    s   |			66673Z   fUmm  |U  H
 	&	&	&(J(J(JK3Z   fUmm 
 	)	)	)+P+P+PQ3Z   fUmm 
 	,	,	,.V.V.VW3Z   fUmm 
 	,	,	,.V.V.VW3Z   fUmm 
   **IlX%G  s 33I|d33H  t 44I?j.....=J,,,,,?j.....>Y_,,,,?j.....J'''*%%%J'''9%%%J'''''r   c                   t          j        g ddg                              |           }t          j        g dg dgddg          }t          j        g dg dgddg                              |           j        }t          j        g d	g d
gddg                              |           j        }t          j        g dg dgddg                              |           j        }t          j        g dg dgddg                              |           j        }|j                            |          }|j        |z   }|j                            |d          }	|j                            |d          }
|j                            |d          }|j        |j        k    sJ |j        |j        k    sJ |	j        |j        k    sJ |
j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           t          |	|           t          |
|           t          ||           d S )Nr  rh   re   r  r  rd   r  )a4bb5555cccc66r  )a 4zbb 5555zcccc 66r  )a||4zbb||5555zcccc||66r  )a, 4zbb, 5555zcccc, 66r  r  r  r   r    r!   r2   Tr   r   r   r   r  s               r   test_cat_broadcast_leftr    s   |U   fUmm  |			!4!4!453Z  H 	***,F,F,FGs	
 	
 	
 
	
  	---/L/L/LMs	
 	
 	
 
	
  	0002R2R2RSs	
 	
 	
 
	
  	0002R2R2RSs	
 	
 	
 
	
    **IlX%G  s 33I|d33H  t 44I?j.....=J,,,,,?j.....>Y_,,,,?j.....J'''*%%%J'''9%%%J'''''r   c                   t          j        g ddg                              |           }t          j        ddgdg          }t          j        g dg dgddg                              |           j        }t          j        g d	g d
gddg                              |           j        }t          j        g dg dgddg                              |           j        }t          j        g dg dgddg                              |           j        }|j                            |          }|j        |z   }|j                            |d          }	|j                            |d          }
|j                            |d          }|j        |j        k    sJ |j        |j        k    sJ |	j        |j        k    sJ |
j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           t          |	|           t          |
|           t          ||           d S )Nr  rh   re   r  r   rd   )r  bb11111	cccc11111)r  bb4cccc4)r  zbb 11111z
cccc 11111)r  zbb 4zcccc 4)r  z	bb||11111zcccc||11111)r  zbb||4zcccc||4)r  z	bb, 11111zcccc, 11111)r  zbb, 4zcccc, 4r  r  r  r   r  r  s               r   test_cat_broadcast_bothr    s   |U   fUmm  |	#U  H 	///1G1G1GHs	
 	
 	
 
	
  	2224M4M4MNs	
 	
 	
 
	
  	5557S7S7STs	
 	
 	
 
	
  	5557S7S7STs	
 	
 	
 
	
    **IlX%G  s 33I|d33H  t 44I?j.....=J,,,,,?j.....>Y_,,,,?j.....J'''*%%%J'''9%%%J'''''r   c                    t          j        ddgdg          } t          j        g ddg                              t          j                  }t          j        d          }d}t          j        dt          j        	          }t          j        d
dgdg                              t          j                  }t          j        ddgddgddggddgddgddgggg d                              t          j                  }| j                            |||||          }|j	        |j	        k    sJ t          ||           d S )Nr  r   rd   re   r  rh   g333333@r   rw  r  r   r   z11111 a 3.4  z11111, a, 3.4, , z11111 bb 3.4  z11111, bb, 3.4, , z11111 cccc 3.4  z11111, cccc, 3.4, , z	4 a 3.4  z4, a, 3.4, , z
4 bb 3.4  z4, bb, 3.4, , z4 cccc 3.4  z4, cccc, 3.4, , r  r  )r    r!   r2   rH   r   r   r   r   r   r   r   )r  r  values_3values_4values_5r(  r(   r/  s           r   test_cat_multir
  O  s   |	#U  H
 |U   fRY 
 x}}HHx"+...H
,	dV   fR[ 
 | !"56!#78#%;< o./0!34	
    fR[   ,

8Xxs

K
KC9&&&&hr   c                   t          j        d                              |           }t          j        d                              |           }|j                                        }|j                            d          }|j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           d S )Nr  r  r  r    r!   r2   r   joinr   r   )r   r7   targr  r  s        r   test_join_scalarr  {  s    \%  ''..F<%%e,,D
!!I
C((I?dj((((?dj((((Y%%%Y%%%%%r   c                   t          j        g ddg                              |           }t          j        d                              |           }t          j        d                              |           }|j                                        }|j                            d          }|j                            d          }|j                            dd	          }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ t          ||           t          ||           t          ||           t          ||           d S )
Nr  rh   re   abbcccc	a bb ccccr  r  r  r  r  )r   r7   r  r  res_blank_noneres_blank_yres_space_noneres_space_ys           r   test_join_vectorr    sf   \U   fUmm 
 i((//66Jk**11%88JZ__&&N*//c/**KZ___--N*//cs/33K:#33333
 00000:#33333
 00000^Z000[*---^Z000[*-----r   c                N   t          j        g dg dgddg                              |           }t          j        g ddg                              |           }t          j        g ddg                              |           }t          j        dd	gdg                              |           }t          j        d
dgdg                              |           }|j                            d          }|j                            d          }|j                            dd          }|j                            dd          }	|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |	j        |j        k    sJ t          ||           t          ||           t          ||           t          |	|           t          j        t          d          5  |j                                         d d d            d S # 1 swxY w Y   d S )Nr  r  rd   rh   re   )adddddbbeeeeccccfff)za dddddzbb eeeezcccc fffr  dddddeeeefffr  zddddd eeee fffr  r  r  z8Dimension must be specified for multidimensional arrays.rX   )
r    r!   r2   r   r  r   r   r^   r_   r`   )
r   r7   targ_blank_xtarg_space_xtarg_blank_ytarg_space_yres_blank_xr  res_space_xr  s
             r   test_join_2dr#    s   \			66673Z   fUmm 
 <'''U   fUmm  <***U   fUmm 
 <	N#U   fUmm  <	&'U   fUmm 
 *//c/**K*//c/**K*//cs/33K*//cs/33K 22222 22222 22222 22222[,///[,///[,///[,///	T
 
 
   	
                 s   3HH!Hc                   t          j        g ddg                              |           }t          j        ddgdg                              |           }t          j        ddgdg                              |           }|j                            |	          }|j        |j        k    sJ t          ||           d S )
Nr  rd   re   r  r   r   r  za, bb, ccccr  r  )r   r7   r(  r(   r/  s        r   test_join_broadcastr%    s    \U   fUmm 
 ,	dV   fUmm 
 |	m$V   fUmm 
 *//c/
"
"C9&&&&S(#####r   c            	        t          j        g ddg                              t          j                  } d}d}d}d}d}d }d}t          j        g d	dg                              t          j                  }| j                            |||||||
          }	|	j        |j        k    sJ t          |	|           d S )Nz{}.{Y}.{ZZ}z{},{},{X},{X}z{X}-{Y}-{ZZ}rd   re   r   333333?2.3'test'NO!)1.X.None1,1.2,'test','test''test'-X-Nonerd   rh   r   W	r    r!   r2   rH   r   r   ry  r   r   
r7   pos0pos1pos2rd   rh   r   r0  r(   r/  s
             r   test_format_scalarr6    s    \888U   fR[ 
 DDDAA	BA|<<<U   fR[ 
 *

D$Q2

C
CC9&&&&hr   c            	        t          j        g ddg                              t          j                  } d}d}t          j        ddgdg          }d	}d}d }d
}t          j        ddgddgddggddg                              t          j                  }| j                            |||||||          }	|	j        |j        k    sJ t          |	|           d S )Nr'  rd   re   r   r(  r)  3.44444r   r*  r+  r,  r-  r.  r/  r1  r2  s
             r   test_format_broadcastr9    s!   \888U   fR[ 
 DD<		V  D
 	AA	BA|$"$9:o.	

 4[   fR[  *

D$Q2

C
CC9&&&&hr   c                 H   t          j        g ddg                              t          j                  } d}d}d}t          j        g ddg                              t          j                  }| j        |||fz  }|j        |j        k    sJ t          ||           d S )Nz%s.%s.%sz%s,%s,%sz%s-%s-%srd   re   r   r(  r)  )	1.1.2.2.3	1,1.2,2.3	1-1.2-2.3r    r!   r2   rH   r   r   r   r   r7   r3  r4  r5  r(   r/  s         r   test_mod_scalarrA  #  s    \,,,U   fR[ 
 DDD|///U   fR[ 
 *dD)
)C9&&&&hr   c                 J   t          j        g ddg                              t          j                  } d}d}d}t          j        g ddg                              t          j                  }| j        |||dz  }|j        |j        k    sJ t          ||           d S )	N)z%(a)s.%(a)s.%(b)sz%(b)s,%(c)s,%(b)sz%(c)s-%(b)s-%(a)srd   re   r   r(  r)  )z1.1.1.2z1.2,2.3,1.2z	2.3-1.2-1r   r?  )r7   r   r   r   r(   r/  s         r   test_mod_dictrC  8  s    \GGGU   fR[ 
 	
AAA|///U   fR[ 
 *QQQ//
/C9&&&&hr   c                 x   t          j        g ddg                              t          j                  } t          j        ddgdg          }t          j        ddgd	d
gddggddg                              t          j                  }| j        |z  }|j        |j        k    sJ t          ||           d S )N)z%s_1z%s_2z%s_3rd   re   r)  r8  r   z2.3_1z	3.44444_1z2.3_2z	3.44444_2z2.3_3z	3.44444_3r?  )r7   posr(   r/  s       r   test_mod_broadcast_singlerF  M  s    \   U   fR[ 
 ,		V  C
 |
;	';!7';9OP4[   fR[ 
 *s
C9&&&&hr   c                    t          j        g ddg                              t          j                  } d}d}t          j        ddgdg          }t          j        d	d
gddgddggddg                              t          j                  }| j        |||fz  }|j        |j        k    sJ t          ||           d S )Nr;  rd   re   r   r(  r)  r8  r   r<  z1.1.2.3.44444r=  z1,1.2,3.44444r>  z1-1.2-3.44444r?  r@  s         r   test_mod_broadcast_multirH  c  s    \,,,U   fR[ 
 DD<		V  D
 |/*/*/*	

 4[   fR[  *dD)
)C9&&&&hr   )r   r   )r  r  r(   r  r   r   )r  r  r(   rI  r   r   )z
__future__r   r3   typingr   numpyrH   r^   xarrayr    xarray.testsr   r   r   fixturer   str_r   r   r)   r<   rI   rb   rn   rx   r}   r   r   r   r   r   r   r   r  r  r  r  r)  r-  r8  r<  rE  rM  rQ  rX  rZ  r\  r^  re  rg  rk  r}  r  r  r  r  r  r  r  r  r  r  r  r  markparametrizer  r  r  r7  rA  rL  rT  r_  rf  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r%  r)  r0  rS  r_  ry  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r#  r%  r6  r9  rA  rC  rF  rH  rA   r   r   <module>rR     s|  N # " " " " " 				                F F F F F F F F F F FLU+++\V\")-P-P-PQ     	# 	# 	# 	#& & & & & & & & )1 )1 )1 )1X@# @# @# @#F# # # ## # # #.+ + + +87/ 7/ 7/ 7/t3# 3# 3# 3#l! ! ! !H# # # #0;# ;# ;# ;#|(: (: (: (:V& & & &20 0 0 0&"2 "2 "2 "2J(I (I (I (IV-' -' -' -'`'' '' '' ''T%) %) %) %)P"# "# "# "#J# # # #:) ) ) )@# # # #:+) +) +) +)\,# ,# ,# ,#^ )  )  )  )F# # # #@/) /) /) /)d,# ,# ,# ,#^# # # #:) ) ) )6# # # #6&) &) &) &)R'# '# '# '#T) ) ) )@# # # #:,) ,) ,) ,)^)# )# )# )#X# # # #6# # # ## # # #&# # # #DS8 S8 S8 S8l Z%%KKK	
 	
 	

 	%%NNN	
 	
 	

 	%%PPP	
 	
 	

 	%%QQQ	
 	
 	

 	%%QQQ	
 	
 	

 	%%OOO	
 	
 	

 	%%OOO	
 	
 	
?$' 'P& & &Q' 'P&+ + + +&# # # #P' P' P' P'f+% +% +% +%\5 5 5 5p %  %  %  %F# # # ## # # #80) 0) 0) 0)f8# 8# 8# 8#v# # # ## # # #   $   *# *# *# *#Z# # # # # # # #&# # # #&# # # #(,# ,# ,# ,#^# # # # # # # #0# # # #	# 	# 	# 	#       # # # #D// // // //d// // // //d        Z++!<!<!<zlK555r;V;V;VW 	
 	
 	
 	,,!<!<!<zlK555r;V;V;VW 	
 	
 	
 	77&/!:ZLI23R&-9PQ 	
 	
 	
 	88.)!<zlK'127NO 	
 	
 	
3!$ $J& & &K$ $J&* Z++ +**333,,, 988$$$/// 	
 	
 	
  	,, +**333,,, 988$$$/// 	
 	
 	
  	77&/!:Z<LM23b"X?VW 	
 	
 	
 	88.)!<r:>NO'1B8ne=TU 	
 	
 	
S14 4j& & &k4 4j&* Z44!@!@!@:,O888D/// 	
 	
 	
 	55!@!@!@:,O888D/// 	
 	
 	
 	@@&/!:ZLI./"7LM 	
 	
 	
 	AA,	!:ZLI%w/"e7LM 	
 	
 	
 	AA!@!@!@:,O888D/// 	
 	
 	
 	BB!@!@!@:,O888D/// 	
 	
 	
kAD DJ& & &KD DJ&* Z44 +**333,,, 988$$$/// 	
 	
 	
  	55 +**333,,, 988$$$/// 	
 	
 	
  	@@&/!:Z<LM./"bFK;PQ 	
 	
 	
 	AA,	!:R<LM%w/"bL%;PQ 	
 	
 	
 	AA +**333,,, 988$$$/// 	
 	
 	
  	BB +**333,,, 988$$$/// 	
 	
 	
CQT Tj& & &kT Tj&*=, =, =, =,@       )( )( )( )(X       8       H. H. H. H.V+( +( +( +(\.( .( .( .(b.( .( .( .(b>( >( >( >(B>( >( >( >(B)  )  )  ) X& & & &. . . .4+ + + +\$ $ $ $,       2       D       *       *       ,           r   