+
    yȇi?                        ^ RI t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
Hu Ht ^ RIt^ RIHtHtHtHt ^ RIHt ^ RI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$]PJ                  PM                  RR7      R 4       t'R t(R t)R t*R t+]PX                  ! R4      R 4       t-]PJ                  P]                  R]P^                  ]P`                  ].4      R 4       t1R# )    N)Path)HAS_PYARROW)Pandas4Warning)NA
ArrowDtypeSeriesStringDtype)extract_arrayc                    \         '       dX   \        R \        P                  R7      \        R\        P                  R7      \        R \        R7      \        R\        R7      .pM,\        R \        P                  R7      \        R \        R7      .pVP                  V 4      pVP                  V4      pV\        W44      ,          # )pythonna_valuepyarrow)r   r	   npnanr   indexmax)dtype1dtype2DTYPE_HIERARCHYh1h2s   &&   s/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/arithmetic/test_string.pystring_dtype_highest_priorityr      s    {2662	BFF32.	B/	
 26622.

 
		v	&B			v	&B3r;''    c                      \         P                  ! R 4       \        P                  ! \        \        .\        R 4      R7      p W 8H  p\        P                  ! \        \        .RR7      p\        P                  ! W4       R# )r   dtypeboolean[pyarrow]N)pytestimportorskippdarrayr   r	   tmassert_extension_array_equal)aresultexpecteds      r   test_eq_all_nar)   )   sS    
	"
"bY!78AVFxxR(:;H##F5r   c                 (   T pV\         8X  d   R M\        p\        . RO4      p\        . ROVR7      pRp\        P                  ! W%R7      ;_uu_ 4        W4,          pR R R 4       W4P                  \        4      ,          p\        P                  ! XV4       \        P                  ! W%R7      ;_uu_ 4        W4,          pR R R 4       W4P                  \        4      ,          p\        P                  ! Wg4       \        P                  ! W%R7      ;_uu_ 4        W4,          pR R R 4       W4P                  \        4      ,          p\        P                  ! Wg4       R #   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     Lj; i)Nr   z$operations between boolean dtype andmatch)TFFT) r-   bc)objectr   r   r$   assert_produces_warningastypeboolassert_series_equal)any_string_dtyper   warnleftrightmsgr'   r(   s   &       r   test_reversed_logical_opsr:   1   s   EF?4D,-D%U3E
0C		#	#D	4	4 
5ll4((H68,		#	#D	4	4 
5ll4((H6,		#	#D	4	4 
5ll4((H6, 
5	4	4
 
5	4
 
5	4s$   	E5	E.	FE+	.E>	F	c                    V \         8X  d2   \        P                  P                  R R7      pVP	                  V4       \        R4      p\        RR\        .V R7      pW4,          p\        VR,          VR,          VP                  P                  .\         R7      p\        P                  ! WV4       WC,          p\        RV,          RV,          VP                  P                  .\         R7      p\        P                  ! WV4       R# )zqwith NA present we go through _masked_arith_op which raises TypeError bc Path is not recognized by lib.is_scalar.reasonz/Users/Irv/ABr   N)r0   r    markxfailapplymarkerr   r   r   r   r   r$   r4   )r5   requestr@   itemserr'   r(   s   &&     r   test_pathlib_path_divisionrF   I   s    6!{{  K ! 
 	D!D
#sB'7
8CZFtcz4#:syy/A/AB&QH6,ZFsTz3:syy/A/AB&QH6,r   c                    T p\        R R.VR7      p\        ^R.\        R7      pW#8H  p\        RR.\        R7      pV\        8X  d   MmVP                  R8X  d'   VP                  \
        J d   VP                  R4      pM6VP                  R8X  d&   VP                  \
        J d   VP                  R4      p\        P                  ! WE4       R	# )
r&   r.   r   FTr   booleanr   bool[pyarrow]N)	r   r0   r3   storager   r   r2   r$   r4   )r5   r   rE   mixedr'   r(   s   &     r   test_mixed_object_comparisonrL   ^   s    E
#s5
)CAs86*E\Fudm40H	(	"u~~';??9-	)	#"(<???36,r   c                     \         P                  ! R 4      p \        RR.4      p\        RR.\        \        P
                  R7      R7      pW8H  p\        RVP                  R7      p\        P                  ! W44       W8g  p\        RVP                  R7      p\        P                  ! W54       \         P                  ! \        RR	7      ;_uu_ 4        W8   R
R
R
4       VP                  R4      pWa8H  p\        P                  ! WtP                  R4      4       Wa8g  p\        P                  ! WP                  R4      4       \         P                  ! \        RR	7      ;_uu_ 4        W8   R
R
R
4       VP                  \        V P                  4       4      4      p	W8H  p
\        P                  ! WP                  R4      4       W8g  p\        P                  ! WP                  R4      4       \         P                  ! \        RR	7      ;_uu_ 4        W8   R
R
R
4       R
#   + '       g   i     ELR; i  + '       g   i     L; i  + '       g   i     R
# ; i)r   FTr&   r.   r   r   )r   zInvalid comparisonr+   Nzstring[pyarrow]rI   )r    r!   r   r	   r   r   r   r$   r4   raises	TypeErrorr2   r   string)parE   ser2r'   expected_eqexpected_neser3
result3_eq
result3_neser4
result4_eq
result4_nes               r   !test_pyarrow_numpy_string_invalidr[   q   s   			Y	'B
%
C3*K$@AD[Fcii0K6/[FSYY/K6/	y(<	=	=
 
> ;;()DJ:'9'9/'JKJ:'9'9/'JK	y(<	=	=
 
> ;;z"))+./DJ:'9'9/'JKJ:'9'9/'JK	y(<	=	=
 
>	=' 
>	=	= 
>	= 
>	=	=s$   H%H3IH0	3I	I	c                 R   T p\        . R
OVR7      pV\        8X  d   \        P                  ! R4       MVP                  R8X  d   RpMRp\        P
                  ! \        XR7      ;_uu_ 4        RV,           RRR4       \        P
                  ! \        VR7      ;_uu_ 4        VR	,           RRR4       \        P
                  ! \        VR7      ;_uu_ 4        V\        P                  ! . RO\        R7      ,           RRR4       \        P
                  ! \        VR7      ;_uu_ 4        \        P                  ! . RO\        R7      V,           RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r&   r   zThis is not expect to raiser   zACannot multiply StringArray by bools. Explicitly cast to integersz&Can only string multiply by an integerr+   FNTr&   r.   r/   )TFT)
r   r0   r    skiprJ   rN   rO   r   r#   r3   )r5   r   rE   r9   s   &   r   test_mul_bool_invalidr_      s    E

.C12	(	"Q6	y	,	, 
-	y	,	,d
 
-	y	,	,bhh*$77 
-	y	,	,
$D1C7 
-	, 
-	,	,	,	,	,	,	,	,s0   .
E$
E/&F,&FE,	/E?	F	F&	c                 B   T pV\         8X  d2   \        P                  P                  R R7      pVP	                  V4       \        . ROVR7      p\        . ROVR7      pWE,           p\        . ROVR7      p\        P                  ! Wg4       VP                  V4      p\        P                  ! Wg4       VP                  V4      p\        . R	OVR7      p\        P                  ! Wg4       VP                  VRR7      p\        . R
OVR7      p\        P                  ! Wg4       R# )z.Need to update expected for numpy object dtyper<   Nr   -)
fill_value)r&   r.   r/   NN)xyNzN)axbyNNN)xaybNNN)rf   rg   zc-z-zN)
r0   r    r@   rA   rB   r   r$   r4   addradd)r5   rC   r   r@   r&   r.   r'   r(   s   &&      r   test_addrl      s    E{{  C ! 
 	D!*%8A*%8AUF4EBH6,UU1XF6,VVAYF4EBH6,UU1U%F4EBH6,r   c                 T   T pV\         8X  g   VP                  R 8X  d5   Rp\        P                  P	                  RVR7      pVP                  V4       \        P                  ! . ROVR7      p\        P                  ! . RO.\         R7      p\        P                  ! \        RR7      ;_uu_ 4        WV,            RRR4       \        V4      p\        P                  ! \        RR7      ;_uu_ 4        Wv,            RRR4       R#   + '       g   i     LR; i  + '       g   i     R# ; i)r   z*Failed: DID NOT RAISE <class 'ValueError'>N)rN   r=   r   z3 != 1r+   r]   )r0   rJ   r    r@   rA   rB   r"   r#   r   rN   
ValueErrorr   )r5   rC   r   r=   r@   r&   r.   ss   &&      r   test_add_2drp      s    E%--94={{  V <D!
.A
/"&1A	z	2	2	 
3 	q	A	z	2	2	 
3	2	 
3	2 
3	2	2s   0	D0	DD	D'	c                    T pV\         8w  du   VP                  R 8X  dd   VP                  \        P                  J dF   \
        '       d:   V'       d2   \        P                  P                  RR7      pVP                  V4       V\        P                  ! \         4      8X  d:   V'       d2   \        P                  P                  RR7      pVP                  V4       \        P                  ! . ROVR7      p. ROpWV,           p\        P                  ! . ROVR7      p\        P                  ! Wx4       We,           p\        P                  ! . R	OVR7      p\        P                  ! Wx4       R# )
r   zAs of GH#62522, the list gets wrapped with sanitize_array, which casts to a higher-priority StringArray, so we get NotImplemented.r<   zCannot broadcast listNr   )r&   r.   NN)rc   Nrd   N)rf   NNN)rh   NNN)r0   rJ   r   r   r   r   r    r@   rA   rB   r   r"   r#   r$   r%   )	r5   rC   using_infer_stringr   r@   r&   otherr'   r(   s	   &&&      r   test_add_sequencert      s    EMMX%NNbff$K{{   ! 

 	D!  %7{{  (? @D!
'u5A"EYFxx0>H##F5YFxx0>H##F5r   c                     T p\         P                  ! . ROVR7      pV^,          p\         P                  ! . ROVR7      p\        P                  ! W44       ^V,          p\        P                  ! W44       R# )r&   Nr   )r&   r.   N)aabbN)r"   r#   r$   r%   )r5   r   r&   r'   r(   s   &    r   test_mulrx      sW    E
!/AUFxx*%8H##F5UF##F5r   c                 j   T pV\         P                  ! \        4      8w  d2   \        P                  P                  R R7      pVP                  V4       \        P                  ! . ROVR7      p\        P                  ! . RO.\        R7      pVP                  V4      \        J g   Q hWE,           p\        P                  ! . RO.4      P                  V4      p\        P                  ! Wg4       WT,           p\        P                  ! . RO.4      P                  V4      p\        P                  ! Wg4       R# )GH-28527r<   r   N)r&   r.   r/   d)trd   vw)atrg   cvdw)tari   vcwd)r   r   r0   r    r@   rA   rB   r"   r#   	DataFrame__add__NotImplementedr2   r$   assert_frame_equal)r5   rC   r   r@   arrdfr'   r(   s   &&      r   test_add_stringsr     s    E  {{  
 3D!
(('u
5C	+,F	;B;;r?n,,,XF||567>>uEH&+XF||567>>uEH&+r   rz   r<   c                    \         P                  ! R R\        P                  \        P                  .V R7      p\         P                  ! R\        P                  R\        P                  ..4      pVP                  V4      \        J g   Q hW,           p\         P                  ! R\        P                  \        P                  \        P                  ..4      P                  V 4      p\        P                  ! W44       W!,           p\         P                  ! R\        P                  \        P                  \        P                  ..4      P                  V 4      p\        P                  ! W44       R# )r&   r.   r   rc   rd   rf   rh   N)
r"   r#   r   r   r   r   r   r2   r$   r   )r   r   r   r'   r(   s   &    r   test_add_framer     s    
((Cbffbff-U
;C	RVVS"&&12	3B;;r?n,,,XF||dBFFBFFBFF;<=DDUKH&+XF||dBFFBFFBFF;<=DDUKH&+r   c           	         TpR V P                    R 2p\        P                  ! . R
OVR7      pRp\        WC4      ! V4      pV\        8X  g   VP
                  \        P                  J d   \        P                  ! V Uu. uF  p\        Ws4      ! V4      NK  	  up4      pV \        P                  8X  d   RV^&   MRV^&   \        VRR7      p\        P                  ! WhP                  \        P                  4      4       R# VP                  R8X  d   RMR	p	\        P                  ! V Uu. uF  p\        Ws4      ! V4      NK  	  up\        R7      p\        P                  ! WR7      p\        P                   ! Wh4       R# u upi u upi )__r&   Nr   TFextract_numpyr   r   rH   r&   Nr/   )__name__r"   r#   getattrr0   r   r   r   operatorner
   r$   assert_numpy_array_equalr2   bool_rJ   r%   )
comparison_opr5   r   op_namer&   rs   r'   rD   r(   expected_dtypes
   &&        r   test_comparison_methods_scalarr   $  s(   E=))*"-G
!/AEQ 'F%..BFF288qIqtWT3E:qIJHKK'HQKHQKvT:
##FOOBHH,EF/4}}	/I+y88qIqtWT3E:qIQWX88H;
''9 J Js   =E?)Fc                    TpR V P                    R 2p\        P                  ! . ROVR7      p\        WC4      ! \        4      pV\
        P                  ! \        4      8X  g   VP                  \
        P                  J dl   \        P                  V 8X  d   \
        P                  ! . R	O4      pM\
        P                  ! . R
O4      p\        VRR7      p\        P                  ! WV4       R# VP                  R8X  d   RMRp\        P                  ! . ROVR7      p\        P                   ! WV4       \        P                   ! WV4       R# )r   Nr   Tr   r   r   rH   r   TTTFFF)NNN)r   r"   r#   r   r   r   r   r0   r   r   r   r   r
   r$   r   rJ   r%   )r   r5   r   r   r&   r'   r(   r   s   &&      r   $test_comparison_methods_scalar_pd_nar   9  s    E=))*"-G
!/AQ $F  ENNbff$<;;-'xx 23Hxx 56HvT:
##F5/4}}	/I+y88.nE
''9
''9r   c                    R V P                    R 2pTp\        P                  ! . ROVR7      p^*pVR9  dA   \        P                  ! \
        RR7      ;_uu_ 4        \        WB4      ! V4       RRR4       R# \        WB4      ! V4      p\        VRR7      pV\        P                  ! \        4      8X  g   VP                  \        P                  J d@   R. ROR. RO/V,          p\        P                  ! V4      p\        P                  ! Wh4       R# R. ROR. RO/V,          pVP                  R	8X  d   R
MRp	\        P                  ! WyR7      p\        P                   ! Wh4       R#   + '       g   i     R# ; i)r   Nr   __eq____ne__z(Invalid comparison|not supported betweenr+   Tr   r   r   rH   r   )r   r   r   r   )FNF)TNT)r   r"   r#   r    rN   rO   r   r
   r   r   r0   r   r   r$   r   rJ   r%   )
r   r5   r   r   r&   rs   r'   expected_datar(   r   s
   &&        r   )test_comparison_methods_scalar_not_stringr   M  s3   =))*"-GE
!/AE**]]9,VWWA& X 	Q 'F66F  ENNbff$<+(
  88M*
##F5!#7CUV
 05}}	/I+y88M@
''9+ XW 	s   E%%E6	c                 4   R V P                    R 2pTpTp\        P                  ! . R
OVR7      p\        P                  ! . ROVR7      pV ! Wg4      p\        VRR7      pV ! Wv4      p	\        V	RR7      p	\        P
                  ! W4       V\        8X  g   VP                  \        P                  J d   V\        8X  g   VP                  \        P                  J d   \        P                  V 8X  d   \        P                  ! . RO4      p
M;\        P                  ! . RO4      p
\        VR,          V4      ! VR,          4      V
R&   \        VRR7      p\        P                  ! W4       R# V\        8X  d   TpMV\        8X  d   TpM\        WE4      pVP                  R8X  d   RpMRp\        P                   ! \#        V4      RRR	7      p
\        VR,          V4      ! VR,          4      V
R&   \        P                  ! WR7      p
\        P
                  ! W4       R# )r   Nr   Tr   r   rH   rI   r0   rb   r   r   NNr/   TTFr   )r   r"   r#   r
   r$   assert_equalr0   r   r   r   r   r   r   r   r   rJ   fulllen)r   r5   any_string_dtype2r   r   r   r&   rs   r'   result2r(   	max_dtyper   s   &&&          r   test_comparison_methods_arrayr   m  s   =))*"-GEF
!/AHH&f5E1$F66F E%GG48GOOF$5>>RVV3&FOOrvv5;;-'xx 34Hxx 56H"59g6qu=HRLvT:
##F5 F?IvI5eDI(&N,N773q6d(CuRy'21R5988H;
)r   r   c                    ^ RI pTpRV P                   R2p\        VP                  4       4      p\        P
                  ! . ROVR7      p\        P
                  ! . ROVR7      pV ! Wg4      pV ! Wv4      p	\        P                  ! W4       \        P
                  ! . RORR7      p
\        VR,          V4      ! VR,          4      V
R&   \        P                  ! W4       R# )	r   Nr   r   rI   r   r   )NNTr   )
r   r   r   rP   r"   r#   r$   r   r   r%   )r   r5   rQ   r   r   r   r&   rs   r'   r   r(   s   &&         r   -test_comparison_methods_array_arrow_extensionr     s     F=))*"-Gryy{#E
!/AHH&f5E1$F E%GOOF$xx*/BH59g.qu5HRL##F5r   boxc                    TpV\         P                  J d[   V\        8w  dP   VP                  \        P
                  J d2   \        P                  P                  R R7      pVP                  V4       RV P                   R2pV! \         P                  ! . ROVR7      4      pRp. ROp	V ! Wy4      p
V ! W4      p\        P                  ! W4       V\        P                  ! \        4      8X  g   VP                  \        P
                  J d   \        P                  V 8X  d   \        P                  ! . RO4      pM,\        P                  ! . RO4      p\!        W4      ! V4      VR&   V\         P"                  Jd   V! WP                  R7      p\        P                  ! W4       R# VP$                  R8X  d   RMR	p\        P&                  ! \)        V4      RR
R7      p\!        W4      ! V4      VR&   \         P                  ! WR7      p\+        VRR7      pV\         P"                  Jd   \        P,                  ! W4      p\        P                  ! W4       R# )z<After wrapping list, op returns NotImplemented, see GH#62522r<   r   Nr/   r   Tr   r   rH   r0   r   r   r   r   r   r   r   )r"   r#   r0   r   r   r   r    r@   rA   rB   r   r$   r   r   r   r   r   IndexrJ   r   r   r
   box_expected)r   r5   r   rC   r   r@   r   r&   rD   rs   r'   r   r(   r   s   &&&&          r   test_comparison_methods_listr     s   E
bhh5F?u~~/G{{  Q ! 
 	D!=))*"-GBHH%U34ADE1$F E%GOOF$  ENNbff$<;;-'xx 34Hxx 56H"41$7HRLbhh8>>:H
) 05}}	/I+y773q6d(Ct-d388H; >bhhx5H
)r   )2r   pathlibr   numpyr   r    pandas.compatr   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr"   r   r   r   r	   pandas._testing_testingr$   pandas.core.constructionr
   r   r)   r:   rF   rL   r[   r_   rl   rp   rt   rx   r   r@   rA   r   r   r   r   r   
skip_if_nor   parametrizer#   r   r    r   r   <module>r      s        % ( ) )    2(&6-0-*-&!H8,-6$6>6,$ *%, &,:*:(:@)*X y6 6* 288V <=(* >(*r   