B ®@`¹ã,@sddlmZmZddlZddlZddlZddlmZddlZ ddlm Z m Z m Z m Z mZmZmZddlmZddlmmZdd„Zddd d ifde ed ƒƒfd d d œfddifddifddifddifddifddifddddifddddifddddifddddifddifddifddifd d!ifd"d#ifd$d%ifd&difd'difd(difd)d*ifd+difd,d-ddifd,d-ddifd.d/ifd0d1ifd2difd3d#ifd4difd5d-ddifd5d-ddifd6d7ifd8d9ifd:d-ddifd:d-ddifd;difd;dddifd;dddifdififd?d@ifdAdifg*eedBddCdDdEdFdGdHdIdJdKdLdMdNdOd,d5dPdQd6d8d:dRdSdTdUdVgdgd>igd>ƒƒZeeŽ\ZZZdWdX„eejƒDƒeeƒZ e �rªt!‚ej"eedY�dZd[„ƒZ#d\d]ej$d^gfd_d`ej$dagfdbej$ej$ej$gfdbgfdcd]ej$ddgfgZ%ee%Ž\ZZej"e%edY�dedf„ƒZ&Gdgdh„dhƒZ'didj„Z(ej) *dkddddgfdddgfd"ddgfd3dddgfg¡dldm„ƒZ+ej) *dkdGdddgfdEdddgfdDdddgfdGdddgfg¡dndo„ƒZ,dpdq„Z-ej) *dre.eej/e j e j g¡dsdt„ƒZ0dudv„Z1dwdx„Z2dS)yé)ÚdatetimeÚ timedeltaN)Úlib)Ú DataFrameÚIndexÚ MultiIndexÚSeriesÚconcatÚisnaÚnotnacCs(t|tƒrt ||¡n t ||¡dS)N)Ú isinstancerÚtmÚassert_series_equalÚassert_index_equal)ÚleftÚright©rú=/tmp/pip-unpacked-wheel-q9tj5l6a/pandas/tests/test_strings.pyÚassert_series_or_index_equals rÚcatrÚsepú,Zzyxr)rÚjoinÚcenter)é Úcontains)ÚaÚcountÚdecode)zUTF-8ÚencodeÚendswithÚnaTFÚextract)z([a-z]*)ÚexpandÚ extractallÚfindÚfindallÚget)rÚindex)Úr)rÚljustÚmatchÚ fullmatchÚ normalize)ÚNFCÚpadÚ partition)ú Úrepeat)éÚreplace)rÚzÚrfindÚrindexÚrjustÚ rpartitionÚslice)réÚ slice_replace)rr;r5ÚsplitÚ startswithÚ translateéaédÚwrap)éÚzfillÚ capitalizeÚ get_dummiesÚisalnumÚisalphaÚ isdecimalÚisdigitÚislowerÚ isnumericÚisspaceÚistitleÚisupperÚlenÚlowerÚlstripÚrsplitÚrstripÚstripÚswapcaseÚtitleÚupperÚcasefoldcCsh|]}| d¡s|’qS)Ú_)r>)Ú.0Úfrrrú lsr])ÚparamsÚidscCs|jS)a¼ Fixture for all public methods of `StringMethods` This fixture returns a tuple of the method name and sample arguments necessary to call the method. Returns ------- method_name : str The name of the method in `StringMethods` args : tuple Sample values for the positional arguments kwargs : dict Sample values for the keyword arguments Examples -------- >>> def test_something(any_string_method): ... s = Series(['a', 'b', np.nan, 'd']) ... ... method_name, args, kwargs = any_string_method ... method = getattr(s.str, method_name) ... # will not raise ... method(*args, **kwargs) )Úparam)ÚrequestrrrÚany_string_methodrsrbÚstringrÚcÚbytesóaócÚemptyz mixed-integerrCcCs |j\}}tj|td�}||fS)a> Fixture for all (inferred) dtypes allowed in StringMethods.__init__ The covered (inferred) types are: * 'string' * 'empty' * 'bytes' * 'mixed' * 'mixed-integer' Returns ------- inferred_dtype : str The string for the inferred dtype from _libs.lib.infer_dtype values : np.ndarray An array of object dtype that will be inferred to have `inferred_dtype` Examples -------- >>> import pandas._libs.lib as lib >>> >>> def test_something(any_allowed_skipna_inferred_dtype): ... inferred_dtype, values = any_allowed_skipna_inferred_dtype ... # will pass ... assert lib.infer_dtype(values, skipna=True) == inferred_dtype ... ... # constructor for .str-accessor will also pass ... Series(values).str )Údtype)r`ÚnpÚarrayÚobject)raÚinferred_dtypeÚvaluesrrrÚ!any_allowed_skipna_inferred_dtype›s roc@sŒeZdZdd„Zdd„Zej dedg¡dd„ƒZ ej dedg¡d d „ƒZ d d „Z d d„Z dd„Z dd„Zdd„Zej ddeeg¡dd„ƒZdd„Zdd„Zej dddg¡ej dd dg¡ej d!d dg¡d"d#„ƒƒƒZejjd$d%d&d'gd(d)d*gd%d&d+ggd,d-d.gd/�ejjd0eeed1d2„gd3d4d5d6gd/�d7d8„ƒƒZd9d:„Zej d;dd?g¡d@dA„ƒZej d;dd?g¡dBdC„ƒZdDdE„ZdFdG„ZdHdI„ZdJdK„ZdLdM„ZdNdO„Z ej dddg¡ej dPde!j"e#j$g¡ej dQdRdSg¡dTdU„ƒƒƒZ%ej dddg¡ej dPde!j"e#j$g¡ej dQdRdSg¡dVdW„ƒƒƒZ&dXdY„Z'dZd[„Z(d\d]„Z)d^d_„Z*d`da„Z+dbdc„Z,ddde„Z-dfdg„Z.dhdi„Z/djdk„Z0dldm„Z1dndo„Z2dpdq„Z3drds„Z4dtdu„Z5dvdw„Z6dxdy„Z7dzd{„Z8d|d}„Z9d~d„Z:d€d�„Z;d‚dƒ„Zd�d‘„Z?d’d“„Z@d”d•„ZAd–d—„ZBd˜d™„ZCdšd›„ZDdœd�„ZEdždŸ„ZFd d¡„ZGd¢d£„ZHd¤d¥„ZId¦d§„ZJd¨d©„ZKdªd«„ZLd¬d­„ZMd®d¯„ZNd°d±„ZOd²d³„ZPd´dµ„ZQej d¶d·d¸d¹dºd»g¡d¼d½„ƒZRd¾d¿„ZSdÀdÁ„ZTdÂdÄZUdÄdÅ„ZVdÆdÇ„ZWej dedÈg¡ej dÉdÊdËg¡dÌdÍ„ƒƒZXdÎdÏ„ZYdÐdÑ„ZZdÒdÓ„Z[dÔdÕ„Z\dÖdׄZ]dØdÙ„Z^dÚdÛ„Z_dÜdÝ„Z`dÞdß„Zadàdá„Zbdâdã„Zcdädå„Zddædç„Zedèdé„Zfdêdë„Zgdìdí„Zhdîdï„Ziej dðd&dñdedòdóe!j"dôgƒfdõd'döedde!j"dgƒfdddöed÷døe!j"dùgƒfd'dúd&edûdüe!j"dýgƒfd'dõdöedþdÿe!j"dÿgƒfg¡�d�d„ƒZj�d�d„Zk�d�d„Zl�d�d„Zm�d�d „Zn�d �d „Zo�d �d „Zp�d�d„Zqej �deree!jsg¡�d�d„ƒZt�d�d„Zu�d�d„Zv�d�d„Zw�d�d„Zx�d�d„Zy�d�d„Zz�d�d „Z{�d!�d"„Z|�d#�d$„Z}�d%�d&„Z~�d'�d(„Z�d)�d*„Z€�d+�d,„Z�dS(-ÚTestStringMethodscCs,tjtjkst‚ttdgƒjtjƒs(t‚dS)Nr))rÚstrÚstringsÚ StringMethodsÚAssertionErrorr )ÚselfrrrÚtest_apiÃszTestStringMethods.test_apic CsHt dddgg¡}d}tjt|d�� |jWdQRXt|dƒrDt‚dS)NrÚbrdz5Can only use .str accessor with Index, not MultiIndex)r+rq)rZ from_arraysÚpytestÚraisesÚAttributeErrorrqÚhasattrrt)ruÚmiÚmsgrrrÚtest_api_mi_raisesÉs z$TestStringMethods.test_api_mi_raisesriÚcategoryc Csz|}|\}}|||d�}ddddddg}||krDt|jtjƒsvt‚n2d} tjt| d �� |jWdQRXt|d ƒrvt‚dS) N)rircÚunicoderhreÚmixedz mixed-integerz/Can only use .str accessor with string values.*)r+rq) r rqrrrsrtrxryrzr{) ruÚindex_or_seriesriZany_skipna_inferred_dtypeÚboxrmrnÚtZtypes_passing_constructorr}rrrÚtest_api_per_dtypeÑs z$TestStringMethods.test_api_per_dtypec CsP|}|\}}|\} } } d} |tkrn|jdkrn| dkrF|  dd¡rFd} q’| dkr`|  dd¡r`d} q’| dkr’d } n$|tkr’|d kr’|tkr’| dkr’d } | dk r´tjj| d �} |j | ¡|||d �}t |j | ƒ}| d k}| dk}ddd gdg|ddg|}||k�r|| | Žn:d| ›dt |ƒ›d�}tj t |d��|| | ŽWdQRXdS)Nr)r0r9r#Tz#Method cannot deal with empty Indexr=z,Split fails on empty Series when expand=TruerFz(Need to fortify get_dummies corner casesrh)Úreason)ri)rr'rPr:)rrcr€rer�z mixed-integerzCannot use .str.z with values of inferred dtype Ú.)r+)rÚsizer'rlrxÚmarkZxfailÚnodeZ add_markerÚgetattrrqÚreprryÚ TypeError)rur‚rirorbrarƒrmrnÚ method_nameÚargsÚkwargsr†r‰r„ÚmethodZ bytes_allowedZ mixed_allowedZ allowed_typesr}rrrÚtest_api_per_methodës8         z%TestStringMethods.test_api_per_methodc Cs¢ttdƒƒ}|d|}| d¡}t|jtjƒs4t‚|\}}}t|j|ƒ||Ž}t|j|ƒ||Ž}t|t ƒrzt   ||¡n$t|tƒr’t   ||¡n ||ksžt‚dS)NZaabbr1r) rÚlistÚastyper rqrrrsrtr‹rr Úassert_frame_equalr) rurbÚsrdrŽr�r�ÚresultÚexpectedrrrÚtest_api_for_categorical-s      z*TestStringMethods.test_api_for_categoricalc CsŽd}t|ƒ}t t¡�XxP|jD]F}t|tƒs2t‚t |j|j¡x"|D]}t|tƒsHt |ƒsHt‚qHWq WWdQRX|  ¡j   ¡dksŠt‚dS)N)ÚgoogleZ wikimediaZ wikipediaZ wikitravelÚl) rr Úassert_produces_warningÚ FutureWarningrqr rtrr(r ÚdropnarnÚitem)ruÚstrsÚdsr–ÚelrrrÚ test_iterAs   (zTestStringMethods.test_iterc Cs^tgtd�}d\}}t t¡�xt|jƒD]\}}q,WWdQRX|dksNt‚|dksZt‚dS)N)ri)rAr;rAr;)rrlr rœr�Ú enumeraterqrt)rur¡Úir–rrrÚtest_iter_emptyXs   z!TestStringMethods.test_iter_emptyc CsPtdgƒ}t t¡�xt|jƒD]\}}q"WWdQRX|r@t‚t ||¡dS)Nr)rr rœr�r¤rqrtr)rur¡r¥r–rrrÚtest_iter_single_elementfs   z*TestStringMethods.test_iter_single_elementc Cshtdd„tdƒDƒƒ}d\}}t t¡�xt|jƒD]\}}q6WWdQRX|dksXt‚|dksdt‚dS)Nc Ss*g|]"}tdtj d¡tj dd¡ƒ‘qS)Nré)r:rjÚrandomÚrandint)r[rZrrrú sszATestStringMethods.test_iter_object_try_string..é)rAÚhrAr­)rÚranger rœr�r¤rqrt)rur¡r¥r–rrrÚtest_iter_object_try_stringps  z-TestStringMethods.test_iter_object_try_stringÚotherNcCsH|}ddg}|r||ƒ}n|}||dd�jj|dd�}|jdksDt‚dS)NrrwÚname)r±r)r)rqrr±rt)rur‚r°rƒrnr—rrrÚtest_str_cat_name�s z#TestStringMethods.test_str_cat_namec CsD|}|dddddtjgƒ}|j ¡}d}||ks4t‚|jjdd�}d}||ksRt‚|jjdd d �}d }||ksrt‚tjdtjdd d tjgtd�}|ddddddgƒ}|jj|dd�}t||ƒ|jjt|ƒdd�}t||ƒd}t dddgƒ}t j t |d��|j |j ¡WdQRXt j t |d��|j t|ƒ¡WdQRXdS)NrrwrdZaabbcú-)Úna_repzaabbc-rZÚNA)rr´Z a_a_b_b_c_NAÚdÚfoo)riÚaaza-ÚbbZbdZcfooz--zîózTestStringMethods.rrr“znp.arrayc CsJtdddgƒ}||ƒ}d}tjt|d��|jj|ddd�WdQRXdS) Nrrwrdz;Concatenation requires list-likes containing only strings.*)r+Úouterr³)rr´)rrxryr�rqr)rurƒrÉr–r„r}rrrÚtest_str_cat_wrong_dtype_raisesæs z1TestStringMethods.test_str_cat_wrong_dtype_raisesc CsÌ|}tddddgƒ}|tkr |n t||d�}tdddd g|jd�}t|t||d�gd d �}td d ddgƒ}|tkrv|nt|j|jd�}|j |¡}t||ƒ|j |j¡}t||ƒ|j ||g¡}t||ƒ|j ||jg¡}t||ƒddddg|_|ddddgƒ}|tk�r|nt|j|jd�}|j ||g¡}t||ƒ|j ||jg¡}t||ƒddddg|_|ddddgƒ}|tk�rˆ|nt|j|jd�}|j |¡}t||ƒd}tdddgƒ} t| | gd d �} tj t |d��|j | j¡WdQRXtj t |d��|j | j|jg¡WdQRXtj t |d��|j | j|g¡WdQRXd}tdt j ddgƒ} tj t |d��|j | dg¡WdQRXtj t |d��|j | |g¡WdQRXtj t |d��|j | |jg¡WdQRXtj t |d��|j | | |gg¡WdQRXtj t |d��|j t| ƒ¡WdQRXtj t |d��|j | t| ƒg¡WdQRXtj t |d��|j d ¡WdQRXtj t |d�� |j t|jt|ƒgƒ¡WdQRXdS)Nrrwrdr¶)r(ÚAÚBÚCÚDr;)ÚaxisZaAaZbBbZcCcZdDdZaDaZbAbZcBcZdCdZaDdZbAaZcBbZdCczrjr½r rrkrrîrí) rurirûr!rnr—rïr�rðrñrrrÚtest_startswithXs     $z!TestStringMethods.test_startswithc Csêtd|ddd|dg|d�}|j d¡}tdtjdddtjdgƒ}t ||¡|jjd|d �}td|ddd|dgƒ}t ||¡tjd tjd dt  ¡ddd d g t d�}t|ƒj d¡}tdtjdtjtjdtjtjtjg ƒ} t || ¡dS)Nrürýrþrÿr·)riFT)r!rrwr;g@r\) rrqr rjr½r rrkrrîrl) rurirûr!rnr—rïr�rðrñrrrÚ test_endswithus    $zTestStringMethods.test_endswithc Csžtddtjddgƒ}|j ¡}tddtjddgƒ}t ||¡tdtjdd t ¡d dd d g ƒ}|j ¡}tdtjdtjtjdtjtjtjg ƒ}t  ||¡dS) NÚFOOÚBARÚBlahÚblurgrôÚBarÚBlurgÚbarTÚblahr;g@) rrjr½rqrWr rrrîÚassert_almost_equal)rurnr—rïr�rrrÚ test_title’s   $zTestStringMethods.test_titlec CsÌtdtjddgƒ}|j ¡}tdtjddgƒ}t ||¡|j ¡}t ||¡tdtjddt  ¡ddd d g ƒ}|j ¡}t|ƒj ¡}tdtjdtjtjdtjtjtjg ƒ}t |tƒs¼t ‚t ||¡dS) NrürþZOMZNOMrrwTr·r;g@) rrjr½rqrXr rrQrrîr rt)rurnr—rïr�rðrñrrrÚtest_lower_upper£s      &z"TestStringMethods.test_lower_upperc Csžtddtjddgƒ}|j ¡}tddtjddgƒ}t ||¡tdtjdd t ¡d dd d g ƒ}|j ¡}tdtjdtjtjdtjtjtjg ƒ}t  ||¡dS) NrrrrrôrrrTr r;g@) rrjr½rqrEr rrrîr )rurnr—rïr�rrrÚtest_capitalizeµs   $z!TestStringMethods.test_capitalizec Csžtddtjddgƒ}|j ¡}tddtjddgƒ}t ||¡tdtjdd t ¡ddd d g ƒ}|j ¡}tdtjdtjtjdtjtjtjg ƒ}t  ||¡dS) Nrrrrr·rZbLAHZBLURGTr;g@) rrjr½rqrVr rrrîr )rurnr—rïr�rrrÚ test_swapcaseÅs   $zTestStringMethods.test_swapcasecCsºdddddg}t|ƒ}|j ¡ ¡dd„|Dƒks6t‚|j ¡ ¡dd„|DƒksVt‚|j ¡ ¡d d„|Dƒksvt‚|j ¡ ¡d d„|Dƒks–t‚|j ¡ ¡d d„|Dƒks¶t‚dS) NrÞrßZCCCZDdddZeEEEcSsg|] }| ¡‘qSr)rQ)r[Úvrrrr«Øsz6TestStringMethods.test_casemethods..cSsg|] }| ¡‘qSr)rX)r[rrrrr«ÙscSsg|] }| ¡‘qSr)rW)r[rrrrr«ÚscSsg|] }| ¡‘qSr)rE)r[rrrrr«ÛscSsg|] }| ¡‘qSr)rV)r[rrrrr«Üs) rrqrQÚtolistrtrXrWrErV)rurnr–rrrÚtest_casemethodsÕs    z"TestStringMethods.test_casemethodsc Cs¨tdtjgƒ}|jjdddd�}tdtjgƒ}t ||¡|jjddddd�}td tjgƒ}t ||¡td tjd dt ¡d ddd g ƒ}t|ƒjjdddd�}tdtjdtjtjdtjtjtjg ƒ}t |tƒsÒt ‚t  ||¡td  d¡gƒ}td  d¡gƒ}|jjddt jdd�}t ||¡d}x~ttfD]r}xjddddifD]X} xPdddgddddgfD]6} || ƒ}tjt|d��|j d| ¡WdQRX�q^W�qBW�q.WdS)NÚfooBAD__barBADzBAD[_]*r)T)róÚfoobarr;)ÚnróÚ foobarBADÚaBADÚbBADÚfooBADg@rrwr·sabcd,àzutf-8sabcd, àz(?<=\w),(?=\w)z, )Úflagsróz!repl must be a string or callabler3rdÚad)r+)rrjr½rqr4r rrrîr rtr rÚreÚUNICODErrxryr�) rurnr—rïr�rðrñr}ÚklassÚreplrÉrrrÚ test_replaceÞs2  &  zTestStringMethods.test_replacec Cs$tdtjgƒ}dd„}|jjd|ddd�}tdtjgƒ}t ||¡d }d d„}tjt |d ��|j d |¡WdQRXd d„}tjt |d ��|j d |¡WdQRXddd„}tjt |d ��|j d |¡WdQRXtdtjgƒ}d}dd„}|jj||dd�}tdtjgƒ}t ||¡dS)NrcSs| d¡ ¡S)Nr)ÚgrouprV)ÚmrrrrË rÌz9TestStringMethods.test_replace_callable..z [a-z][A-Z]{2}rCT)rróÚfoObaD__baRbaDzO((takes)|(missing)) (?(2)from \d+ to )?\d+ (?(3)required )positional arguments?cSsdS)NrrrrrrËrÌ)r+rcSsdS)Nr)r!rÊrrrrËrÌcSsdS)Nr)r!rÊÚyrrrrËrÌz Foo Bar Bazz,(?P\w+) (?P\w+) (?P\w+)cSs| d¡ ¡S)NZmiddle)r rV)r!rrrrË#rÌ)róZbAR)N) rrjr½rqr4r rrxryr�)rurnrr—rïZp_errrørrrÚtest_replace_callables*  z'TestStringMethods.test_replace_callablec Cs tdtjgƒ}t d¡}|jj|ddd�}tdtjgƒ}t ||¡|jj|dddd�}td tjgƒ}t ||¡td tjd dt   ¡d ddd g ƒ}t|ƒjj|ddd�}tdtjdtjtjdtjtjtjg ƒ}t |tƒsÜt ‚t  ||¡td d¡gƒ}td d¡gƒ}tjdtjd�}|j |d¡}t ||¡tdtjgƒ}t d¡}tjtdd��|jj|dtjd�}WdQRXtjtdd��|jj|ddd�}WdQRXtjtdd��|jj|ddd�}WdQRXtdtjgƒ}dd„}t d¡}|jj||dd �}td!tjgƒ}t ||¡dS)"NrzBAD[_]*r)T)rórr;)rrórrrrg@rrwr·sabcd,àzutf-8sabcd, àz(?<=\w),(?=\w))rz, ZfooBAD__barBAD__badzcase and flags cannot be)r+F)rõcSs| d¡ ¡S)Nr)r rV)r!rrrrËWrÌz?TestStringMethods.test_replace_compiled_regex..z [a-z][A-Z]{2}rC)rr")rrjr½rÚcompilerqr4r rrrîr rtr rrrxryr¾Ú IGNORECASE) rurnrør—rïr�rðrñrrrrÚtest_replace_compiled_regex(sB   &    z-TestStringMethods.test_replace_compiled_regexc Csâtddtjgƒ}tddtjgƒ}|jjdddd�}t ||¡tddtjgƒ}|jjdddd�}t ||¡d d „}t d ¡}d }t j t |d ��|jjd|dd�WdQRXd}t j t |d ��|jj|ddd�WdQRXdS)Nzf.or·Zbaozf.ÚbaT)róFcSs| d¡ ¡S)Nr)r rV)r!rrrrËjrÌz8TestStringMethods.test_replace_literal..z [a-z][A-Z]{2}z2Cannot use a callable replacement when regex=False)r+ÚabczCCannot use a compiled regex as replacement pattern with regex=Falser)) rrjr½rqr4r rrr%rxryr¾)rurnrïr—Z callable_replZ compiled_patr}rrrÚtest_replace_literal]s   z&TestStringMethods.test_replace_literalc Csøtddtjdtjdgƒ}|j d¡}tddtjdtjd gƒ}t ||¡|j d d dd d dg¡}tddtjdtjdgƒ}t ||¡tdtjddt ¡ddd dg ƒ}t|ƒj d¡}tdtjdtjtjdtjtjtjg ƒ}t |tƒsèt ‚t ||¡dS)Nrrwrdr¶r3rÞrßÚcccràr;rCr¬éér¹ÚccccZddddddTr·g@Z foofoofoo) rrjr½rqr2r rrrîr rt)rurnr—rïr�rðrñrrrÚ test_repeatus    $zTestStringMethods.test_repeatcCs|tddgdd�}|j ddg¡}tddgdd�}t ||¡tddgdd�}|j ddg¡}tddgdd�}t ||¡dS)Nrrc)rir3r¬rÞrw)rrqr2r r)rurnr—rïrrrÚtest_repeat_with_nullŠs z'TestStringMethods.test_repeat_with_nullc Cs�tdtjdgƒ}|j d¡}tdtjdgƒ}t ||¡tddtjdgƒ}|j d¡}tddtjdgƒ}t ||¡tdtjd dt ¡ddd d g ƒ}t|ƒj d¡}tdtjdtjtjdtjtjtjg ƒ}t |tƒsØt ‚t ||¡td d tjgƒjjd dd�}tdddgƒ}t ||¡td d tjgƒj d ¡}tdtjtjgƒ}t ||¡tddddgƒ}|jjddd�}tddddgƒ}t ||¡dS)Nrr·z.*(BAD[_]+).*(BAD)TFÚBAD_BADleroybrownz.*BAD[_]+.*BADÚaBAD_BADÚ BAD_b_BADr;g@rr)r!rÆÚABr)ÚABC)rõ) rrjr½rqr+r rrrîr rt) rurnr—rïr�rðrñÚresr˜rrrÚ test_match–s@    &   zTestStringMethods.test_matchcCsÀtddtjdgƒ}|j d¡}tddtjdgƒ}t ||¡tddtjdgdd�}|j d¡}tddtjdgd d�}t ||¡td d d d gƒ}|jjd dd�}tddddgƒ}t ||¡dS)Nrr1r·z.*BAD[_]+.*BADTFrc)riÚbooleanrÆr4r)r5)rõ)rrjr½rqr,r r)rurnr—rïZ string_valuesZ string_expr˜rrrÚtest_fullmatchÂs    z TestStringMethods.test_fullmatchc Cs>tdtjdgƒ}tjtdd��|jjddd�WdQRXdS)Nrr·zexpand must be True or False)r+z.*(BAD[_]+).*(BAD))r#)rrjr½rxryr¾rqr")rurnrrrÚtest_extract_expand_None×sz*TestStringMethods.test_extract_expand_NonecCsJtdtjdgƒ}|j d¡}t|tƒs*t‚|jjddd�}t  ||¡dS)Nrr·z .*(BAD[_]+).*T)r#) rrjr½rqr"r rrtr r•)rurnZresult_unspecifiedZ result_truerrrÚtest_extract_expand_unspecifiedÜs  z1TestStringMethods.test_extract_expand_unspecifiedc Cs:tdtjdgƒ}tjtjg}|jjddd�}tddg||gƒ}t ||¡tdtjd d t  ¡ddd d g ƒ}t|ƒjjddd�}td dg|d dg||||||g ƒ}t ||¡tdtjdgƒ}|jjddd�}tddg||gƒ}t ||¡t dddddgƒ}t j t dd��|jjddd�WdQRXxØtt gD]Ì}|dddgƒ} d} t j t | d��| jjddd�WdQRXt j t | d��| jjddd�WdQRX|ddgƒ} | jjddd�}|jdk�sÆt‚|ddgdd�}|tk�rît ||¡n t ||¡�q0Wtdddgƒ} | jjddd�}ttjtjtjgtd �}t ||¡| jjd!dd�}ttjtjgtjtjgtjtjggtd �}t ||¡| jjd"dd�}tdd#tjgƒ}t ||¡| jjddd�}tdd$gd#d%gtjtjggƒ}t ||¡| jjd&dd�}tdd#tjgd'd�}t ||¡| jjd(dd�}tdd$gd#d%gtjtjggd'd)gd*�}t ||¡| jjd+dd�}tdd$gd#d%gtjtjggd,d)gd*�}t ||¡| jjd-dd�}tdd#tjgƒ}t ||¡td.d/d0gƒjjd1dd�}tdd$gd#d%gtjtjggƒ}t ||¡tddd2gƒjjd3dd�}tdd$gd#d%gtjd2ggd'd)gd*�}t ||¡tddd4gƒjjd5dd�}tdd$gd#d%gd4tjggd'd)gd*�}t ||¡d6d7„} tjtjtjtjtjtjg} x| D]}| |ƒƒ�qÐWtd8d9d:gd;d�} | jjdd?gd@d�}t ||¡|j|jk�s6t‚dS)ANrr·z.*(BAD[_]+).*(BAD)F)r#ÚBAD__ÚBADr2r3Tr;g@ÚBAD_ÚA1ÚA2ÚA3ZA4ZB5Ú supported)r+z ([AB])([123])ÚB2ÚC3z"pattern contains no capture groupsz [ABC][123]z (?:[AB]).*z (?PA)\dÚunorÏ)r±z(_))riz(_)(_)z ([AB])[123]rÐrºr»z(?P[AB])Úletterz!(?P[AB])(?P[123])Únumber)Úcolumnsz([AB])(?P[123])rz([AB])(?:[123])ÚA11ÚB22ÚC33z([AB])([123])(?:[123])r¼z"(?P[AB])?(?P[123])rÑz#(?P[ABC])(?P[123])?cSs¨dddg}|dt|ƒ…}t||d�}|jjddd�}tdd tjg|d�}t ||¡t||d�jjd dd�}d dgd d gdtjgg}t|d dg|d�}t  ||¡dS)Nr?rCrÑ)r(z(\d)F)r#rºr»z(?P\D)(?P\d)?rÏrÐrFrG)rHr() rPrrqr"rjr½r rrr•)r(rÉr–r—rïÚe_listrrrÚ check_indexns    z@TestStringMethods.test_extract_expand_False..check_indexÚa3Úb3Úc2Zbobz(?P[a-z])rrwrdZsue)rrjr½rqr"rr r•rrîrrxryr¾r±rtrrrlÚmakeStringIndexÚmakeUnicodeIndexÚ makeIntIndexÚ makeDateIndexÚmakePeriodIndexÚmakeRangeIndex)rurnÚerr—rïr�rðÚidxrÚs_or_idxr}r–rMÚi_funsr(Úrr×rrrÚtest_extract_expand_Falseãs¾  "     (    $ $     "  "   z+TestStringMethods.test_extract_expand_Falsec Csttdtjdgƒ}tjtjg}|jjddd�}tddg||gƒ}t ||¡tdtjd dt  ¡ddd d g ƒ}t|ƒjjddd�}td dg|d dg||||||g ƒ}t ||¡xÂtt gD]¶}|d ddgƒ}d} t j t | d��|jjddd�WdQRXt j t | d��|jjddd�WdQRX|d dgƒ}|jjddd�} t| tƒ�sLt‚| d} t | tddgdd�¡q¶WdS)Nrr·z.*(BAD[_]+).*(BAD)T)r#r<r=r2r3r;g@r>r?rCrDz"pattern contains no capture groups)r+z [ABC][123]z (?:[AB]).*r@z (?PA)\drErÏ)r±)rrjr½rqr"rr r•rrîrrxryr¾r rtr) rurnrWr—rïr�rðrrYr}Z result_dfZ result_seriesrrrÚtest_extract_expand_True�s<  "  z*TestStringMethods.test_extract_expand_TruecCsÖ�xÎdD�]Ä}tdddg|d�}|jjddd�}ttjtjtjgtd �}t ||¡|jjd dd�}ttjtjgtjtjgtjtjggtd �}t ||¡|jjd dd�}td d tjgƒ}t ||¡|jjddd�}td dgd dgtjtjggƒ}t ||¡|jjddd�}tdd d tjgiƒ}t ||¡|jjddd�}d dgd dgtjtjgg}t|ddgd�}t ||¡|jjddd�}t|ddgd�}t ||¡|jjddd�}td d tjgƒ}t ||¡qWdS)N)NÚ series_namer?rCrD)r±z(_)T)r#)riz(_)(_)z ([AB])[123]rÏrÐz ([AB])([123])rºr»z(?P[AB])rFz!(?P[AB])(?P[123])rG)rHz([AB])(?P[123])rz([AB])(?:[123])) rrqr"rrjr½rlr r•)rur^r–r—rïrLrrrÚtest_extract_series¾s8 (      z%TestStringMethods.test_extract_seriescCs"tdddgƒjjddd�}tddgd d gtjtjggƒ}t ||¡td d d gƒjjddd�}ddgd d gtjd gg}t|ddgd�}t ||¡td d dgƒjjddd�}ddgd d gdtjgg}t|ddgd�}t ||¡dd„}tjtj tj tj tj tj g}x|D]}||ƒƒ�q WdS)NrIrJrKz([AB])([123])(?:[123])T)r#rÏrºrÐr»r?rCr¼z"(?P[AB])?(?P[123])rFrG)rHrÑz#(?P[ABC])(?P[123])?cSs¤dddg}|dt|ƒ…}t||d�jjddd�}tdd tjg|d�}t ||¡t||d�jjd dd�}d dgd d gdtjgg}t|d dg|d�}t ||¡dS)Nr?rCrÑ)r(z(\d)T)r#rºr»z(?P\D)(?P\d)?rÏrÐrFrG)rHr() rPrrqr"rrjr½r r•)r(rÉr—rïrLrrrrM s   zCTestStringMethods.test_extract_optional_groups..check_index)rrqr"rrjr½r r•rQrRrSrTrUrV)rur—rïrLrMrZr(rrrÚtest_extract_optional_groupsîs.       z.TestStringMethods.test_extract_optional_groupscCsDtdddgdd�}|jjddd�}td d d d giƒ}t ||¡dS) NrNrOrPr^)r±z(?P[a-z])T)r#rFrrwrd)rrqr"rr r•)rur–r[r×rrrÚ'test_extract_single_group_returns_frame"sz9TestStringMethods.test_extract_single_group_returns_framec CsÖdddddtjdg}ddd d d d d dg}d}dddg}t|ƒ}tjddddddddgdd�}t|||ƒ}|j |tj ¡}t   ||¡t dddd d!d"d#g¡} t|| ƒ} tjd$d%d&d'd(d)d*d+gd,d�}t|||ƒ}| j |tj ¡}t   ||¡t|| ƒ} d-| j _ d.|_ t|||ƒ}| j |tj ¡}t   ||¡dd/d0g}d1}t|ƒj |¡}tjddd2gdd�}td3tjd4ftjd5fg|d6d7gd8�}t   ||¡d9} t|ƒj | ¡}td3tjd4ftjd5fg|d:d7gd8�}t   ||¡dS);Nzdave@google.comztdhock5@gmail.comzmaudelaperriere@gmail.comz'rob@gmail.com some text steve@gmail.comz%a@b.com some text c@d.com and e@f.comr))ÚdaveršÚcom)Ztdhock5Úgmailrc)Zmaudelaperriererdrc)Zrobrdrc)Zsteverdrc)rrwrc)rdr¶rc)r×r\rczq (?P[a-z0-9]+) @ (?P[a-z]+) \. (?P[a-z]{2,4}) ÚuserÚdomainÚtld)rr)r;r)rCr)r3r)r3r;)r¬r)r¬r;)r¬rC)Nr+)rê)ÚsingleÚDave)rhÚToby)rhÚMaude)ÚmultipleÚ robAndSteve)rlÚabcdef)ÚnoneÚmissing)rorh)rhrir)rhrjr)rhrkr)rlrmr)rlrmr;)rlrnr)rlrnr;)rlrnrC)NNr+)ÚmatchesÚ description)rqrrr+r?Z32z"(?P[AB])?(?P[123]))rCr;)rÏrºr¼r»rFrG)rHz([AB])?(?P[123])r)rjr½rrÚ from_tuplesrrqr$rÚVERBOSEr r•r(rê) ruZ subject_listZexpected_tuplesZ named_patternZexpected_columnsÚSZexpected_indexZ expected_dfZ computed_dfZ series_indexZSiZSnÚpatternrrrÚtest_extractall+sŠ             z!TestStringMethods.test_extractallcCs„tdddgdd�}|j d¡}tjddd d gd d �}td ddddgi|ƒ}t ||¡|j d¡}tddddg|ƒ}t ||¡dS)NrNrOÚd4c2r^)r±z(?P[a-z]))rr)r;r)rCr)rCr;)Nr+)rêrFrrwr¶rdz([a-z]))rrqr$rrsrr r•)rur–r[r¥r×rrrÚtest_extractall_single_group‘s   z.TestStringMethods.test_extractall_single_groupcCsVtdddgdd�}|j d¡}tjddd d gd d �}td dddg|ƒ}t ||¡dS)NZab3Zabc3Zd4cd2r^)r±z([a-z]+))rr)r;r)rCr)rCr;)Nr+)rêrÆr)r¶Zcd)rrqr$rrsrr r•)rur–r[r¥r×rrrÚ,test_extractall_single_group_with_quantifier¢s  z>TestStringMethods.test_extractall_single_group_with_quantifierz data, names)N)Úi1)NÚi2)r{r|rNrOrxc s8t|ƒ‰t|ƒdkr*ttˆƒ|dd�}n$‡fdd„tˆƒDƒ}tj||d�}t|d|dd �}tjg|d d�}|j d ¡}tdg|d �}t   ||¡|j d ¡}tddg|d �}t   ||¡|j d¡}tdg|d �}t   ||¡|j d¡}tddg|d �}t   ||¡|j d¡}tddg|d �}t   ||¡dS)Nr;r)r±c3s |]}t|gˆdƒVqdS)r;N)Útuple)r[r¥)rrrú Àsz?TestStringMethods.test_extractall_no_matches..)rêr^rl)r±r(ri)r+z(z))rHr(z(z)(z)z (?Pz)Úfirstz(?Pz)(?Pz)Úsecondz(z)(?Pz)) rPrr®rrsrrqr$rr r•) rurÉrêr¥rr–Úeir[r×r)rrÚtest_extractall_no_matches­s,          z,TestStringMethods.test_extractall_no_matchescCstdddgdd�}|j d¡}tjddd gdd gd �}td d dd gi|d�}t ||¡x@tdddgƒtdddgdd�gD]}|j d¡}t ||¡qzWtdddgdtdddgdd�d�}|j d¡}tjdddgdd gd �}td d dd gi|d�}t ||¡dS)NZa1a2Zb1Zc1Úxxx)r±z[ab](?P\d))rr)rr;)r;rr+)rêÚdigitrºr»)r(Zs_nameÚXXÚyyÚzzZidx_name)r±r()r…r)r…r;)r†r) rrqr$rrsrr r•r)rur–r6Zexp_idxrïrXrrrÚtest_extractall_stringindexÞs(     z-TestStringMethods.test_extractall_stringindexc Cs<tdddgdd�}tjtdd��|j d¡WdQRXdS) NrNrOrxr^)r±zno capture groups)r+z[a-z])rrxryr¾rqr$)rur–rrrÚtest_extractall_errorsýsz(TestStringMethods.test_extractall_errorscCs‚tdddgdddgdd�}|jjjd d d �}td d dgƒ}t ||¡|jjjdd d �}dddg}t|ddgd�}t ||¡dS)NrNrOrxrAZB3ZD4r^)r(r±z([A-Z])T)r#rÏrÐrÒz!(?P[A-Z])(?P[0-9]))rÏr¼)rÐr¼)rÒÚ4rFr„)rH)rr(rqr"rr r•)rur–r[r×rLrrrÚ!test_extract_index_one_two_groupss  z3TestStringMethods.test_extract_index_one_two_groupsc Csþtdddgdd�}d}|jj|dd�}|j |¡}|jd d d �}t ||¡d }|jj|dd�}|j |¡}|jd d d �}t ||¡d }|jj|dd�} |j |¡}|jd d d �}t | |¡d} |jj| dd�} |j | ¡}|jd d d �}t | |¡dS)NrNrOrPr^)r±z([a-z])([0-9])T)r#rr+)Úlevelz!(?P[a-z])(?P[0-9])z(?P[a-z])z([a-z]))rrqr"r$Úxsr r•) rur–Úpattern_two_nonameÚextract_two_nonameZhas_multi_indexZno_multi_indexÚpattern_two_namedÚextract_two_namedÚpattern_one_namedÚextract_one_namedÚpattern_one_nonameÚextract_one_nonamerrrÚtest_extractall_same_as_extracts*       z1TestStringMethods.test_extractall_same_as_extractc Cstjdddgdd�}tdddg|d d �}d }|jj|d d �}|j |¡}|jddd�}t ||¡d}|jj|d d �}|j |¡}|jddd�}t ||¡d} |jj| d d �} |j | ¡}|jddd�}t | |¡d} |jj| d d �} |j | ¡}|jddd�}t | |¡dS)N)rÏr)rÐr€)rÑÚthird)ZcapitalZordinal)rêrNrOrPr^)r±z([a-z])([0-9])T)r#rr+)rŒz!(?P[a-z])(?P[0-9])z(?P[a-z])z([a-z])) rrsrrqr"r$r�r r•) rur¥r–rŽr�Zhas_match_indexZno_match_indexr�r‘r’r“r”r•rrrÚ-test_extractall_same_as_extract_subject_index.s0       z?TestStringMethods.test_extractall_same_as_extract_subject_indexcCsBttd�}}tdd�}ttd�}ttd�}t ||j |¡¡d|j ¡ksRt‚t ||j ¡¡t ||j  d¡¡t ||j  d¡¡t ||j  d¡¡t ||j  d¡¡t ||j  ¡¡t ||j ¡¡t ||j dd¡¡t ||j d¡¡t ||j d¡¡t tdgtd �|jjd d d �¡t tdd gtd �|jjdd d �¡t ||jjd dd �¡t tdd gtd �|jjddd �¡t ttd�|j ¡¡t ||j d¡¡t ||j ¡¡t ||j d¡¡t ||j d¡¡t ||j d¡¡t ||j d¡¡t ||j d¡¡t ||j d¡¡t ||j d¡¡t ||jjddd �¡t ||jj ddd �¡t ||jj!d d�¡t ||jj!d d�¡t ||j "¡¡t ||j #¡¡t ||j $¡¡t ||j %d¡¡t ||j &d¡¡t ||j 'd¡¡t ||j (d¡¡t ||j )¡¡t ||j *¡¡t ||j +¡¡t ||j ,¡¡t ||j -¡¡t ||j .¡¡t ||j /¡¡t ||j 0¡¡t ||j 1¡¡t ||j 2¡¡t ||j 3¡¡t ||j 4d¡¡t 5dd¡}t ||j 6|¡¡dS)N)riÚint64r)rrwr3z^ar)rHriz()T)r#r;z()()Fé*)Ústop)ÚstepÚasciir.)7rrlÚboolr rrqrrtrWrrr>r rQrXr4r2r+r•rr"rFrrPr&r%r6r/rr=rSr0r9r:rUrRrTrBr'rrrGrHrJrMrKrOrNrLrIrErVr-Ú maketransr?)ruZ empty_strrhZ empty_intZ empty_boolZ empty_bytesÚtablerrrÚtest_empty_str_methodsNsv     z(TestStringMethods.test_empty_str_methodscCs<ttd�}tƒ}t ||j d¡¡t ||j d¡¡dS)N)rir)rrqrr r•r0r9)rurhZempty_dfrrrÚtest_empty_str_methods_to_frame”s z1TestStringMethods.test_empty_str_methods_to_framec Cslddddddddd d g }t|ƒ}d d d d d d d d d d g }d d d d d d d d d d g }d d d d d d d d d d g }d d d d d d d d d d g }d d d d d d d d d d g }d d d d d d d d d d g }d d d d d d d d d d g } d d d d d d d d d d g } t |j ¡t|ƒ¡t |j ¡t|ƒ¡t |j ¡t|ƒ¡t |j ¡t|ƒ¡t |j ¡t|ƒ¡t |j  ¡t| ƒ¡t |j  ¡t| ƒ¡|j ¡  ¡d d„|Dƒk�sœt ‚|j ¡  ¡dd„|Dƒk�s¾t ‚|j ¡  ¡dd„|Dƒk�sàt ‚|j ¡  ¡dd„|Dƒk�st ‚|j ¡  ¡dd„|Dƒk�s$t ‚|j  ¡  ¡dd„|Dƒk�sFt ‚|j  ¡  ¡dd„|Dƒk�sht ‚dS)NrÏrwZXyrŠZ3Ar)ZTTZ55r³z TFcSsg|] }| ¡‘qSr)rG)r[rrrrr«¼sz4TestStringMethods.test_ismethods..cSsg|] }| ¡‘qSr)rH)r[rrrrr«½scSsg|] }| ¡‘qSr)rJ)r[rrrrr«¾scSsg|] }| ¡‘qSr)rM)r[rrrrr«¿scSsg|] }| ¡‘qSr)rK)r[rrrrr«ÀscSsg|] }| ¡‘qSr)rO)r[rrrrr«ÁscSsg|] }| ¡‘qSr)rN)r[rrrrr«Âs) rr rrqrGrHrJrMrKrOrNrrt) rurnZstr_sZalnum_eZalpha_eZdigit_eZnum_eZspace_eZlower_eZupper_eZtitle_errrÚtest_ismethodsšsB""""""z TestStringMethods.test_ismethodscCs6dddddddg}t|ƒ}dd d dd d dg}dd dddd dg}t |j ¡t|ƒ¡t |j ¡t|ƒ¡dddddddg}|j ¡ ¡d d „|Dƒksœt‚|j ¡ ¡d d „|Dƒks¼t‚dtj ddtj ddg}t|ƒ}dtj d dtj d dg}dtj ddtj d dg}t |j ¡t|ƒ¡t |j ¡t|ƒ¡dS) NrÏr¼õ¼u★uá�¸u3ZfourFTcSsg|] }| ¡‘qSr)rL)r[rrrrr«Ñsz4TestStringMethods.test_isnumeric..cSsg|] }| ¡‘qSr)rI)r[rrrrr«Òs) rr rrqrLrIrrtrjr½)rurnr–Z numeric_eZ decimal_eZunicodesrrrÚtest_isnumericÄs  z TestStringMethods.test_isnumericcCsÜtddtjgƒ}|j d¡}tdddgdddgdddggtdƒd�}t ||¡tdd d gƒ}|j d ¡}tdddgdddgdddggtd ƒd�}t ||¡t ddd gƒ}|j d¡}t j dddgdd�}t  ||¡dS)Nza|bza|crÁr;rr))rHza;bréú;Z7abzb|c)r;r;r)r;rr;)rr;r;)rrwrd)rê) rrjr½rqrFrr“r r•rrrsr)rur–r—r˜rXrrrÚtest_get_dummiesÛs (  (  z"TestStringMethods.test_get_dummiescCsŽtdddgƒ}|j d¡}tdddgdddgdddggdddgd�}t ||¡td d d gƒ}|j d ¡}tjd ddgdd�}t  ||¡dS)Nrzb,namerwrr;rr±)rHza|bzname|czb|namerÁ)r;r;rr)rrr;r;)rr;rr;)rrwrdr±)rê) rrqrFrr r•rrrsr)rur–r—r˜rXrrrÚ test_get_dummies_with_name_dummyïs (  z2TestStringMethods.test_get_dummies_with_name_dummyc Cs®tddtjdgƒ}|j d¡j d¡}t ||¡tdtjddt  ¡ddd d g ƒ}t|ƒj d¡j d¡}tdtjdtjtjdtjtjtjg ƒ}t |tƒsžt ‚t  ||¡dS) NÚa_b_cÚc_d_eÚf_g_hrZÚa_bÚ asdf_cas_asdfTr·r;g@) rrjr½rqr=rr rrrîr rtr )rurnr—r�rðrñrrrÚ test_joins4  zTestStringMethods.test_joinc Csªtdddtjdgƒ}|j ¡}| dd„¡}t ||¡tdtjdd t  ¡ddd d g ƒ}t|ƒj ¡}td tjd tjtjd tjtjtjg ƒ}t |tƒsšt ‚t  ||¡dS)Nr·ZfoooZfoooooZfooooooocSst|ƒrt|ƒStjS)N)r rPrjr½)rÊrrrrË+rÌz,TestStringMethods.test_len..r­r®Tr;g@r3é ) rrjr½rqrPÚmapr rrrîr rtr )rurnr—rïr�rðrñrrrÚtest_len's$  &zTestStringMethods.test_lenc Cs¼tdtjddgƒ}|j d¡}tddgtjgdggƒ}t ||¡tdtjddt ¡ddddg ƒ}t|ƒj d¡}tddgtjgtjtjdgtjtjtjg ƒ}t |tƒs¬t ‚t ||¡dS) Nrr·r=zBAD[_]*r<Tr;g@) rrjr½rqr&r r rrîr rt)rurnr—rïr�rðrñrrrÚ test_findallCs6   zTestStringMethods.test_findallc CsNtdddddgƒ}|j d¡}t |tddd d d gƒ¡tjd d „|jDƒtjd�}t  |j|¡|j  d¡}t |tddddd gƒ¡tjdd „|jDƒtjd�}t  |j|¡|j dd¡}t |tddddd gƒ¡tjdd „|jDƒtjd�}t  |j|¡|j  dd¡}t |tddddd gƒ¡tjdd „|jDƒtjd�}t  |j|¡|j ddd¡}t |tddd dd gƒ¡tjdd „|jDƒtjd�}t  |j|¡|j  ddd¡}t |tddd dd gƒ¡tjdd „|jDƒtjd�}t  |j|¡t j t dd��|j d ¡}WdQRXt j t dd��|j  d ¡}WdQRXdS)NÚABCDEFGÚBCDEFEFÚ DEFGHIJEFÚEFGHEFÚXXXXÚEFr¬r3r;réÿÿÿÿcSsg|]}| d¡‘qS)r¹)r%)r[rrrrr«osz/TestStringMethods.test_find..)rir,r¦cSsg|]}| d¡‘qS)r¹)r6)r[rrrrr«tscSsg|]}| dd¡‘qS)r¹r3)r%)r[rrrrr«yscSsg|]}| dd¡‘qS)r¹r3)r6)r[rrrrr«~sr-cSsg|]}| ddd¡‘qS)r¹r3r-)r%)r[rrrrr«ƒscSsg|]}| ddd¡‘qS)r¹r3r-)r6)r[rrrrr«‰sz!expected a string object, not int)r+)rrqr%r rrjrkrnr™Úassert_numpy_array_equalr6rxryr�)rurnr—r˜rrrÚ test_findks<  zTestStringMethods.test_findc Cs"tdtjdtjdgƒ}|j d¡}t |tdtjdtjdgƒ¡|j d¡}t |tdtjdtjdgƒ¡|j dd ¡}t |tdtjdtjdgƒ¡|j dd ¡}t |tdtjdtjdgƒ¡|j dd d ¡}t |tdtjdtjdgƒ¡|j dd d ¡}t |tdtjdtjdgƒ¡dS) Nr´r¶r¸r¹r¬r;rºr¦r3r-)rrjr½rqr%r rr6)rurnr—rrrÚ test_find_nan“s  zTestStringMethods.test_find_nanc CsÚdd„}�xlttgD�]^}|ddddgƒ}|j d¡}|||dd d d gƒƒtjd d „|jDƒtjd�}t  |j|¡|j  d¡}|||ddddgƒƒtjdd „|jDƒtjd�}t  |j|¡|j dd ¡}|||dd ddgƒƒtjdd „|jDƒtjd�}t  |j|¡|j  dd ¡}|||ddddgƒƒtjdd „|jDƒtjd�}t  |j|¡|j ddd¡}|||ddddgƒƒtjdd „|jDƒtjd�}t  |j|¡|j  dd d¡}|||dd d dgƒƒtjdd „|jDƒtjd�}t  |j|¡t j t dd��|j d¡}WdQRXd}t j t|d��|j d ¡}WdQRXt j t|d��|j  d ¡}WdQRXqWtdddtjgƒ}|j d¡}t |td d d tjgƒ¡|j  d¡}t |td d d tjgƒ¡dS)!NcSs(t|tƒrt ||¡n t ||¡dS)N)r rr rr)r—r˜rrrÚ_check¨s z,TestStringMethods.test_index.._checkr´rµr¶r·r¹r¬r3r;rcSsg|]}| d¡‘qS)r¹)r()r[rrrrr«³sz0TestStringMethods.test_index..)rir,r¦cSsg|]}| d¡‘qS)r¹)r7)r[rrrrr«¸scSsg|]}| dd¡‘qS)r¹r3)r()r[rrrrr«½scSsg|]}| dd¡‘qS)r¹r3)r7)r[rrrrr«ÂsrÚécSsg|]}| ddd¡‘qS)rÚr¬r¿)r()r[rrrrr«ÇscSsg|]}| ddd¡‘qS)rÚrr,)r7)r[rrrrr«Ìszsubstring not found)r+ZDEz!expected a string object, not intZabcbrÆZbcberwrC)rrrqr(rjrkrnr™r r»r7rxryr¾r�r½r)rur¾rr–r—r˜r}rrrÚ test_index§sN    zTestStringMethods.test_indexc Cstddtjdtjdgƒ}|jjddd�}tdd tjd tjdgƒ}t ||¡|jjdd d�}td d tjdtjdgƒ}t ||¡|jjddd�}tddtjdtjdgƒ}t ||¡tdtjddt ¡ddddg ƒ}t|ƒjjddd�}tdtjd tjtjdtjtjtjg ƒ}t |tƒ�st ‚t ||¡tdtjddt ¡ddddg ƒ}t|ƒjjdd d�}td tjd tjtjdtjtjtjg ƒ}t |tƒ�s”t ‚t ||¡tdtjddt ¡ddddg ƒ}t|ƒjjddd�}tdtjdtjtjdtjtjtjg ƒ}t |tƒ�s t ‚t ||¡dS)NrrwrdÚeeeeeer,r)Úsidez az bz crza zb zc Úbothz a z b z c TÚeer;g@z eezee z ee ) rrjr½rqr/r r rrîr rt)rurnr—rïr�rðrñrrrÚtest_padàs8    $  $  $zTestStringMethods.test_padc Cstddtjdtjdgƒ}|jjdddd�}td d tjd tjdgƒ}t ||¡|jjdd dd�}td dtjdtjdgƒ}t ||¡|jjdddd�}tddtjdtjdgƒ}t ||¡d}tjt |d��|jjddd�}WdQRXd}tjt |d��|jjddd�}WdQRXdS)NrrwrdrÁr,rÚX)rÂÚfillcharÚXXXXaZXXXXbZXXXXcrÚaXXXXZbXXXXZcXXXXrÃÚXXaXXZXXbXXZXXcXXz%fillchar must be a character, not str)r+ÚXY)rÇz%fillchar must be a character, not int) rrjr½rqr/r r rxryr�)rurnr—rïr}rrrÚtest_pad_fillchar s    z#TestStringMethods.test_pad_fillcharr\rr*r8rDr/c CsBtddddgƒ}d}tjt|d��t|j|ƒdƒWdQRXdS)NrºÚ22rr¹z#width must be of integer type, not*)r+r\)rrxryr�r‹rq)rur\r–r}rrrÚtest_pad_width& sz TestStringMethods.test_pad_widthcCsšdd„}xRttgD]F}|ddddgƒ}t dd¡}|j |¡}|d d d d gƒ}|||ƒqWtd dddgƒ}tdddtjgƒ}|j |¡}t ||¡dS)NcSs(t|tƒrt ||¡n t ||¡dS)N)r rr rr)r—r˜rrrr¾0 s z0TestStringMethods.test_translate.._checkZabcdefgZabccZcdddfgZcdefgggr)ÚcdeZcdedefgZcdeeZedddfgZedefgggrrwrdg333333ó?r¶r×) rrrqrŸr?rjr½r r)rur¾rr–r r—r˜rrrÚtest_translate/ s   z TestStringMethods.test_translatec CsÊtddtjdtjdgƒ}|j d¡}tddtjdtjdgƒ}t ||¡|j d¡}td d tjd tjdgƒ}t ||¡|j d¡}td d tjdtjdgƒ}t ||¡tdtjddt   ¡dddddg ƒ}t|ƒj d¡}tdtjdtjtjddtjtjtjg ƒ}t |tƒ�st ‚t ||¡t|ƒj d¡}td tjd tjtjd dtjtjtjg ƒ}t |tƒ�sft ‚t ||¡t|ƒj d¡}td tjd tjtjddtjtjtjg ƒ}t |tƒ�sºt ‚t ||¡dS)NrrwrdrÁr,z a z b z c za zb zc z az bz cTZeeer;g@z eee zeee z eee) rrjr½rqrr r r*r8rrîr rt)rurnr—rïr�rðrñrrrÚtest_center_ljust_rjustC sl            z)TestStringMethods.test_center_ljust_rjustc CsNtdddddgƒ}|jjddd�}td d d ddgƒ}t ||¡tjd d „|jDƒtjd�}t  |j|¡|jj ddd�}tdddddgƒ}t ||¡tjdd „|jDƒtjd�}t  |j|¡|jj ddd�}tddd ddgƒ}t ||¡tjdd „|jDƒtjd�}t  |j|¡d}t j t|jdd�d��|jjddd�WdQRXt j t|jdd�d��|jj ddd�WdQRXt j t|jdd�d��|jj ddd�WdQRXt j t|jdd�d��|jjddd�WdQRXt j t|jdd�d��|jj ddd�WdQRXt j t|jdd�d��|jj ddd�WdQRXdS)Nrr¹r.ZdddddrÁr,rÆ)rÇrÊZXXbbXZXcccccSsg|]}| dd¡‘qS)r,rÆ)r)r[rrrrr«“ szFTestStringMethods.test_center_ljust_rjust_fillchar..)rirÉZbbXXXZccccXcSsg|]}| dd¡‘qS)r,rÆ)r*)r[rrrrr«™ srÈZXXXbbcSsg|]}| dd¡‘qS)r,rÆ)r8)r[rrrrr«Ÿ sz)fillchar must be a character, not {dtype}rq)r+rËÚintr;)rrqrr rrjrkrnrír»r*r8rxryr�Úformat)rurnr—r˜ÚtemplaterrrÚ test_center_ljust_rjust_fillchar� s:   z2TestStringMethods.test_center_ljust_rjust_fillcharcCstdddddgƒ}|j d¡}tddd d dgƒ}t ||¡tjd d „|jDƒtjd �}t  |j|¡|j d¡}tdddddgƒ}t ||¡tjdd „|jDƒtjd �}t  |j|¡tdtj dtj dgƒ}|j d¡}tdtj d tj dgƒ}t ||¡dS)NrºrÍrÞZ333Z45678r,Z00001Z00022Z00aaaZ00333cSsg|]}| d¡‘qS)r,)rD)r[rrrrr«¿ sz0TestStringMethods.test_zfill..)rir3Z001Z022cSsg|]}| d¡‘qS)r3)rD)r[rrrrr«Å s) rrqrDr rrjrkrnrír»r½)rurnr—r˜rrrÚ test_zfill¹ s     zTestStringMethods.test_zfillc Cs†tddtjdgƒ}|j d¡}tdddgddd gtjd d d ggƒ}t ||¡td dtjdgƒ}|j d¡}t ||¡|jjddd�}t ||¡tdtjddt ¡dddgƒ}|j d¡}tdddgtjdd d gtjtjtjtjtjgƒ}t |tƒsüt ‚t  ||¡|jjddd�}t |tƒ�s(t ‚t  ||¡tddtjdgƒ}|j d¡}tdddgddd gtjd d d ggƒ}t ||¡dS)Nrªr«r¬rZrrwrdr¶r×r\Úgr­Úa__b__cÚc__d__eÚf__g__hÚ__F)r#Úd_e_fTr;g@za,b_czc_d,ezf,g,hz[,_]) rrjr½rqr=r rrrîr rtr )rurnr—rïr�rrrÚ test_splitÍ s: $         $zTestStringMethods.test_splitrcr‘r=rScCsptdtjdg|d�}tddgtjddggƒ}t|j|ƒddd�}t ||¡t|j|ƒdd d�}t ||¡dS) Nza bzb c)rirrwrdr1)rr)rÚpdrµr‹rqr r)rurir‘r–r˜r—rrrÚ test_split_nø s  zTestStringMethods.test_split_nc CsÆtddtjdgƒ}|j d¡}tdddgddd gtjd d d ggƒ}t ||¡td dtjdgƒ}|j d¡}t ||¡|jjddd�}t ||¡tdtjddt ¡dddgƒ}|j d¡}tdddgtjdd d gtjtjtjtjtjgƒ}t |tƒsüt ‚t  ||¡|jjddd�}t |tƒ�s(t ‚t  ||¡tddtjdgƒ}|j d¡}tdgdgtjdggƒ}t ||¡tddtjdgƒ}|jjddd�}tddgdd gtjdd ggƒ}t ||¡dS)Nrªr«r¬rZrrwrdr¶r×r\r×r­rØrÙrÚrÛF)r#rÜTr;g@za,b_czc_d,ezf,g,hz[,_])rr­Úc_dÚf_g) rrjr½rqrSr rrrîr rtr )rurnr—rïr�rrrÚ test_rsplit sB $          zTestStringMethods.test_rsplitcCsštdgdd�}|jjdd�}tggƒ}t ||¡tddddgdd�}|jjdd�}td d d gd d tjgtjtjtjgtjtjtjggƒ}t ||¡dS) Nr)Útest)r±T)r#za b cza br1rrwrd)rrqr=rr r•rjr½)rurnr—rïrrrÚtest_split_blank_string4 s   z)TestStringMethods.test_split_blank_stringcCsLtddgƒ}|j ¡}ddg}|d|ks.t‚|j ¡}|d|ksHt‚dS)Nz Wes McKinneyzTravis OliphantZTravisZOliphantr;)rrqr=rtrS)rur–r—r˜rrrÚtest_split_noargsG s    z#TestStringMethods.test_split_noargscCs’tddgƒ}|jjdd�}|j ¡}t ||¡|jjdd�}t ||¡|j d¡}|jjddd�}t ||¡|jjddd�}t ||¡dS)Nz bd asdf jfgzkjasdflqw asdfnfkrº)rrZasdf)rrqr=r r)rur–r—rñrrrÚtest_split_maxsplitP s      z%TestStringMethods.test_split_maxsplitcCsDtddgƒ}|jjdd�}tddgddgdœƒ}tj||d d �dS) Nz split oncezsplit once too!r;)rr=Úoncez once too!)rr;F)Zcheck_index_type)rrqr=r r)rur–r—r˜rrrÚ test_split_no_pat_with_nonzero_nb s z2TestStringMethods.test_split_no_pat_with_nonzero_nc CsXtddgƒ}|jjddd�}tdtddgƒiƒ}t ||¡tddgƒ}|jjddd�}td d gd d gd dgdœƒ}t ||¡tddgƒ}|jjddd�}td dgddgd dgtjdgtjdgtjdgdœƒ}t ||¡tddgddgd�}|jjddd�}td d gd dgd œddgd�}t ||¡tj t d!d"��|jjdd#d�WdQRXdS)$NÚnosplitÚ alsonosplitrZT)r#rÚsome_equal_splitsÚ with_no_nansÚsomeÚwithÚequalÚnoÚsplitsÚnans)rr;rCÚsome_unequal_splitsÚone_of_these_things_is_notÚoneÚunequalÚofÚtheseÚthingsÚisÚnot)rr;rCr3r¬r,Ú some_splitsÚ with_indexÚpreserveÚme)r(r()rr;zexpand must be)r+Ú not_a_boolean) rrqr=rr r•rjr½rxryr¾)rur–r—rïrrrÚtest_split_to_dataframeh s4       z)TestStringMethods.test_split_to_dataframec CsFtddtjgƒ}|jjddd�}|}t ||¡|jdks>t‚tddtjdgƒ}|jjddd�}t   d d tjtjtjgdddgg¡}t ||¡|jd ksžt‚td d tjdgƒ}|jjddd�}t   dddtjtjtjfdtjtjtjtjtjtjfdg¡}t ||¡|jdk�st‚t j t dd��|jjddd�WdQRXdS)NrérêrZT)r#r;rërì)rírïrñ)rîrðròr3rórôrírörñ)rõr÷rørùrúrû)NNNNNNr-zexpand must be)r+r)rrjr½rqr=r rÚnlevelsrtrrsrxryr¾)rurXr—rïrrrÚtest_split_to_multiindex_expand� s2   z1TestStringMethods.test_split_to_multiindex_expandcCs@tddgƒ}|jjddd�}tdtddgƒiƒ}t ||¡tddgƒ}|jjddd�}td d gd d gd dgdœƒ}t ||¡|jjdddd�}td d gd d gd dgdœƒ}t ||¡|jjdddd�}tddgd dgdœƒ}t ||¡tddgddgd�}|jjddd�}td d gd dgdœddgd�}t ||¡dS)NrérêrZT)r#rrërìrírîrïrðrñrò)rr;rCrC)r#rr;Ú some_equalÚwith_no)rr;rürýrþrÿ)r(r()rrqrSrr r•)rur–r—rïrrrÚtest_rsplit_to_dataframe_expand³ s*      z1TestStringMethods.test_rsplit_to_dataframe_expandcCsÈtddgƒ}|jjddd�}|}t ||¡|jdks:t‚tddgƒ}|jjddd�}t d d g¡}t ||¡|jd ks~t‚tddgƒ}|jjdddd �}t d dg¡}t ||¡|jdksÄt‚dS)NrérêrZT)r#r;rërì)rírïrñ)rîrðròr3)r#r)rrñ)rròrC) rrqrSr rrrtrrs)rurXr—rïrrrÚ test_rsplit_to_multiindex_expandÑ s        z2TestStringMethods.test_rsplit_to_multiindex_expandcCshtdtjgƒ}|jjddd�}tdddgtjtjtjggƒ}t ||¡tdd „|j d Dƒƒsdt ‚dS) Nz foo,bar,bazrT)r#r·rÚbazcss|]}t |¡VqdS)N)rjÚisnan)r[rÊrrrr~ð sz:TestStringMethods.test_split_nan_expand..r;) rrjr½rqr=rr r•ÚallÚilocrt)rur–r—rïrrrÚtest_split_nan_expandæ s  z'TestStringMethods.test_split_nan_expandcCsútddgdd�}|j d¡}tddgdd ggdd�}t ||¡|jjdd d �}tddgdd ggƒ}t ||¡tddgdd�}|j d¡}tddgdd ggdd�}|jd ks²t ‚t  ||¡|jjdd d �}t   d dg¡}|jdksêt ‚t  ||¡dS)Nza,bzc,drƒ)r±rrrwrdr¶T)r#r;)rrw)rdr¶rC) rrqr=r rrr•rrrtrrrs)rur–r6rïrXrrrÚtest_split_with_nameò s      z&TestStringMethods.test_split_with_namecCs¦tddtjddgƒ}|jjddd�}tddtjd dgƒ}t ||¡|jjddd�}td d tjd dgƒ}t ||¡td dtjddgƒ}|jjddd�}tddtjddgƒ}t ||¡|jjddd�}tddtjddgƒ}t ||¡tddtjddgƒ}|jjdd�}tddtjddgƒ}t ||¡|jjdd�}tddtjddgƒ}t ||¡td d!tjd"dgƒ}|jjddd�}td#d$tjd%dgƒ}t ||¡|jjddd�}td&d'tjd(dgƒ}t ||¡tddtjdgƒ}|jjddd�}tddtjd gƒ}t ||¡|jjddd�}td d tjd gƒ}t ||¡td)d*d+d,gƒ}|jjddd� ¡}|d-d.„|Dƒk�svt ‚|jjddd� ¡}|d/d.„|Dƒk�s¢t ‚dS)0Nrªr«r¬rZF)r#)rrZÚb_c)rdrZÚd_e)r\rZÚg_h)r­rZrd)ràrZr×)rárZr­rØrÙrÚrÛ)rrÛZb__c)rdrÛZd__e)r\rÛZg__h)Za__brÛrd)Zc__drÛr×)Zf__grÛr­za b czc d ezf g h)rr1zb c)rdr1zd e)r\r1zg h)za br1rd)zc dr1r×)zf gr1r­r)rÏÚfgh)r)r)r))rÏr)r))rr)r))r)r)r))r)r)rÏ)r)r)rZA_B_CZB_C_DZE_F_Gr·cSsg|]}| d¡‘qS)rZ)r0)r[rrrrr«[ sz;TestStringMethods.test_partition_series..cSsg|]}| d¡‘qS)rZ)r9)r[rrrrr«] s) rrjr½rqr0r rr9rrt)rurnr—rïrrrÚtest_partition_series sl          z'TestStringMethods.test_partition_seriescCsPtdddtjdgƒ}|jjddd�}ttjddd tjdgtd �ƒ}t ||¡|j d ks\t ‚|jj ddd�}ttjd d dtjdgtd �ƒ}t ||¡|j d ks¤t ‚|j d¡}tddd tjtjtjfdgƒ}t ||¡t |t ƒsèt ‚|j dksöt ‚|j  d¡}td d dtjtjtjfdgƒ}t ||¡t |t ƒ�s  z#TestStringMethods.test_replace_moarc Cs–tdddddtjdddg ƒ}|jd }|j d ¡}t ||¡|jdd …}|jjd d �}t ||¡|jd dd …}|jjd d d�}t ||¡dS)Nr2rÐrÑr4r5r3r/r6rr3)r›rCrº)rrœ)rrjr½rqr'r rr:)rur–r—r˜rrrÚtest_string_slice_get_syntax- s&    z.TestStringMethods.test_string_slice_get_syntaxcCsltdddgƒ}|jd}tdtjdgƒ}t ||¡tddd gƒ}|jd}td tjd gƒ}t ||¡dS) N)r;rC)r;)r3r¬r,r;rCr¬r·rwr(rör)rrqrjr½r r)rur–r—r˜rrrÚtest_string_slice_out_of_boundsH s   z1TestStringMethods.test_string_slice_out_of_boundsc Cs dddtjdœ}t|ƒ}d}|jj|tjdd�}|jd ¡d d d gksLt ‚|jj |tjd �}|dsjt ‚|jj |tjd �}|dsˆt ‚|jj |tjd �}|ddd ks®t ‚|jj |tjd �}|ddksÐt ‚t t¡�|jj|tjd �}WdQRX|d�st ‚dS)Nzdave@google.comzsteve@gmail.comz rob@gmail.com)riZSteveZRobZWesz,([A-Z0-9._%+-]+)@([A-Z0-9.-]+)\.([A-Z]{2,4})T)rr#rrbršrc)r)rbršrcr;)rjr½rrqr"rr&r rrtr+r,r&rr rœÚ UserWarningr)rurÉrør—rrrÚtest_match_findall_flagsU s&    z*TestStringMethods.test_match_findall_flagscCsHtdddgƒ}|j d¡}dd„}|j d¡}| |¡}t ||¡dS)Nrrwuaäzutf-8cSs | d¡S)Nzutf-8)r)rÊrrrrËw rÌz6TestStringMethods.test_encode_decode..)rrqrrr±r r)ruÚbaseZseriesr\r—rïrrrÚtest_encode_decodes s    z$TestStringMethods.test_encode_decodec CsÌtdddgƒ}d}tjt|d��|j d¡WdQRXdd„}|j dd ¡}| |¡}t ||¡td d d gƒ}d }tjt |d��|j  d¡WdQRXdd„}|j  dd ¡}| |¡}t ||¡dS)NrrwuaÂ�z['charmap' codec can't encode character '\\x9d' in position 1: character maps to )r+Úcp1252cSs | dd¡S)Nr>Úignore)r)rÊrrrrˇ rÌz=TestStringMethods.test_encode_decode_errors..r?rfóbsa�zS'charmap' codec can't decode byte 0x9d in position 1: character maps to cSs | dd¡S)Nr>r?)r)rÊrrrrË• rÌ) rrxryÚUnicodeEncodeErrorrqrr±r rÚUnicodeDecodeErrorr)ruZ encodeBaser}r\r—rïZ decodeBaserrrÚtest_encode_decode_errors} s    z+TestStringMethods.test_encode_decode_errorsc Csüdddtjdg}t|ddddd gd �}ddd tjd g}t|ddddd gd �}|j d ¡}t ||¡tdddtjdgddddd gd �}|j d¡}t ||¡tjt dd��|j d¡WdQRXt dddgƒ}t dd d gƒ}|j d ¡}t  ||¡dS)Nr5u ABCu 123u アイエrrwrdr¶r×)r(Z123u アイエÚNFKCr.zinvalid normalization form)r+rƒ) rjr½rrqr-r rrxryr¾rr)rurnr–Únormedr˜r—rrrÚtest_normalize› s       z TestStringMethods.test_normalizec CsÐddlm}ddgdfdddgdfdddgd fddddgdfd td ddƒgd fg}xJ|D]B\}}t|ƒ}tt|ƒj|ƒs|t‚t|j|ƒsŒt‚|j|ksXt‚qXWxJ|D]B\}}t|ƒ}tt|ƒj|ƒsÈt‚t|j|ƒsØt‚|j|ks¤t‚q¤Wdt j gd ftd ddƒgd ft dƒgdfg}xr|D]j\}}t|ƒ}d}t j t|d��t|ƒjWdQRXt j t|d�� |jWdQRX|j|k�st‚�qWt ddg¡}|jd k�s¨t‚d}t j t|d�� |jWdQRXdS)Nr)rsrrwrcr;z mixed-integergÍÌÌÌÌÌô?r�r¸iÛZfloatingZ datetime64Z timedelta64z-Can only use .str accessor with string values)r+)rrwz5Can only use .str accessor with Index, not MultiIndex)Úpandas.core.stringsrsrrr rrqrtZ inferred_typerjr½rrxryrzrrs)rursZcasesrnÚtprXrÂrrrÚ"test_index_str_accessor_visibility´ s@     z4TestStringMethods.test_index_str_accessor_visibilityc Cs2ttdƒƒ}tjtdd��d|j_WdQRXdS)NZaabbcdez You cannot add any new attribute)r+r)rr“rxryrzrqZxlabel)rur–rrrÚ#test_str_accessor_no_new_attributesß s z5TestStringMethods.test_str_accessor_no_new_attributesc Cs^tt tdƒd¡ t¡ƒ}tt tdƒd¡ t¡ƒ}tjtdd��|j   |¡WdQRXdS)Nr)ZS1Údefz$Cannot use .str.cat with values of.*)r+) rrjrkr“r”rlrxryr�rqr)ruÚlhsÚrhsrrrÚtest_method_on_byteså sz&TestStringMethods.test_method_on_bytescCs>tdtjddgƒ}tdtjddgƒ}|j ¡}t ||¡dS)NÚssrõZssdõßußd)rrjr½rqrYr r)rur˜r–r—rrrÚ test_casefoldë s zTestStringMethods.test_casefold)‚Ú__name__Ú __module__Ú __qualname__rvr~rxr‰Ú parametrizerlr…r’r™r£r¦r§r¯rrr²rÀrÃrÈr“rÎrØrÝrårærçrìròrùrúrjr½rÞrµrrr r r rrrr$r'r*r/r0r7r9r:r;r\r]r_r`rarwryrzr‚rˆr‰r‹r–r˜r¡r¢r£r¥r¨r©r¯r²r³r¼r½rÀrÅrÌrÎrÐrÑrÕrÖrÝrßrârärårærèrrrrr r rrrrrrrrrr r!r%r(r)r}rkr+r0r1r7r8r9r;r=rCrFrIrJrNrQrrrrrpÂs B  ( %  e-Q &$5 ,-/04 f    ' F*&((9. J,+ 0 %& U5- * #    ,  $ "  ,     +  rpc Csˆ|\}}}|dkrt d¡ddtjdg}t|td�}t|dd�}t|j|ƒ||Ž}t|j|ƒ||Ž}t|tƒ�r4|j dkr¦t   |  ¡j ¡r¦|j dksšt‚| t¡}nŒ|j dkrÚt j|j d d �rÚ|j d ksÎt‚| t¡}nX|j d krþ|j d ksòt‚| d ¡}n4|j d k�rx| ¡ ¡�rx|j dk�s(t‚| d ¡}nDt|tƒ�rx|jdd�j} t|| jdkƒ�sft‚||  t¡|| <t ||¡dS)Nrzdecode requires bytes.rr¹r+)rircrlT)Zskipnar8ržÚfloatÚInt64)Úinclude)rxÚskiprjr½rrlr‹rqr rirZis_string_arrayržrnrtr”Z is_bool_arrayr ÚanyrZ select_dtypesrHr Údtypesr Ú assert_equal) rbrŽr�r�rÉrrwr˜r—rHrrrÚtest_string_arrayô s8             r]zmethod,expectedcCs<tddgdd�}t|j|ƒdƒ}t|dd�}t ||¡dS)Nrrc)rirrW)rr‹rqr r)r‘r˜r–r—rrrÚ'test_string_array_numeric_integer_arrays  r^cCs<tdddgdd�}t|j|ƒƒ}t|dd�}t ||¡dS)Nrrºrc)rir8)rr‹rqr r)r‘r˜r–r—rrrÚtest_string_array_boolean_array,s  r_cCsttdddgdd�}tdddgdd�}d}|jj|dd �}|jj|dd �}t|jdkƒsZt‚| t¡}t  ||¡dS) NZa1Zb2rrc)rirlz(\w)(\d)F)r#) rrqr"r r[rtr”rlr r\)rrwrør—r˜rrrÚtest_string_array_extract<s r`rcCsBtdddgƒ}|j |dddgƒ¡}tddd gƒ}t ||¡dS) NrrwrdrÊr#r5ZaxZbyÚcz)rrqrr r)rr–r—r˜rrrÚtest_cat_different_classesKsrbcCsPtt ddtjdg¡ƒ}|j d¡}tt tjtjtjdg¡ƒ}t ||¡dS)NrrÆr)rCrd)rrÞrkrµrqr'r r)r–r—r˜rrrÚ&test_str_get_stringarray_multiple_nansTs rccCs>ttddƒƒ}tdddgƒ}|jdd„dd �}t ||¡dS) Nr)rKzA/DzB/EzC/FcSsd |j ¡¡S)Nú/)rrqrX)r\rrrrË_rÌz1test_str_accessor_in_apply_func..r;)rÓ)rÚziprÚapplyr r)rër˜r—rrrÚtest_str_accessor_in_apply_func[srg)3rrrZnumpyrjrxZ pandas._libsrZpandasrÞrrrrr r r Zpandas._testingZ_testingr rGÚcorerrrr“reZ_any_string_methodr_rZÚdirrsrÕZmissing_methodsrtZfixturerbr½Z"_any_allowed_skipna_inferred_dtyperorpr]r‰rUr^r_r`r}rkrbrcrgrrrrÚs $                    'L(        &