
    MhN                     l    S SK J r   S SKrS SKrS SKrS SKJrJrJrJ	r	  S SK
Jr  S SKJr   " S S5      rg)    )datetimeN)	DataFrameIndexSeriesbdate_range)opsc            
       ,   \ rS rSr\R
                  R                  S5      \R
                  R                  S\R                  \R                  \R                  /5      S 5       5       rS rS rS rS rS	 rS
 rS rS rS rS rS rS r\R
                  R                  S\R                  \R                  \R                  /5      S 5       rS r\R
                  R                  S\R8                  \R:                  /5      S 5       r\R
                  R                  S\R8                  \" SS/5      4\R:                  \" SS/5      4\R@                  \" SS/5      4/5      S 5       r!S r"S r#\R
                  RI                  SS9S 5       r%S r&Sr'g )!TestSeriesLogicalOps   z4ignore:Downcasting object dtype arrays:FutureWarningbool_opc                 $   [        [        SSS9[        S9n[        R                  US S S2'   UR                  5       nUR                  US   5      nU" X"S   :  X"S   :  5      nU" XDS   :  XDS   :  5      nS	Xc'   [        R                  " XV5        g )
Nz1/1/2000
   )periodsdtype   r   	      F)	r   r   objectnpnanisnafillnatmassert_series_equal)selfr   sermaskfilledresultexpecteds          V/var/www/html/env/lib/python3.13/site-packages/pandas/tests/series/test_logical_ops.pytest_bool_operators_with_nas1TestSeriesLogicalOps.test_bool_operators_with_nas   s     [R8G66CaCxxzCF#1vsV|461I-vq	/AB
v0    c                    [        S5      n[        / SQUS9n[        / SQUS9n[        / [        S9nX$-  nUR                  5       n[        R
                  " XV5        X$-  nUR                  5       n[        R
                  " XV5        g )NbcaTFTindexFFFr   )listr   r   
sort_indexr   r   )r   r*   s_tfts_fffs_emptyresr!   s          r"   ,test_logical_operators_bool_dtype_with_emptyATestSeriesLogicalOps.test_logical_operators_bool_dtype_with_empty"   sw    U*%8,E:6*o##%
s-o##%
s-r%   c                 F   [        [        S5      SS9n[        S/S-  5      n[        S/S-  5      nX-  n[        [        S5      SS9n[        R                  " XE5        X-  n[        [        SS5      SS9n[        R                  " XE5        [        S/S-  SS9nX-  n[        / SQSS9n[        R                  " XE5        UR	                  [
        R                  5      UR	                  [
        R                  5      -  n[        / S	QS
S9n[        R                  " XE5        g )N   int64r   r         int8r   r8   r   r8   )r8   r8   r   r   int32)r   ranger   r   astyper   int16r;   )r   s_0123s_3333s_4444r1   r!   s_1111s          r"   /test_logical_operators_int_dtype_with_int_dtypeDTestSeriesLogicalOps.test_logical_operators_int_dtype_with_int_dtype2   s     a0aao%('2
s-o%1+W5
s-av.o,g6
s-mmBHH%bhh(??,g6
s-r%   c                     [        [        S5      SS9nUS-  n[        S/S-  5      n[        R                  " X#5        US-  n[        / SQ5      n[        R                  " X#5        g )Nr5   r6   r   r   r8   r:   )r   r<   r   r   )r   r?   r1   r!   s       r"   0test_logical_operators_int_dtype_with_int_scalarETestSeriesLogicalOps.test_logical_operators_int_dtype_with_int_scalarJ   sY    a0qj1#'?
s-qj,'
s-r%   c                 .   [        [        S5      SS9nSnSn[        R                  " [        US9   U[
        R                  -    S S S 5        [        R                  " [        US9   US-    S S S 5        Sn[        R                  " [        US9   [        R                  " [        US9   U/ S	Q-    S S S 5        S S S 5        [        R                  " [        US9   U[
        R                  " / S	Q5      -    S S S 5        [        R                  " [        US9   U[        / S
Q5      -    S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr5   r6   r   LLogical ops \(and, or, xor\) between Pandas objects and dtype-less sequences7Cannot perform.+with a dtyped.+array and scalar of typematchQ	@z unsupported operand type.+for &:)皙?r5   rM   r   )rN   r5   gQ	r   )r   r<   pytestraises	TypeErrorr   r   r   assert_produces_warningFutureWarningarray)r   r?   warn_msgmsgs       r"   +test_logical_operators_int_dtype_with_float@TestSeriesLogicalOps.test_logical_operators_int_dtype_with_floatV   s   a0# 	
 H]]9C0RVVO 1]]9C0TM 10]]9C0++MJ** K 1 ]]9C0RXX/00 1]]9C0V.// 10 1000 KJ 10 1000sS   D1&EE$)E1E$E5F1
D?
E
E!	E$$
E25
F
Fc                 r   [        S/S-  SS9nSnSn[        R                  " [        US9   US-    S S S 5        [        R                  " [        S	S9   [        R
                  " [        US9   U/ S
Q-    S S S 5        S S S 5        g ! , (       d  f       NZ= f! , (       d  f       N(= f! , (       d  f       g = f)Nr8   r5   r9   r   rI   z=Cannot perform 'and_' with a dtyped.+array and scalar of typerK   azunsupported operand.+for &)rZ   bcd)r   rO   rP   rQ   r   rR   rS   )r   rB   rU   rV   s       r"   )test_logical_operators_int_dtype_with_str>TestSeriesLogicalOps.test_logical_operators_int_dtype_with_strm   s    av.# 	
 N]]9C0SL 1]]9,HI++MJ-- K JI 10 KJ JIs/   BB(-B5B(
B
B%	!B((
B6c                    [        [        S5      SS9n[        S/S-  5      nUS-  n[        R                  " X25        Sn[        R                  " [
        US9   US/-  nS S S 5        [        R                  " X25        [        R                  " [
        US9   US-  nS S S 5        [        R                  " X25        US-  n[        / SQ5      n[        R                  " X25        g ! , (       d  f       N= f! , (       d  f       N^= f)	Nr5   r6   r   FrI   rK   )F)FTTT)r   r<   r   r   rR   rS   )r   r?   r!   r    rU   s        r"   *test_logical_operators_int_dtype_with_bool?TestSeriesLogicalOps.test_logical_operators_int_dtype_with_bool|   s    a05'A+&%
v0# 	 ''XFug%F G
v0''XFh&F G
v0%34
v0 GF GFs   C$C5$
C25
Dc                    [        [        S5      SS9nU[        S[        R                  SS/5      -  n[        S/S-  5      n[        R
                  " X45        [        SS[        R                  S/5      nU(       a;  SS Kn[        R                  " UR                  R                  S	S
9   X%-    S S S 5        g [        R                  " [        SS
9   X%-    S S S 5        g ! , (       d  f       g = f! , (       d  f       g = f)Nr5   r6   r   FrZ   r[   r]   r   has no kernelrK   zunsupported.* 'int' and 'str')r   r<   r   r   r   r   pyarrowrO   rP   libArrowNotImplementedErrorrQ   )r   using_infer_stringr?   r    r!   s_abNdpas          r"   ,test_logical_operators_int_dtype_with_objectATestSeriesLogicalOps.test_logical_operators_int_dtype_with_object   s    a0&%!>??5'A+&
v0c2663/0 rvv>>oV WV y0OP QP WV QPs   *CC0
C-0
C>c                     [        S5      n[        / SQUS9n[        / SQUS9nUS-  nUn[        R                  " XE5        US-  nUn[        R                  " XE5        g )Nr'   r(   r)   r+   r   r8   )r,   r   r   r   )r   r*   r.   r/   r1   r!   s         r"   *test_logical_operators_bool_dtype_with_int?TestSeriesLogicalOps.test_logical_operators_bool_dtype_with_int   s]    U*%8,E:ai
s-ai
s-r%   c                 8   [        / SQ5      nSSS S[        R                  /nSn[        / SQ5      n[        R                  " [
        US9   X-  nS S S 5        [        R                  " WU5        U[        R                  " U5      -  n[        R                  " XT5        U[        U5      -  n[        R                  " XT5        U[        U5      -  n[        R                  " XT5        [        / SQ5      n[        R                  " [
        US9   X-  nS S S 5        [        R                  " XT5        U[        R                  " U5      -  n[        R                  " XT5        U[        U5      -  n[        R                  " XT5        U[        U5      -  n[        R                  " XT5        [        / SQ5      n[        R                  " [
        US9   X-  nS S S 5        [        R                  " XT5        U[        R                  " U5      -  n[        R                  " XT5        U[        U5      -  n[        R                  " XT5        U[        U5      -  n[        R                  " XT5        g ! , (       d  f       GN= f! , (       d  f       GNo= f! , (       d  f       N= f)	N)TTTFTTFrI   )TFFFFrK   )TTTTT)FTTTT)	r   r   r   r   rR   rS   r   rT   r   )r   leftrightrV   r!   r    s         r"   (test_logical_ops_bool_dtype_with_ndarray=TestSeriesLogicalOps.test_logical_ops_bool_dtype_with_ndarray   s   56udD"&&1# 	
 <=''SA\F B
vx0'
v0e$
v0u%
v089''SA\F B
v0'
v0e$
v0u%
v09:''SA\F B
v0'
v0e$
v0u%
v0= BA BA BAs$   I'I9J'
I69
J
Jc                    [        S5      n[        / SQUS9n[        / SQUS9n[        / SQUS9n[        [        S5      SS9n[        S/S	-  / S
QS9n[        R                  " [
        5         X$-  nS S S 5        [        R                  " WU5        [        S/S	-  / S
QS9n[        R                  " [
        5         XB-  nS S S 5        [        R                  " Xe5        [        S/[        S5      5      n[        R                  " [
        5         X'-  nS S S 5        UR                  [        S5      5      n[        R                  " WU5        [        R                  " [
        5         X'-  nS S S 5        UR                  [        S5      5      n[        R                  " X5        g ! , (       d  f       GN9= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ns= f)Nr'   r(   r)   TFFr5   r6   r   F   )r   r8   r   r   rZ   r[   r\   r8   r[   abc)r,   r   r<   r   rR   rS   r   reindex)	r   r*   r.   s_tffr?   r!   r    s_a0b1c0r1   s	            r"   <test_logical_operators_int_dtype_with_bool_dtype_and_reindexQTestSeriesLogicalOps.test_logical_operators_int_dtype_with_bool_dtype_and_reindex   sn    U*%8*%8+59a0 5'A+-HI''6^F 7
vx0 5'A+-HI''6^F 7
v01#tCy)''6"C 7==e-
sH-''6"C 7==e-
s-+ 76 76 76
 76s0   -F$;F6G&G$
F36
G
G
G&c                    [        / SQ5      nSn[        R                  " [        US9   U[	        SSS5      -    S S S 5        [        SSSS	S
SSS[	        SSS5      /	5      n[
        R                  US S S2'   [        SUR                  S9nSUS S S2'   Sn[        R                  " [        US9   U[        U5      -  nS S S 5        [        R                  " WU5        g ! , (       d  f       N= f! , (       d  f       N7= f)N)	r   r   r5         rw   r7   r   r   rJ   rK     r8   r   r   r5   r   r   rw   r7   r   Tr)   FrI   )r   rO   rP   rQ   r   r   r   r*   r   rR   rS   r,   r   )r   srV   r!   r    s        r"   "test_scalar_na_logical_ops_corners7TestSeriesLogicalOps.test_scalar_na_logical_ops_corners  s    /0G]]9C0q!$$ 1 Aq!Q1aHT1a,@AB#A#$agg.1# 	 ''SAa[F B
vx0 10 BAs   C.C.
C+.
C<c                 D   [        SSSSSSSS[        S	S
S
5      /	5      n[        R                  US S S2'   [	        SU05      n[	        S[        S5      S/[        [        S5      5      -   S9nX-  n[        R                  " XC5        X!-  n[        R                  " XC5        g )Nr   r   r5   r   r   rw   r7   r   r   r8   AF)r*   columns)	r   r   r   r   r   r<   r,   r   assert_frame_equal)r   r   r]   r!   r    s        r"   )test_scalar_na_logical_ops_corners_aligns>TestSeriesLogicalOps.test_scalar_na_logical_ops_corners_aligns  s    Aq!Q1aHT1a,@AB#A#sAhU%(SEDqN<RS
f/
f/r%   opc           
         [        / SQ5      n[        / SQ5      n[        / SQ5      n[        [        [        U5      5       Vs/ s H  oQ" X%   X5   5      PM     sn5      nU" X#5      n[        R
                  " Xv5        [        [        [        U5      5       Vs/ s H  oQ" X%   XE   5      PM     sn[        S9nU" X$5      n[        R
                  " Xv5        g s  snf s  snf )NTTFFTFTFr8   r   r8   r   r   )r   r   r<   lenr   r   bool)r   r   r   idx1idx2nr!   r    s           r"   test_logical_ops_with_index0TestSeriesLogicalOps.test_logical_ops_with_index&  s     /0/0\"c#hH12cfdg.HIC
v0c#hH12cfdg.HPTUC
v0 I
 Is   CCc                     [        / SQ5      n[        / SQ[        S9n[        / SQ5      n[        / SQ5      nX!-  n[        R                  " XT5        X1-  n[        R                  " XT5        g )Nr   r   r   r   )FTTF)r   r   r   r   r   )r   r   r   r   r!   r    s         r"   +test_reversed_xor_with_index_returns_series@TestSeriesLogicalOps.test_reversed_xor_with_index_returns_series7  sY    /0/t<\"45
v0
v0r%   c                 :   [        / SQ5      n[        / SQ5      n[        / SQ5      n[        U" UR                  UR                  5      5      nU" X#5      n[        R                  " Xe5        U" U[        U5      5      nU" X$5      n[        R                  " Xe5        g )Nr   r   r   )r   r   valuesr   r   )r   r   r   r   r   r!   r    s          r"   2test_reversed_logical_op_with_index_returns_seriesGTestSeriesLogicalOps.test_reversed_logical_op_with_index_returns_seriesD  s{     /0/0\""T[[#**56C
v0c6$<(C
v0r%   zop, expectedFTc                 t    [        SS/5      n[        SS/5      nU" X45      n[        R                  " XR5        g )NTF)r   r   r   r   )r   r   r!   r   idxr    s         r"   test_reverse_ops_with_index0TestSeriesLogicalOps.test_reverse_ops_with_indexY  s7     dE]#UDM"C
v0r%   c                    [        / SQ[        S5      5      n[        / SQ[        S5      5      n[        / SQ[        S5      5      nX#-  n[        R                  " XT5        [        / SQ[        S5      5      nX#-  n[        R                  " XT5        [        / SQ[        S5      5      nX#-  n[        R                  " XT5        [        / SQ[        S5      5      n[        / SQ[        S5      5      n[        / S	Q[        S5      5      nX#-  n[        R                  " XT5        [        / S
Q[        S5      5      nX#-  n[        R                  " XT5        [        / [        S9nX&R                  5       -  n[        / SQ[        S5      5      n[        R                  " XT5        X&R                  5       -  n[        / SQ[        S5      5      n[        R                  " XT5        [        R                  " [        5         U[        S/S/5      -  nS S S 5        [        / SQ[        S5      5      n[        R                  " XT5        [        R                  " [        5         U[        S/S/5      -  nS S S 5        [        / S
Q[        S5      5      n[        R                  " XT5        [        R                  " [        5         UR                  5       [        S/S/5      [        [        R                  UR                  5      [        [        R                  UR                  5      4 H#  nX"U-     n[        R                  " XRU   5        M%     S S S 5        [        S/5      4 H  nU(       a  [        OS nU(       a\  SS Kn	[        R                  " USS9   [        R                  " U	R                  R                  SS9   X"U-     nS S S 5        S S S 5        OX"U-     n[        R                  " XRU   5        M     [        S5      n
[        / SQ5      nS H4  n[        / SQU
S9U-  n[        / SQU
S9n[        R                  " XT5        M6     Sn[        R                  S4 H)  n[        R                  " [         US9   X-    S S S 5        M+     S H4  n[        / SQU
S9U-  n[        / SQU
S9n[        R                  " XT5        M6     S H4  n[        / SQU
S9U-  n[        / SQU
S9n[        R                  " XT5        M6     S H4  n[        / SQU
S9U-  n[        / SQU
S9n[        R                  " XT5        M6     Sn[        R                  4 H)  n[        R                  " [         US9   X-    S S S 5        M+     g ! , (       d  f       GNs= f! , (       d  f       GN$= f! , (       d  f       GN[= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GM  = f! , (       d  f       M  = f)Nr(   r'   )FTFrx   TTFrv   )FTFTabcd)FTFFr   r   r+   r8   z)FFFFabczr   zOperation between nonrK   rd   )Tr8   r   r)   )TTTrJ   foo)Fr   )Tr8   )r   r,   r   r   r   copyrR   rS   r   r   r*   re   rO   rP   rf   rg   rQ   )r   rh   rZ   r[   r!   r    emptyewarnrj   r*   tvrV   s                 r"   test_logical_ops_label_based1TestSeriesLogicalOps.test_logical_ops_label_basedk  s    &U4'e5.U<
v0-tE{;
v0.U<
v0 &U4-tF|<5tF|D
v04d6lC
v0
 r(ZZ\!/e=
v0ZZ\!-tE{;
v0 ''6cU++F 76VE
v0''6cU++F 74d6lC
v0 ''6

sSE"rvvqww'rvvqww'	 q5&&vt4 7 #-A$6=DD!$//<ST77 "#q5 UT q5""6Q40 ! U&'A/u=AF0>H""64 
 H&&%Ay4 54 ! A/u=AF1?H""64 
 A/u=AF1?H""64 
 A/u=AF35AH""64  H&&Ay4 54 C 76
 76 76   UT( 54& 54sa   8U6V:BV*V>7V,?V>6W$W#6
V
V
V),
V;6V>>
W	
W 	#
W2	c                    [        / SQ[        S5      SS9n[        / SQ[        S5      SS9n[        / SQ[        S5      SS9n[        R                  " X-  U5        [        R                  " X!-  U5        [        / S	Q[        S5      SS9n[        R                  " X-  U5        [        / S
Q[        S5      SS9n[        R                  " X!-  U5        [        R                  " UR                  5       UR                  5       -  UR                  5       5        [        R                  " UR                  5       UR                  5       -  UR                  5       5        [        SSS[        R                  [        R                  /0[        S5      S9n[        R                  " UR                  5       UR                  5       -  UR                  5       5        [        R                  " UR                  5       UR                  5       -  UR                  5       5        [        / SQ[        S5      SS9n[        / SQ[        S5      SS9n[        / SQ[        S5      SS9n[        R                  " Xg-  U5        [        R                  " Xv-  U5        [        / S	Q[        S5      SS9n[        R                  " Xg-  U5        [        / SQ[        S5      SS9n[        R                  " Xv-  U5        [        R                  " UR                  5       UR                  5       -  UR                  5       5        [        R                  " UR                  5       UR                  5       -  UR                  5       5        [        R                  " UR                  5       UR                  5       -  UR                  5       5        [        R                  " UR                  5       UR                  5       -  UR                  5       5        g )Nr(   ABCxr*   namer   ABD)TFFFABCD)TTTFr   Tr)   )TTTTr   )	r   r,   r   r   r   to_framer   r   r   )r   s1s2expexp_or1exp_ors3s4s           r"   test_logical_ops_df_compat/TestSeriesLogicalOps.test_logical_ops_df_compat  s   'tE{E'tE{E0V3O
rw,
rw, 2$v,SQ
rw02$v,SQ
rw/ 	bkkmbkkm;S\\^L
bkkmbkkm;S\\^LtT266266:;4<P
bkkmbkkm;W=M=M=OP
bkkmbkkm;V__=NO 'tE{E,DLsK/tF|#N
rw,
rw, 2$v,SQ
rw00V3O
rw/
bkkmbkkm;S\\^L
bkkmbkkm;S\\^L
bkkmbkkm;W=M=M=OP
bkkmbkkm;V__=NOr%   z-Will pass once #52839 deprecation is enforced)reasonc                     [        / SQ/ SQSS9n[        / SQ/ SQSS9n[        R                  " X5      n[        / SQ/ SQSS9n[        R                  " X45        X-  n[        R                  " X45        g )N)r8   r   r   )r         rZ   r   )r         )r   r   r   )   r7      )r   r   bitwise_xorr   r   )r   ser1ser2r    r!   s        r"   'test_int_dtype_different_index_not_bool<TestSeriesLogicalOps.test_int_dtype_different_index_not_bool
  s_     i|#>l,SA++\D
v0
v0r%   c                    [         R                  " S5        [        SS/5      n[        SS/SS9nX:H  n[        SUR                  S9n[        R
                  " X45        X:g  n[        SUR                  S9n[        R
                  " X45        [         R                  " [        S	S
9   X:    S S S 5        g ! , (       d  f       g = f)Nre   FTrZ   r[   zstring[pyarrow_numpy]r   r)   zInvalid comparisonrK   )rO   importorskipr   r*   r   r   rP   rQ   )r   r   r   r    r!   s        r"   !test_pyarrow_numpy_string_invalid6TestSeriesLogicalOps.test_pyarrow_numpy_string_invalid  s    I&eT]#sCj(?@%syy1
v0$cii0
v0]]9,@AJ BAAs   %B33
C N)(__name__
__module____qualname____firstlineno__rO   markfilterwarningsparametrizeoperatorand_or_xorr#   r2   rC   rF   rW   r^   ra   rk   rn   rs   r|   r   r   r   r   r   rand_ror_r   r   rxorr   r   r   xfailr   r   __static_attributes__r   r%   r"   r
   r
      s   [[ VW[[Yhll(ST1 U X1. .0
.0..12 $.)1V".H1*0 [[THMM8<<#NO1 P1 1 [[IIHH	
11 [[YYu~./XXvtTl+,XXvtTl+,	
11pd+PZ [[MN	1 O	1r%   r
   )r   r   numpyr   rO   pandasr   r   r   r   pandas._testing_testingr   pandas.corer   r
   r   r%   r"   <module>r      s/          S Sr%   