
    .iF                     l    d dl m Z  d dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mZ d dlmZ  G d d      Zy)    )datetimeN)	DataFrameIndexSeriesbdate_range)opsc                      e Zd Zej                  j                  dej                  ej                  ej                  g      d        Z
d Zd Zd Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zej                  j                  dej                  ej                  ej                  g      d        Zd Zej                  j                  dej4                  ej6                  g      d        Zej                  j                  dej4                  ddgfej6                  ddgfej:                  ddgfg      d        Zd Zd Z d Z!y)TestSeriesLogicalOpsbool_opc                 :   t        t        dd      t              }t        j                  |d d d<   |j                         }|j                  |d         } |||d   k  ||d   kD        } |||d   k  ||d   kD        }d	||<   t        j                  ||       y )
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          b/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/series/test_logical_ops.pytest_bool_operators_with_nasz1TestSeriesLogicalOps.test_bool_operators_with_nas   s     [R8G66CaCxxzCF#s1vsSV|46F1I-vq	/AB
vx0    c                 $   t        d      }t        g d|      }t        g d|      }t        g t              }||z  }|j                         }t	        j
                  ||       ||z  }|j                         }t	        j
                  ||       y )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_emptyzATestSeriesLogicalOps.test_logical_operators_bool_dtype_with_empty!   s    U*%8,E:6*go##%
sH-go##%
sH-r#   c                 p   t        t        d      d      }t        dgdz        }t        dgdz        }||z  }t        t        d      d      }t        j                  ||       ||z  }t        t        dd      d      }t        j                  ||       t        dgdz  d      }||z  }t        g dd      }t        j                  ||       |j	                  t
        j                        |j	                  t
        j                        z  }t        g d	d
      }t        j                  ||       y )N   int64r   r         int8r   r5   r   r5   )r5   r5   r   r   int32)r   ranger   r   astyper   int16r8   )r   s_0123s_3333s_4444r/   r    s_1111s          r!   /test_logical_operators_int_dtype_with_int_dtypezDTestSeriesLogicalOps.test_logical_operators_int_dtype_with_int_dtype1   s     a0aavo%('2
sH-vo%1+W5
sH-av.vo,g6
sH-mmBHH%bhh(??,g6
sH-r#   c                     t        t        d      d      }|dz  }t        dgdz        }t        j                  ||       |dz  }t        g d      }t        j                  ||       y )Nr2   r3   r   r   r5   r7   )r   r9   r   r   )r   r<   r/   r    s       r!   0test_logical_operators_int_dtype_with_int_scalarzETestSeriesLogicalOps.test_logical_operators_int_dtype_with_int_scalarI   s]    a0qj1#'?
sH-qj,'
sH-r#   c                    t        t        d      d      }d}d}t        j                  t        |      5  |t
        j                  z   d d d        t        j                  t        |      5  |dz   d d d        d}t        j                  t        |      5  |g d	z   d d d        t        j                  t        |      5  |t        j                  g d	      z   d d d        t        j                  t        |      5  |t        g d
      z   d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   y xY w)Nr2   r3   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 &:)皙?r2   rH   r   )rI   r2   gQ	r   )r   r9   pytestraises	TypeErrorr   r   array)r   r<   err_msgmsgs       r!   +test_logical_operators_int_dtype_with_floatz@TestSeriesLogicalOps.test_logical_operators_int_dtype_with_floatU   s   a0# 	
 H]]9C0 	RVVO	]]9C0 	TM	0]]9G4 	'&&	']]9C0 	1RXX/00	1]]9C0 	0V.//	0 	0	 		 		' 	'	1 	1	0 	0s;   D-D'D3D?ED$'D03D<?EEc                    t        dgdz  d      }d}d}t        j                  t        |      5  |dz   d d d        t        j                  t        |      5  |g d	z   d d d        y # 1 sw Y   5xY w# 1 sw Y   y xY w)
Nr5   r2   r6   r   rD   z=Cannot perform 'and_' with a dtyped.+array and scalar of typerF   a)rR   bcd)r   rJ   rK   rL   )r   r?   rN   rO   s       r!   )test_logical_operators_int_dtype_with_strz>TestSeriesLogicalOps.test_logical_operators_int_dtype_with_strk   s    av.# 	
 N]]9C0 	SL	]]9G4 	*))	* 	*	 		* 	*s   A+A7+A47B c                    t        t        d      d      }t        dgdz        }|dz  }t        j                  ||       d}t	        j
                  t        |      5  |dgz   d d d        t	        j
                  t        |      5  |dz   d d d        |dz  }t        g d      }t        j                  ||       y # 1 sw Y   [xY w# 1 sw Y   >xY w)	Nr2   r3   r   FrD   rF   )F)FTTT)r   r9   r   r   rJ   rK   rL   )r   r<   r    r   rO   s        r!   *test_logical_operators_int_dtype_with_boolz?TestSeriesLogicalOps.test_logical_operators_int_dtype_with_booly   s    a05'A+&%
vx0# 	 ]]9C0 	eW	 ]]9C0 	X	 %34
vx0	 		 	s   B?C?CCc                 ^   t        t        d      d      }|t        dt        j                  ddg      z  }t        dgdz        }t	        j
                  ||       t        ddt        j                  dg      }t        j                  t        d	      5  ||z   d d d        y # 1 sw Y   y xY w)
Nr2   r3   r   FrR   rS   rU   z3unsupported.* 'int' and 'str'|'rand_' not supportedrF   )	r   r9   r   r   r   r   rJ   rK   rL   )r   r<   r   r    s_abNds        r!   ,test_logical_operators_int_dtype_with_objectzATestSeriesLogicalOps.test_logical_operators_int_dtype_with_object   s    a0&%!>??5'A+&
vx0c2663/0]]R
 	 VO	 	 	s   B##B,c                     t        d      }t        g d|      }t        g d|      }|dz  }|}t        j                  ||       |dz  }|}t        j                  ||       y )Nr%   r&   r'   r)   r   r5   )r*   r   r   r   )r   r(   r,   r-   r/   r    s         r!   *test_logical_operators_bool_dtype_with_intz?TestSeriesLogicalOps.test_logical_operators_bool_dtype_with_int   sa    U*%8,E:ai
sH-ai
sH-r#   c                    t        g d      }ddd dt        j                  g}d}t        g d      }t        j                  t
        |      5  ||z   d d d        |t        j                  |      z  }t        j                  ||       |t        |      z  }t        j                  ||       |t        |      z  }t        j                  ||       t        g d      }t        j                  t
        |      5  ||z   d d d        |t        j                  |      z  }t        j                  ||       |t        |      z  }t        j                  ||       |t        |      z  }t        j                  ||       t        g d      }t        j                  t
        |      5  ||z   d d d        |t        j                  |      z  }t        j                  ||       |t        |      z  }t        j                  ||       |t        |      z  }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   :xY w# 1 sw Y   xY w)	N)TTTFTTFrD   )TFFFFrF   )TTTTT)FTTTT)
r   r   r   rJ   rK   rL   rM   r   r   r   )r   leftrightrO   r    r   s         r!   (test_logical_ops_bool_dtype_with_ndarrayz=TestSeriesLogicalOps.test_logical_ops_bool_dtype_with_ndarray   s   56udD"&&1# 	
 <=]]9C0 	5L	'
vx0e$
vx0u%
vx089]]9C0 	5L	'
vx0e$
vx0u%
vx09:]]9C0 	5L	'
vx0e$
vx0u%
vx07	 		 		 	s$   H*9H7%I*H47IIc                 j   t        d      }t        g d|      }t        g d|      }t        g d|      }t        t        d      d      }t        dgd	z  g d
      }||z  }t        j                  ||       d}t        j                  t        |      5  ||z   d d d        t        dgt        d            }||z  }	|j                  t        d            }t        j                  |	|       ||z  }	|j                  t        d            }t        j                  |	|       y # 1 sw Y   xY w)Nr%   r&   r'   TFFr2   r3   r   F   )r   r5   r   r   rR   rS   rT   z7unsupported operand type\(s\) for &: 'float' and 'bool'rF   r5   rS   abc)	r*   r   r9   r   r   rJ   rK   rL   reindex)
r   r(   r,   s_tffr<   r    r   rO   s_a0b1c0r/   s
             r!   <test_logical_operators_int_dtype_with_bool_dtype_and_reindexzQTestSeriesLogicalOps.test_logical_operators_int_dtype_with_bool_dtype_and_reindex   s    U*%8*%8+59a0 5'A+-HI
vx0 I]]9C0 	UN	 1#tCy)h==e-
sH-h==e-
sH-	 	s   D))D2c                    t        g d      }d}t        j                  t        |      5  |t	        ddd      z   d d d        t        dddd	d
dddt	        ddd      g	      }t
        j                  |d d d<   t        d|j                        }d|d d d<   d}t        j                  t        |      5  |t        |      z   d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)N)	r   r   r2         rd   r4   r   r   rE   rF     r5   r   r   r2   rk   rl   rd   r4   r   Tr'   FrD   )	r   rJ   rK   rL   r   r   r   r(   r*   )r   srO   r    s       r!   "test_scalar_na_logical_ops_cornersz7TestSeriesLogicalOps.test_scalar_na_logical_ops_corners   s    /0G]]9C0 	%q!$$	% Aq!Q1aHT1a,@AB#A#$agg.1# 	 ]]9C0 	QK	 		% 	%	 	s   C5CCC"c                 L   t        ddddddddt        d	d
d
      g	      }t        j                  |d d d<   t	        d|i      }t	        dt        d      dgt        t        d                  }||z  }t        j                  ||       ||z  }t        j                  ||       y )Nr   r   r2   rk   rl   rd   r4   r   rm   r5   AF)r(   columns)	r   r   r   r   r   r9   r*   r   assert_frame_equal)r   rn   rU   r    r   s        r!   )test_scalar_na_logical_ops_corners_alignsz>TestSeriesLogicalOps.test_scalar_na_logical_ops_corners_aligns  s    Aq!Q1aHT1a,@AB#A#sAhU%(S<R4a><RSQ
fh/Q
fh/r#   opc           
         t        g d      }t        g d      }t        g d      }t        t        t        |            D cg c]  } |||   ||          c}      } |||      }t	        j
                  ||       t        t        t        |            D cg c]  } |||   ||          c}t              } |||      }t	        j
                  ||       y c c}w c c}w )NTTFFTFTFr5   r   r5   r   r   )r   r   r9   lenr   r   bool)r   ru   r   idx1idx2nr    r   s           r!   test_logical_ops_with_indexz0TestSeriesLogicalOps.test_logical_ops_with_index  s     /0/0\"c#hH12c!fd1g.HIC
vx0c#hH12c!fd1g.HPTUC
vx0 I
 Is   CC"c                     t        g d      }t        g dt              }t        g d      }t        g d      }||z  }t        j                  ||       ||z  }t        j                  ||       y )Nrw   rx   r   ry   )FTTF)r   r   r{   r   r   )r   r   r|   r}   r    r   s         r!   +test_reversed_xor_with_index_returns_seriesz@TestSeriesLogicalOps.test_reversed_xor_with_index_returns_series&  sa    /0/t<\"45
vx0
vx0r#   c                 >   t        g d      }t        g d      }t        g d      }t         ||j                  |j                              } |||      }t        j                  ||        ||t        |            } |||      }t        j                  ||       y )Nrw   rx   ry   )r   r   valuesr   r   )r   ru   r   r|   r}   r    r   s          r!   2test_reversed_logical_op_with_index_returns_serieszGTestSeriesLogicalOps.test_reversed_logical_op_with_index_returns_series3  s     /0/0\""T[[#**56C
vx0c6$<(C
vx0r#   zop, expectedFTc                     t        ddg      }t        ddg      } |||      }t        |      }t        j                  ||       y )NTF)r   r   r   r   )r   ru   r    r   idxr   s         r!   test_reverse_ops_with_indexz0TestSeriesLogicalOps.test_reverse_ops_with_indexH  sE     dE]#UDM"C(#
vx0r#   c                 	   t        g dt        d            }t        g dt        d            }t        g dt        d            }||z  }t        j                  ||       t        g dt        d            }||z  }t        j                  ||       t        g dt        d            }||z  }t        j                  ||       t        g dt        d            }t        g dt        d            }t        g d	t        d            }||z  }t        j                  ||       t        g d
t        d            }||z  }t        j                  ||       t        g t              }||z  }t        g dt        d            }t        j                  ||       ||z  }t        g dt        d            }t        j                  ||       |t        dgdg      z  }t        g dt        d            }t        j                  ||       |t        dgdg      z  }t        g d
t        d            }t        j                  ||       |j                         t        dgdg      t        t        j                  |j                        t        t        j                  |j                        fD ]#  }|||z     }t        j                  |||          % t        dg      fD ]R  }|r-t        j                  t        d      5  |||z     }d d d        n|||z     }t        j                  |||          T t        d      }t        g d      }	dD ]9  }
t        g d|      |
z  }t        g d|      }t        j                  ||       ; d}t        j                  dfD ]+  }
t        j                  t        |      5  |	|
z   d d d        - dD ]9  }
t        g d|      |
z  }t        g d|      }t        j                  ||       ; dD ]9  }
t        g d|      |
z  }t        g d|      }t        j                  ||       ; dD ]9  }
t        g d|      |
z  }t        g d|      }t        j                  ||       ; d}t        j                  fD ]+  }
t        j                  t        |      5  |	|
z   d d d        - y # 1 sw Y   xY w# 1 sw Y   AxY w# 1 sw Y   RxY w)Nr&   r%   )FTFre   TTFrc   )FTFTabcd)FTFFrw   r   r)   r5   z)FFFFabczz0not supported for dtype|unsupported operand typerF   )Tr5   r   r'   )TTTrE   foo)Fr   )Tr5   )r   r*   r   r   r   copyr   r   r(   rJ   rK   rL   )r   using_infer_stringrR   rS   r    r   emptyer(   tvrO   s               r!   test_logical_ops_label_basedz1TestSeriesLogicalOps.test_logical_ops_label_based[  s    &U4'e5.U<Q
vx0-tE{;Q
vx0.U<Q
vx0 &U4-tF|<5tF|DQ
vx04d6lCQ
vx0
 r(U/e=
vx0U-tE{;
vx0 VQC#''6VE
vx0VQC#''4d6lC
vx0
 JJLA3266177#266177#	
 	1A q1uXF""61Q40	1 #- 
	1A! ]]%W & q1uXF& &
 1q5""61Q40
	1 U&' 	5A/u=AF0>H""684	5
 H&&% 	Ay4 A 	  	5A/u=AF1?H""684	5
  	5A/u=AF1?H""684	5
  	5A/u=AF35AH""684	5 H&& 	Ay4 A 	K& && & s$   ?	S<S7S"S	S	"S+	c                 (   t        g dt        d      d      }t        g dt        d      d      }t        g dt        d      d      }t        j                  ||z  |       t        j                  ||z  |       t        g d	t        d      d      }t        j                  ||z  |       t        g d
t        d      d      }t        j                  ||z  |       t        j                  |j                         |j                         z  |j                                t        j                  |j                         |j                         z  |j                                t        dddt        j                  t        j                  git        d            }t        j                  |j                         |j                         z  |j                                t        j                  |j                         |j                         z  |j                                t        g dt        d      d      }t        g dt        d      d      }t        g dt        d      d      }t        j                  ||z  |       t        j                  ||z  |       t        g d	t        d      d      }t        j                  ||z  |       t        g dt        d      d      }t        j                  ||z  |       t        j                  |j                         |j                         z  |j                                t        j                  |j                         |j                         z  |j                                t        j                  |j                         |j                         z  |j                                t        j                  |j                         |j                         z  |j                                y )Nr&   ABCxr(   namer   ABD)TFFFABCD)TTTFrw   Tr'   )TTTTrx   )	r   r*   r   r   rs   to_framer   r   r   )r   s1s2expexp_or1exp_ors3s4s           r!   test_logical_ops_df_compatz/TestSeriesLogicalOps.test_logical_ops_df_compat  s   'tE{E'tE{E0V3O
rBw,
rBw, 2$v,SQ
rBw02$v,SQ
rBw/ 	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
rBw,
rBw, 2$v,SQ
rBw00V3O
rBw/
bkkmbkkm;S\\^L
bkkmbkkm;S\\^L
bkkmbkkm;W=M=M=OP
bkkmbkkm;V__=NOr#   c                     t        g dg dd      }t        g dg dd      }t        j                  ||      }t        g dg dd      }t        j                  ||       ||z  }t        j                  ||       y )N)r5   r   r   )r         rR   r   )r         )r   r   r   )   r4      )r   r   bitwise_xorr   r   )r   ser1ser2r   r    s        r!   'test_int_dtype_different_index_not_boolz<TestSeriesLogicalOps.test_int_dtype_different_index_not_bool  se    i|#>l,SAd++\D
vx0
vx0r#   N)"__name__
__module____qualname__rJ   markparametrizeoperatorand_or_xorr"   r0   r@   rB   rP   rV   rX   r[   r]   ra   ri   ro   rt   r   r   r   rand_ror_r   rxorr   r   r   r    r#   r!   r
   r
      s\   [[Yhll(ST1 U1. .0
.0,*1..&1P.@(0 [[THMM8<<#NO1 P1 1 [[IIHH	
11 [[YY'XXd|$XXd|$	
	1	1kZ+PZ	1r#   r
   )r   r   numpyr   rJ   pandasr   r   r   r   pandas._testing_testingr   pandas.corer   r
   r   r#   r!   <module>r      s/          m1 m1r#   