+
    xȇip                        ^ RI H t  ^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	H
t
HtHt R tR tR tR tR	 tR
 tR tR tR tR tR tR tR t]P6                  P9                  RRR.4      R 4       tR tR tR t R t!]P6                  P9                  RRRR.3R^ R.3.4      R 4       t"R t#R  t$]P6                  P9                  R!. R53. R63. R73. R83. R9OR53. R9OR83. R9OR73.4      R" 4       t%R# t&R$ t'R% t(R& t)R' t*R( t+]P6                  P9                  R)R*. R:O3R,. R;O3R.. R<O3R/. R=O3R0. R>O3.4      R2 4       t,]P6                  P9                  R)R*R?R+/3R,R?R-/3R.R@R+RAR+RBR+/3R/R@R+RAR+R?R+/3R0R?R1/3.4      R3 4       t-R4 t.R# )C    )datetimeN)
ArrowDtype)	DataFrameIndex
MultiIndexSeries_testingc                     \        R \        P                  R.V R7      p\        P                  ! \
        RR7      ;_uu_ 4        VP                  P                  RRR7       RRR4       R#   + '       g   i     R# ; i)fooBAD__barBADfoodtypezexpand must be True or Falsematch.*(BAD[_]+).*(BAD)Nexpand)r   npnanpytestraises
ValueErrorstrextract)any_string_dtypevaluess   & q/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/strings/test_extract.py+test_extract_expand_kwarg_wrong_type_raisesr      sU    %rvvu5=MNF	z)G	H	H

/= 
I	H	H	Hs   A++A<	c                 d   \        R \        P                  R.V R7      p\        R\        P                  \        P                  .V R7      pVP                  P                  R4      p\        P                  ! W24       VP                  P                  RRR7      p\        P                  ! W24       \        RR.\        P                  \        P                  .\        P                  \        P                  ..V R7      pVP                  P                  RR	R7      p\        P                  ! W24       R
# )r   r   r   BAD__z.*(BAD[_]+).*Tr   BADr   FN)r   r   r   r   r   r   tmassert_frame_equal)r   sexpectedresults   &   r   test_extract_expand_kwargr'      s     "&&%08HIA'2662662:JKHUU]]?+F&+UU]]?4]8F&+
5	BFFBFF+bffbff-=>FVH UU]]/]>F&+    c                     \        R \        P                  RR\        P                  ! 4       RR^R.	4      p V P
                  P                  RRR7      p\        P                  \        P                  .p\        R	R
.VR	R
.W"W"W".	\        R7      p\        P                  ! W4       V P
                  P                  RRR7      p\        R	\        P                  R	\        P                  \        P                  \        P                  R\        P                  \        P                  .	\        R7      p\        P                  ! W4       R# )aBAD_BAD	BAD_b_BADTr   N       @r   Fr   BAD_r!   r   z.*(BAD[_]+).*BAD)r   r   r   r   todayr   r   r   objectr"   r#   assert_series_equal)serr&   err%   s       r   &test_extract_expand_False_mixed_objectr3   *   s    
	RVV[$0@%qRUVC
 WW__1%_@F
&&"&&	B
%"vuorrrFfH &+ WW__/_>F	rvvrvvNH 6,r(   c                      \        . RO4      p Rp\        P                  ! \        VR7      ;_uu_ 4        V P                  P                  RRR7       RRR4       R#   + '       g   i     R# ; i)A1z,only one regex group is supported with Indexr   ([AB])([123])Fr   N)r5   A2A3A4B5)r   r   r   r   r   r   )idxmsgs     r    test_extract_expand_index_raisesr=   @   sH     .
/C
8C	z	-	-6 
.	-	-	-s   AA-	c                    V ! . R	OVR7      pRp\         P                  ! \        VR7      ;_uu_ 4        VP                  P	                  RRR7       RRR4       \         P                  ! \        VR7      ;_uu_ 4        VP                  P	                  RRR7       RRR4       R#   + '       g   i     L\; i  + '       g   i     R# ; i)
r5   r   "pattern contains no capture groupsr   
[ABC][123]Fr   N
(?:[AB]).*r5   B2C3r   r   r   r   r   index_or_seriesr   s_or_idxr<   s   &&  r   ,test_extract_expand_no_capture_groups_raisesrI   J   s    19IJH
.C 
z	-	-\%8 
. 
z	-	-\%8 
.	-	 
.	- 
.	-	-   B%=B8%B5	8C		c                     V ! R R.VR7      pVP                   P                  RRR7      pV ! RR.RVR7      pV \        8X  d   \        P                  ! W44       R	# \        P
                  ! W44       R	# )
r5   r7   r   (?P<uno>A)\dFr   Aunonamer   N)r   r   r   r"   r0   assert_index_equalrG   r   rH   r&   r%   s   &&   r   (test_extract_expand_single_capture_grouprS   W   sc    d|3CDH\\!!/%!@FSz=MNH& 
v0
f/r(   c                 	   \        . ROV R7      pVP                  P                  RRR7      p\        \        P                  \        P                  \        P                  .V R7      p\
        P                  ! W#4       VP                  P                  RRR7      p\        \        P                  \        P                  .\        P                  \        P                  .\        P                  \        P                  ..V R7      p\
        P                  ! W#4       VP                  P                  RRR7      p\        RR\        P                  .V R7      p\
        P                  ! W#4       VP                  P                  R	RR7      p\        RR
.RR.\        P                  \        P                  ..V R7      p\
        P                  ! W#4       VP                  P                  RRR7      p\        RR\        P                  .RV R7      p\
        P                  ! W#4       VP                  P                  RRR7      p\        RR
.RR.\        P                  \        P                  ..RR.V R7      p\
        P                  ! W#4       VP                  P                  RRR7      p\        RR
.RR.\        P                  \        P                  ..^ R.V R7      p\
        P                  ! W#4       VP                  P                  RRR7      p\        RR\        P                  .V R7      p\
        P                  ! W#4       \        . ROV R7      pVP                  P                  RRR7      p\        RR
.RR.\        P                  \        P                  ..V R7      p\
        P                  ! W#4       \        . ROV R7      pVP                  P                  RRR7      p\        RR
.RR.\        P                  R..RR.V R7      p\
        P                  ! W#4       \        . ROV R7      pVP                  P                  RRR7      p\        RR
.RR.R\        P                  ..RR.V R7      p\
        P                  ! W#4       R# )r5   r   (_)Fr   (_)(_)([AB])[123]rM   Br6   12(?P<letter>[AB])letterrO   !(?P<letter>[AB])(?P<number>[123])numbercolumnsr   ([AB])(?P<number>[123])([AB])(?:[123])([AB])([123])(?:[123])3"(?P<letter>[AB])?(?P<number>[123])C#(?P<letter>[ABC])(?P<number>[123])?NrB   A11B22C33r5   rC   rd   r5   rC   rf   )	r   r   r   r   r   r"   r0   r   r#   r   r$   r&   r%   s   &   r   "test_extract_expand_capture_groupsro   c   s   !)9:AUU]]5]/Frvvrvvrvv.6FGH6, UU]]8E]2F
&&"&&	BFFBFF+bffbff-=>FVH &+ UU]]=]7FsC(0@AH6, UU]]?5]9F
sc3Z"&&"&&!12:JH &+ UU]]-e]<FsC(x?OPH6, UU]]>u]MF
sc3Z"&&"&&!128$H
 &+ UU]]4U]CF
sc3Z"&&"&&!12HH
 &+ UU]],U];FsC(0@AH6, 	$,<=AUU]]3E]BF
sc3Z"&&"&&!12:JH &+ 	 (89AUU]]?]NF
sc3Z"&&#/8$H
 &+ 	 (89AUU]]@]OF
sc3Z#rvv/8$H
 &+r(   c                 @   . ROp\        V 4      ^ 8X  d   \        P                  ! R4       \        V 4      \        V4      8  d   V P                  ^4      p K,  V R\        V4       p \	        W VR7      pVP
                  P                  RRR7      p\	        RR	\        P                  .WR7      p\        P                  ! WE4       VP
                  P                  R
RR7      p\        RR.RR	.R\        P                  ..RR.V VR7      p\        P                  ! WE4       R# )r5   rf   zTest requires len(index) > 0Nindexr   (\d)Fr   rY   rZ   (?P<letter>\D)(?P<number>\d)?rM   rX   r\   r^   r`   rr   r   rm   )lenr   skiprepeatr   r   r   r   r   r"   r0   r   r#   )rr   r   datar1   r&   r%   s   &&    r   (test_extract_expand_capture_groups_indexrz      s     D
5zQ23
e*s4y
 Q+CIE
*:
;CWW__WU_3FsC(NH6,WW__=e_LF
sc3Z#rvv/8$	H &+r(   c                     \        . RORV R7      pVP                  P                  RRR7      p\        . R	ORV R7      p\        P                  ! W#4       R# )
a3bobrO   z(?P<sue>[a-z])Fr   sueNr|   b3c2abc)r   r   r   r"   r0   rn   s   &   r   ,test_extract_single_series_name_is_preservedr      sF    !5EFAUU]],U];FoE9IJH6,r(   c                 D   \        R \        P                  R.V R7      pVP                  P	                  RRR7      p\        RR.\        P                  \        P                  .\        P                  \        P                  ..V R7      p\        P                  ! W#4       R# )	r   r   r   r   Tr   r    r!   N)r   r   r   r   r   r   r"   r#   rn   s   &   r   test_extract_expand_Truer      sx     "&&%08HIAUU]]/]=F
5	BFFBFF+bffbff-=>FVH &+r(   c                  L   \         P                  \         P                  .p \        R \         P                  RR\        P                  ! 4       RR^R.	4      pVP
                  P                  RRR7      p\        RR	.V RR	.W W W .	\        R
7      p\        P                  ! W#4       R# )r*   r+   Tr   Nr,   r   r   r-   r!   r   )r   r   r   r   r.   r   r   r   r/   r"   r#   )r2   mixedr&   r%   s       r   %test_extract_expand_True_mixed_objectr      s    
&&"&&	BFFNN
	
E YY3DAF
%"vuorrrFfH &+r(   c                    V ! . R	OVR7      pRp\         P                  ! \        VR7      ;_uu_ 4        VP                  P	                  RRR7       RRR4       \         P                  ! \        VR7      ;_uu_ 4        VP                  P	                  RRR7       RRR4       R#   + '       g   i     L\; i  + '       g   i     R# ; i)
r5   r   r?   r   r@   Tr   NrA   rB   rE   rF   s   &&  r   4test_extract_expand_True_single_capture_group_raisesr      s    
 19IJH
.C	z	-	-\$7 
. 
z	-	-\$7 
.	-	 
.	- 
.	-	-rJ   c                     V ! R R.VR7      pVP                   P                  RRR7      p\        RRR./VR7      p\        P                  ! W44       R# )	r5   r7   r   rL   Tr   rN   rM   N)r   r   r   r"   r#   rR   s   &&   r   -test_extract_expand_True_single_capture_groupr   	  sP    d|3CDH\\!!/$!?F%#s,4DEH&+r(   rP   series_namec                    \        . ROWR7      pVP                  P                  RRR7      p\        \        P
                  \        P
                  \        P
                  .VR7      p\        P                  ! W44       VP                  P                  RRR7      p\        \        P
                  \        P
                  .\        P
                  \        P
                  .\        P
                  \        P
                  ..VR7      p\        P                  ! W44       VP                  P                  RRR7      p\        RR	\        P
                  .VR7      p\        P                  ! W44       VP                  P                  R
RR7      p\        RR.R	R.\        P
                  \        P
                  ..VR7      p\        P                  ! W44       VP                  P                  RRR7      p\        RRR	\        P
                  ./VR7      p\        P                  ! W44       VP                  P                  RRR7      p\        RR.R	R.\        P
                  \        P
                  ..RR.VR7      p\        P                  ! W44       VP                  P                  RRR7      p\        RR.R	R.\        P
                  \        P
                  ..^ R.VR7      p\        P                  ! W44       VP                  P                  RRR7      p\        RR	\        P
                  .VR7      p\        P                  ! W44       R# )r5   rO   rU   Tr   r   rV   rW   rM   rX   r6   rY   rZ   r[   r\   r]   r^   r_   ra   rb   NrB   r   r   r   r   r   r   r"   r#   )rP   r   r$   r&   r%   s   &&   r   test_extract_seriesr     s    	!EA UU]]5].F"&&"&&"&&19IJH&+ UU]]8D]1F
&&"&&	BFFBFF+bffbff-=>FVH &+ UU]]=]6F#sBFF+3CDH&+ UU]]?4]8F
sc3Z"&&"&&!12:JH &+ UU]]-d];F(S#rvv$67?OPH&+ UU]]>t]LF
sc3Z"&&"&&!128$H
 &+ UU]]4T]BF
sc3Z"&&"&&!12HH
 &+ UU]],T]:F#sBFF+3CDH&+r(   c                    \        . ROV R7      pVP                  P                  RRR7      p\        RR.RR.\        P
                  \        P
                  ..V R7      p\        P                  ! W#4       \        . ROV R7      pVP                  P                  R
RR7      p\        RR.RR.\        P
                  R	..RR.V R7      p\        P                  ! W#4       \        . ROV R7      pVP                  P                  RRR7      p\        RR.RR.R\        P
                  ..RR.V R7      p\        P                  ! W#4       R# )ri   r   rc   Tr   rM   rY   rX   rZ   rd   re   r\   r^   r_   rf   rg   Nrh   rl   rm   r   rn   s   &   r   test_extract_optional_groupsr   K  s/   $,<=AUU]]3D]AF
sc3Z"&&"&&!12:JH &+ 	 (89AUU]]?]MF
sc3Z"&&#/8$H
 &+ 	 (89AUU]]@]NF
sc3Z#rvv/8$H
 &+r(   c                    . ROp\        V 4      \        V4      8  d$   \        P                  ! R\        V4       R24       V R\        V4       p \        W VR7      pVP                  P                  RRR7      p\        R	R
\        P                  .WR7      p\        P                  ! WE4       VP                  P                  RRR7      p\        RR	.RR
.R\        P                  ..RR.V VR7      p\        P                  ! WE4       R# )r5   rf   zIndex needs more than z valuesNrq   rs   Tr   rY   rZ   rt   rM   rX   r\   r^   ru   rm   )rv   r   rw   r   r   r   r   r   r   r"   r#   )rr   r   ry   r$   r&   r%   s   &&    r   +test_extract_dataframe_capture_groups_indexr   i  s     D
5zCI,SYKw?@+CIEt(89AUU]]74]0F#sBFF+5QH&+UU]];D]IF
sc3Z#rvv/8$	H &+r(   c                     \        . R	ORV R7      pVP                  P                  RRR7      p\        R. R
O/V R7      p\        P
                  ! W#4       R# )r|   r   rO   (?P<letter>[a-z])Tr   r\   r   Nr   r   )r   r   r   r   r"   r#   rn   s   &   r   'test_extract_single_group_returns_framer     sK     	!=MNAUU]]/]=F(O4<LMH&+r(   c                 0   R RRRR\         P                  R.p. ROpRp. ROp\        WR7      p\        P                  ! . RORR	7      p\        W&W@R7      pVP                  P                  V\        P                  R
7      p\        P                  ! W4       \        P                  ! . RO4      p	\        WV R7      p\        P                  ! . RORR	7      p\        W&W@R7      pVP                  P                  V\        P                  R
7      p\        P                  ! W4       \        WV R7      pRVP                  n        RVn        \        W&W@R7      pVP                  P                  V\        P                  R
7      p\        P                  ! W4       R# )zdave@google.comztdhock5@gmail.comzmaudelaperriere@gmail.comz'rob@gmail.com some text steve@gmail.comz%a@b.com some text c@d.com and e@f.com zY
    (?P<user>[a-z0-9]+)
    @
    (?P<domain>[a-z]+)
    \.
    (?P<tld>[a-z]{2,4})
    r   Nnames)flagsrq   ))davegooglecom)tdhock5gmailr   )maudelaperrierer   r   )robr   r   )stever   r   )r   r   r   )r   dr   )efr   )userdomaintld)r   r      r      r   )   r   )r   r   )   r   )r   r   )r   r   Nr   ))singleDave)r   Toby)r   Maude)multiplerobAndSteve)r   abcdef)nonemissing)r   empty))r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )NNr   )matchesdescription)r   r   r   )r   r   r   r   from_tuplesr   r   
extractallreVERBOSEr"   r#   rr   r   )
r   ry   expected_tuplespatexpected_columnsr$   expected_indexr%   r&   mis
   &         r   test_extractallr     sw   #1/

D	OC 1t,A  ++HN )9H UUc4F&+ 
			


B 	t%56A++		
 $N )9H UUc4F&+ 	t%56A.AGGM>N)9H UUc4F&+r(   zpat,expected_namesre   r\   r^   z([AB])?(?P<number>[123])c                    \        . ROVR7      pVP                  P                  V 4      p\        R\        P
                  R3\        P
                  R3.\        P                  ! . R	OR
R7      VVR7      p\        P                  ! WE4       R# )r   r   rd   rZ   Nr   )rr   r`   r   )r   r5   32)rM   rY   )r   r   r   r   r   )
r   r   r   r   r   r   r   r   r"   r#   )r   expected_namesr   r$   r&   r%   s   &&&   r   test_extractall_column_namesr     sq     	'78AUUc"F	bffc]RVVSM2$$%=_U	H &+r(   c                 ^   \        . R	ORV R7      p\        P                  ! . R
ORR7      pVP                  P	                  R4      p\        R. RO/W R7      p\        P                  ! W44       VP                  P	                  R4      p\        . ROW R7      p\        P                  ! W44       R# )r|   r   rO   Nr   r   r\   rq   ([a-z])r|   r   d4c2r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   r"   r#   )r   r$   r   r&   r%   s   &    r   test_extractall_single_groupr     s    #-?OPA++(N
 UU23F	'(H &+ UUj)FNH &+r(   c                     \        . RORV R7      pVP                  P                  R4      p\        . RO\        P
                  ! . R	OR
R7      V R7      p\        P                  ! W#4       R# )ab3r   rO   z([a-z]+)Nr   rq   )r   abc3d4cd2)ababcr   cdr   r   )r   r   r   r   r   r   r"   r#   rn   s   &   r   ,test_extractall_single_group_with_quantifierr     s]     	'mCSTAUUk*F $$,O
 H &+r(   zdata, namesc                   a	 \        V 4      o	\        V4      ^8X  d   \        \        S	4      V^ ,          R7      pM,V	3R l\        S	4       4       p\        P                  ! WAR7      p\        V RW2R7      p\        P                  ! . . VORN5R7      pVP                  P                  R4      p\        \        ^4      WbR7      p\        P                  ! WxR	R
7       VP                  P                  R4      p\        \        ^4      WbR7      p\        P                  ! WxR	R
7       VP                  P                  R4      p\        R.WbR7      p\        P                  ! Wx4       VP                  P                  R4      p\        RR.WbR7      p\        P                  ! Wx4       VP                  P                  R4      p\        ^ R.WbR7      p\        P                  ! Wx4       R# )r   rP   c              3   X   <"   T F  p\        V.S^,
          ,          4      x  K!  	  R# 5i)r   N)tuple).0ins   & r   	<genexpr>-test_extractall_no_matches.<locals>.<genexpr>/  s#     91%q1u&&s   '*r   r   rP   rr   r   r   z(z)ru   T)check_column_typez(z)(z)z(?P<first>z)firstz(?P<first>z)(?P<second>z)secondz(z)(?P<second>z)N)rv   r   ranger   r   r   r   r   r   r"   r#   )
ry   r   r   rr   tuplesr$   r   r&   r%   r   s
   &&&      @r   test_extractall_no_matchesr     s    	D	A
5zQeAhU1X.9a9&&v;t-uMA++B7H7H7HJN UUe$FqXH&dC UUh'FqXH&dC UUn-F	H &+ UU9:F(#>H &+ UU01FH^H &+r(   c           	         \        . RORV R7      pVP                  P                  R4      p\        R. RO/\        P
                  ! . RORR.R7      V R7      p\        P                  ! W#4       V R	8X  d`   \        . RO\        R
7      \        . ROR\        R7      3 F4  pVP                  P                  R4      p\        P                  ! W#4       K6  	  \        . ROR\        . RORR7      V R7      pVP                  P                  R4      p\        R. RO/\        P
                  ! . RORR.R7      V R7      p\        P                  ! W#4       R# )a1a2xxxrO   z[ab](?P<digit>\d)digitNr   r   rq   r/   r   s_nameidx_namer   r   )r   b1c1)rY   rZ   rY   )r   r   r   r   )XXyyzz))r   r   )r   r   )r   r   )
r   r   r   r   r   r   r"   r#   r   r/   )r   r$   r&   r%   r;   s   &    r   test_extractall_stringindexr   T  s*   #%7GHAUU23F	/"$$%=dG_UH
 &+ 8#&f5&U&A
C WW''(<=F!!&3
 	&Z8		A UU23F	/"$$-j'5J
 H &+r(   c                     \        . RORV R7      p\        P                  ! \        RR7      ;_uu_ 4        VP                  P                  R4       RRR4       R#   + '       g   i     R# ; i)r|   r   rO   zno capture groupsr   z[a-z]Nr   )r   r   r   r   r   r   )r   r$   s   & r   (test_extractall_no_capture_groups_raisesr   y  sG     	#-?OPA	z)<	=	=	" 
>	=	=	=s   AA,	c                  ^   \        . RO. RORR7      p V P                  P                  P                  RRR7      p\	        . RO4      p\
        P                  ! W4       V P                  P                  P                  RRR7      p. ROp\	        VRR.R	7      p\
        P                  ! W4       R
# )r|   r   )rr   rP   z([A-Z])Tr   z!(?P<letter>[A-Z])(?P<digit>[0-9])r\   r   )r`   Nr   )r8   B3D4)rM   rX   D))rM   rd   )rX   rd   )r  4)r   rr   r   r   r   r"   r#   )r$   rr   e_lists       r   !test_extract_index_one_two_groupsr    s    #+=MRA	Jt4A/"A!
 	
@NA1F&8W"56A!r(   c                 >   \        . RORV R7      pRpVP                  P                  VRR7      pVP                  P                  V4      pVP	                  ^ RR7      p\
        P                  ! W54       RpVP                  P                  VRR7      pVP                  P                  V4      pVP	                  ^ RR7      p\
        P                  ! Wu4       R	pVP                  P                  VRR7      p	VP                  P                  V4      pVP	                  ^ RR7      p\
        P                  ! W4       R
p
VP                  P                  V
RR7      pVP                  P                  V
4      pVP	                  ^ RR7      p\
        P                  ! W4       R# )r|   r   rO   ([a-z])([0-9])Tr   r   level!(?P<letter>[a-z])(?P<digit>[0-9])(?P<group_name>[a-z])r   Nr   )r   r   r   r   xsr"   r#   )r   r$   pattern_two_nonameextract_two_nonamehas_multi_indexno_multi_indexpattern_two_namedextract_two_namedpattern_one_namedextract_one_namedpattern_one_nonameextract_one_nonames   &           r   test_extractall_same_as_extractr    sn   !=MNA*'9$Gee&&'9:O$'''9N,=<&7Eee&&'89O$'''9N+<0&7Eee&&'89O$'''9N+<#'9$Gee&&'9:O$'''9N,=r(   c                 t   \         P                  ! . RORR7      p\        . ROVRV R7      pRpVP                  P	                  VRR7      pVP                  P                  V4      pVP                  ^ RR7      p\        P                  ! WF4       R	pVP                  P	                  VRR7      pVP                  P                  V4      pVP                  ^ RR7      p\        P                  ! W4       R
p	VP                  P	                  V	RR7      p
VP                  P                  V	4      pVP                  ^ RR7      p\        P                  ! W4       RpVP                  P	                  VRR7      pVP                  P                  V4      pVP                  ^ RR7      p\        P                  ! W4       R# )rM   r   r   )rr   rP   r   r  Tr   r   r  r
  r  r   N))rM   r   )rX   r   )rf   third)capitalordinalr   )	r   r   r   r   r   r   r  r"   r#   )r   r   r$   r  r  has_match_indexno_match_indexr  r  r  r  r  r  s   &            r   -test_extractall_same_as_extract_subject_indexr    s   			9$
B 	!-GWXA*'9$Gee&&'9:O$'''9N,=<&7Eee&&'89O$'''9N+<0&7Eee&&'89O$'''9N+<#'9$Gee&&'9:O$'''9N,=r(   c                      \         P                  ! R 4      p \        RR.\        V P	                  4       4      R7      P
                  P                  R4      pVP                  ^ ,          R8X  g   Q hR# )pyarrowr   r   r   (ab)zstring[pyarrow]N)r   importorskipr   r   stringr   r   dtypes)par&   s     r   test_extractall_preserves_dtyper&    sY     
		Y	'BUDMBIIK)@AEEPPQWXF==0000r(   zpat, expected_dataz(a(?=b))r   z	((?<=a)b)r   z(a(?!b))z	((?<!b)a)r!  r   c                    \        . ROV R7      pVP                  P                  VRR7      pV R8X  d%   V Uu. uF  qUf   \        P                  MTNK  	  pp\        . VORNV R7      p\
        P                  ! WF4       R# u upi )aaNr   Fr   r/   r(  r   babbN)r   r   r   r   r   r"   r0   )r   r   expected_datar1   r&   r   r%   s   &&&    r   test_extract_lookaroundsr-    s{     /7G
HCWW__S_/F8#=JK]9!3]K,,t,4DEH6, Ls   Bc                     \        . ROV R7      pVP                  P                  V4      p\        W R7      P                  4       pRR.VP                  n        \        P                  ! WE4       R# )r(  Nr   r   r)  )r   r   r   to_framerr   r   r"   r#   )r   r   r,  r1   r&   r%   s   &&&   r   test_extractall_lookaroundsr0    sW     /7G
HCWW$Fm<EEGH '?HNN&+r(   c                    \        . ROV R7      pVP                  P                  R4      p\        R \        P                  R.V R7      P                  4       p\        P                  ! W#4       VP                  P                  R4      p\        R \        P                  \        P                  .V R7      P                  4       p\        P                  ! W#4       \        . ROV R7      pVP                  P                  R4      p\        R \        P                  R.V R7      P                  4       p\        P                  ! W#4       R# )	r(  r   z([ab]+)$r+  z	([ab]+)\Zz
([ab]+)\\ZN)r(  r   zbb
)zaa\Zr   zbb\Z
)r   r   r   r   r   r/  r"   r#   )r   r1   r&   r%   s   &   r   test_extract_end_of_stringr2    s    
&.>
?C WW__Z(FtRVVT*2BCLLNH&+ WW__\*FtRVVRVV,4DENNPH&+ ,4D
ECWW__]+FtRVVT*2BCLLNH&+r(   )N)i1)Ni2)r3  r4  r   )Nr   NN)Nr   NN)r   Nr   N)r   r   NN)Nr   NNr   r   r   r   )/r   r   numpyr   r   pandas.core.dtypes.dtypesr   pandasr   r   r   r   r	   r"   r   r'   r3   r=   rI   rS   ro   rz   r   r   r   r   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r  r  r  r&  r-  r0  r2   r(   r   <module>r;     sJ    	   0 >,"-,7
9	0P,f,6-,,.8, $!676, 86,r,<,4,R,j  
.(/CD	#a]3	
,
,,*,  	W	W	\	\	w'	|,	|,(,(,V",J# >8>B1 	-.	./	,-	-.	)*	-	- 	vsm$	}%	vsFC=>	VS&#>?	&$ 	,	,,r(   