
    .iM                     ^    d dl Zd dlZd dlmZmZmZmZmZm	Z	m
Z
 d dlmZ d Z G d d      Zy)    N)	DataFrameIndex
RangeIndexSeries
date_rangeperiod_rangetimedelta_rangec                    | t         u r+t        t        j                  t        |            |      }|S t	        t        j
                  j                  d      j                  t        |      t        |      f      ||      }|S )Nindex   )r   columns)r   nparangelenr   randomdefault_rngstandard_normal)klassr   objs      _/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/indexing/test_floats.pygen_objr      sl    RYYs5z*%8 J II!!!$44c%j#e*5MN

 J    c                   V   e Zd Zd Zej
                  j                  d e ed             e ed      d       e	dd       e
d	d       edd      g      d
        Zej
                  j                  d e ed             e ed      d       e	dd       e
d	d       edd      g      d        Zd Zej
                  j                  d e ej                   d      ej"                         ed      g      d        Zej
                  j                  d e ej                   d      ej"                         ed      g      d        Zd Zej
                  j                  d e ed      e       e	dd       e
d	d       edd      g      ej
                  j                  d edd       edd       edd      g      d               Zd Zej
                  j                  d edd       edd       edd      g      d        Zej
                  j                  d e ej                   d      ej"                         ed      g      d        Zej
                  j                  d edd       edd       edd      g      ej
                  j                  d e ej                   d      ej"                         ed      g      d               Zej
                  j                  d edd       edd       edd      g      d        Zd Zd Zd Z y )!TestFloatIndexersc                     t        |t              r|j                  |   }n%|r|j                  dd|f   }n|j                  |   }t        j                  ||       y)zw
        comparator for results
        we need to take care if we are indexing on a
        Series or a frame
        N)
isinstancer   iloctmassert_almost_equal)selfresultoriginalindexergetitemexpecteds         r   checkzTestFloatIndexers.check   sO     h'}}W-H}}QZ0H}}W-H
vx0r   r   abcdecategorydtypez
2020-01-01   )periodsz1 dayc                    t        ||      }t        j                  t        d      5   ||      d    d d d        d|vsJ |j	                         }d ||      d<   |t
        j                  u rd|j                  d   v sJ y |t
        j                  u rd|j                  d   v sJ y d|j                  d   vsJ d|j                  d   vsJ y # 1 sw Y   xY w)N^3.0$match      @
   r   )	r   pytestraisesKeyErrorcopyr   setitemaxesloc)r!   r   frame_or_series
indexer_slss2s         r   test_scalar_non_numericz)TestFloatIndexers.test_scalar_non_numeric,   s     OU+ ]]873 	qM#	 !||VVX 
2s#"''"+%%%266!"''!*$$$bggaj(((bggbk)))	 	s   CCc                 *   t        t        j                  t        |            |      }t	        j
                  t        d      5  |d    d d d        t	        j
                  t        d      5  |d    d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)Nr   3r0      r/   r2   )r   r   r   r   r5   r6   r7   r!   r   r>   s      r   'test_scalar_non_numeric_series_fallbackz9TestFloatIndexers.test_scalar_non_numeric_series_fallbackO   sv     299SZ(6]]83/ 	aD	]]873 	cF	 		 		 	s   A=.B	=B	Bc                    t        g dg d      }t        g dg d      }t        j                  t        d      5   ||      d    d d d        t        j                  t        d      5   ||      d    d d d         ||      d	   }d
}||k(  sJ t        j                  t        d      5   ||      d    d d d        |t        j
                  ur)t        j                  t        d      5  |d    d d d        t        j                  t        d      5   ||      d    d d d         ||      d   }d}||k(  sJ 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   qxY w# 1 sw Y   NxY w)N)   r   rC   )abcr   )rH   rI         ?z^1.0$r0         ?z^1\.0$rI   r   z^1$rG   rK   rC   )r   r5   r6   r7   r   r;   )r!   r=   r?   s3r"   r&   s         r   test_scalar_with_mixedz(TestFloatIndexers.test_scalar_with_mixedc   s\   I_5I_5 ]]873 	 rN3	  ]]895 	 rN3	  B$!!! ]]873 	 rN3	  RVV#xu5 1 ]]895 	 rN3	  B$!!!3	  	 	  	 	  	 
 	  	 s;   E-E0E1E'E3EEE$'E03E<c                    |t         j                  u}|}t        ||      } ||      d   }| j                  ||d|       t	        |t
              rd }d}	nSt         j                  }|r!t        dt        t        |            d      }	n t        dt        t        |            d      }	|j                         }
d ||
      d<    ||
      d   } |||	        ||
      d   } |||	       y )Nr2   rC   c                     | |k(  sJ y )N )xys     r   comparez6TestFloatIndexers.test_scalar_integer.<locals>.compare   s    Avvr   d   )r   nameg      Y@)
r   r;   r   r'   r   r   assert_series_equalranger   r8   )r!   r   r<   r=   r%   ir   r"   rT   r&   r?   s              r   test_scalar_integerz%TestFloatIndexers.test_scalar_integer   s     BFF*
 oq) C%

637+c6" H,,G!#U3s8_1E!%uSXQGXXZ!
2sB$!B"!r   c                 (    t        ||      }d|v sJ y )Nr2   )r   )r!   r   r<   r   s       r   "test_scalar_integer_contains_floatz4TestFloatIndexers.test_scalar_integer_contains_float   s     ou- czzr   c                    t        t        j                  d            }t        ||      }|d   }t        j
                  t        j                  fD ]  }|t        j
                  u} ||      |   }| j                  ||d|       |j                         } ||      |   }| j                  ||d|       t        j                  t        d      5   ||      d    d d d         d|v sJ |j                  d   }	|j                         }|	|j                  d<   |j                  d   }| j                  ||dd       y # 1 sw Y   xY w)N      @rC   z^3\.5$r0         @r2   F)r   r   r   r   r   r;   r9   r'   r8   r5   r6   r7   r   )
r!   r<   r   r>   r$   idxrr%   r"   r?   r&   s
             r   test_scalar_floatz#TestFloatIndexers.test_scalar_float   s,   biin%OU+ (VVRZZ( 	D"&&(G !WW%FJJvq!W- B"Xg&FJJvq!W- xy9 Q 	$ axx 66!9VVX


61a' s   D<<E	idxr2      rC         @c                    t        ||      }|t        j                  u rdt        |      j                   d}ndt        |      j                   d}t        j                  t        |      5   ||      |    d d d        |t        j                  u rd}t        j                  t        |      5  d ||      |<   d d d        y # 1 sw Y   MxY w# 1 sw Y   y xY w)Nz!cannot do positional indexing on / with these indexers \[(3|4)\.0\] of type floatcannot do slice indexing on z8 with these indexers \[(3|4)(\.0)?\] of type (float|int)r0   zBslice indices must be integers or None or have an __index__ methodr   )r   r   r   type__name__r5   r6   	TypeError)r!   r   rb   r<   indexer_slir>   msgs          r   test_slice_non_numericz(TestFloatIndexers.test_slice_non_numeric   s     OU+ "''!E{++, - E{++, -''  ]]9C0 	 N3	  "''!VC]]9C0 	$"#KN3	$ 	$	  	 	$ 	$s   -C0CCCc                    t        t        j                  dt        j                              dft	        d      dft        t        j                  dt        j                        dz         dffD ]  \  }}t        t        d      |      }t        dd      t        d	d
      t        dd
      fD ]@  }|j                  |   }|rt        dd      }nt        d	d      }| j                  |||d       B t        dd      t        dd      fD ]@  }|j                  |   }|rt        dd      }nt        dd      }| j                  |||d       B dt        |      j                   d}t        j                  t        |      5  |t        dd          d d d        t        dd      t        d	d      ft        dd      t        dd      ft        dd      t        d	d      ffD ]{  \  }}|j                  |   }|rt        dd      }	n|}	| j                  |||	d       dt        |      j                   d}t        j                  t        |      5  ||    d d d        }  y # 1 sw Y   xY w# 1 sw Y   xY w)Nr,   r*   Fr3   Tr   r2   rc   rC   rd   r   i   g      g      @rg   z, with these indexers \[-6\.0\] of type floatr0         @r   r_   z/ with these indexers \[(2|3)\.5\] of type float)r   r   r   int64r   r   rX   slicer;   r'   rh   ri   r5   r6   rj   )
r!   r   oobr>   rb   r"   r$   rl   res1ress
             r   test_slice_integerz$TestFloatIndexers.test_slice_integer  sm    299Qbhh/0%8]E"299Qbhh/"45t<
 @	JE3 uQxu-A c1uQ}eCoF 
6s
 #AqkG#AqkG

61gu5
6 b!eD#&67 
6s
 #AqkG#BlG

61gu5
6E{++, - 
 y4 $%c"#$
 sAa,q#a,sC%1+. 	T
 s1+CC

61c51;//0 1!! 
 ]]9C8 cF 'Y@	P$ $. s   I#I/#I,	/I8r          @c                    t        t        dd      t        dd            }|dd }|j                  dd }t        j                  ||       t
        }d|j                   d}t        j                  t        |      5  ||    ddd       t        j                  t        |      5  |j                  |    ddd       y# 1 sw Y   =xY w# 1 sw Y   yxY w)	z]make sure that we are raising on positional indexing
        w.r.t. an integer index
        r   ro   r   rc   z)cannot do (slice|positional) indexing on z/ with these indexers \[(2|4)\.0\] of type floatr0   N)
r   rX   r   r   rW   r   ri   r5   r6   rj   )r!   rb   r>   r"   r&   r   rl   s          r    test_integer_positional_indexingz2TestFloatIndexers.test_integer_positional_indexingI  s    
 5A;eAqk21Q66!A;
vx0>>" # 	
 ]]9C0 	cF	]]9C0 	FF3K	 		 		 	s   =B?&C?CCc           	         t        t        j                  j                  d      j	                  d      |      }t        dd      t        dd      t        dd      fD ]s  }|j                  |   }t        dd      }| j                  |||d       d	t        |      j                   d
}t        j                  t        |      5  ||    d d d        u t        dd      t        dd      fD ]/  }|j                  |   }| j                  ||t        dd      d       1 d	t        |      j                   d}t        j                  t        |      5  |t        dd          d d d        t        dd      t        dd      ft        dd      t        dd      ft        dd      t        dd      ffD ]j  \  }}|j                  |   }| j                  |||d       d	t        |      j                   d}t        j                  t        |      5  ||    d d d        l y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr   r,   r   r           rG   r   rL   Frg   z/ with these indexers \[(0|1)\.0\] of type floatr0   ir3   g      $      $@Tz- with these indexers \[-10\.0\] of type floatg      ?rK   z+ with these indexers \[0\.5\] of type float)r   r   r   r   r   rr   r;   r'   rh   ri   r5   r6   rj   )r!   r   r>   rb   r"   r$   rl   ru   s           r    test_slice_integer_frame_getitemz2TestFloatIndexers.test_slice_integer_frame_getitem_  s<   
 bii++A.>>vFeT #qM5C=%S/B 	CUU3ZFAqkGJJvq'51E{++, - 
 y4 # 	 #rNE%$67 	8CUU3ZFJJvq%R.$7	8;''( ) 	
 ]]9C0 	"eE4 !	"
 3]E!QK(1c]E!QK(3_eAqk*
 	HC
 UU3ZFJJvq#u-E{++, - 
 y4 # 	% 	" 	"$ s$   HH+H7H(	+H47I 	c                 2   t        t        j                  j                  d      j	                  d      |      }|j                         }d|j                  |<   |j                  |   j                  j                         }|dk(  j                         sJ dt        |      j                   d}t        j                  t        |      5  d||<   d d d        t        j                  t        |      5  ||    d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)Nr   r{   r   r   rg   rf   r0   )r   r   r   r   r   r8   r;   valuesravelallrh   ri   r5   r6   rj   )r!   rb   r   r>   scr"   rl   s          r   2test_float_slice_getitem_with_integer_index_raiseszDTestFloatIndexers.test_float_slice_getitem_with_integer_index_raises  s     bii++A.>>vFeT VVXs##))+!  """;''( ) 	
 ]]9C0 	AcF	 ]]9C0 	cF	 		 		 	s   	D2DD
Dc                    t        t        j                  d            dz   }t        ||      }|j                  dd } ||      |   }t        |t        |            sJ t        j                  ||       |j                         }d ||      |<    ||      |   j                  j                         }|dk(  j                         sJ y )Nr^   g?rC   rc   r   )r   r   r   r   r   r   rh   r   assert_equalr8   r   r   r   )	r!   rb   r<   r=   r   r>   r&   r"   r?   s	            r   test_slice_floatz"TestFloatIndexers.test_slice_float  s     biin%+OU+66!A; As#&$q'***
) VVX
2sB$++113!  """r   c                     t        g d      }t        t        d      |      }|d   dk(  sJ |j                  d   dk(  sJ |j                  d   dk(  sJ y )N)rK   r   rC   g      @r,   r,   r   rC   r   )r   r   rX   r;   r   rD   s      r   test_floating_index_doc_examplez1TestFloatIndexers.test_floating_index_doc_example  sU    )*585)tqyyuuQx1}}vvayA~~r   c                    t        t        j                  d      t        j                  d      dz  t        j                        } ||      dd }t        ddg      }t	        j
                  ||        ||      d   }|d	k(  sJ  ||      d   }|d	k(  sJ t        j                  t        d
      5   ||      d    d d d        t        d	dgt        ddgt        j                              }ddgt        j                  ddg      fD ]!  }t	        j
                   ||      |   |       # t        d	dgt        ddgd            }ddgt        j                  ddg      fD ]!  }t	        j
                   ||      |   |       #  ||      dd } ||      dd } ||      dd }t	        j
                  ||       t	        j
                  ||        ||      g d   }	|j                  g d   }t	        j
                  |	|       t        j                  t        d      5   ||      g d    d d d        t        j                  t        d      5   ||      g d    d d d         ||      ddg   }t	        j
                  |t        dd	gddg              ||      dg   }t	        j
                  |t        dgdg             y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr,   rp   )r   r+   rL   r2   rG   r   r^   r   z^4$r0   rc   r   r|   r*   float64rw   g @)r|   r,   r3   )r   r   rc   znot in index)g?r,   r3   )r   rG   r   )r   r   r   rq   r   rW   r5   r6   r7   r   r   arrayr   )
r!   r=   r>   r"   r&   	fancy_idxresult2result3result4result1s
             r   test_floating_miscz$TestFloatIndexers.test_floating_misc  s    299Q<ryy|c'9J As3'!C5)
vx0 As#{{Aq!{{
 ]]862 	qM!	
 1a&sCj

(KL*bhhSz&:; 	GI"":a=#;XF	G 1a&q!fI(FGa&"((Aq6"23 	GI"":a=#;XF	G Q-C(Q-A&Q-A&
w0
w0 Q--&&#
w0]]8>: 	(qM,'	( ]]8>: 	%qM)$	% AQx(
vvq!fS#J'GHAu%
vvqc#'?@G	 	2	( 	(	% 	%s$   4K(KK*KK'*K3c                    |}i ddddddddd	d
ddddddddddddddddddddddddi ddddddd dd!dd"d#d$dd%d&d'dd(d)d*dd+d,d-dd.dd/dd0d1d2di d3d4d5dd6d7d8dd9d:d;dd<dd=dd>d?d@ddAdBdCddDdEdFddGdHdIddJdKi dLddMdNdOdPdQdRdSddTdUdVddWdXdYddZdd[dd\d]d^d_d`dadbddcdddedi dfdgdhdPdidjdkddlddmddndodpddqdrdsddtdudvddwdxdydPdzdd{dd|d}i d~dddddddddddddddddddddddddddddddddi ddddddddddddddddddddddddddddddddddi ddddddddddddddddddddddddddddddddddddddddddddddddƜ}t        ||ǫ      }|j                         }|j                  j                  |k(  sJ t	        |       y )N   g     "@rG   g     S@r   g     8@rC   r|   rc   g     w@r,   ro   g     p@      	   r3   g     @      g      8@      g     @      g     @Y@      g    @            g     "@      g     {@      g    @      g     Ȇ@             g     \@!   "   g     @#   $   g     v@%   &   g     .@'   (   )   *   g     @+   ,   g     @-   .   g     @/   0   g     @1   2   g     @3   4   g     @5   g     Q@6   g     0@7   8   g     @t@9   :   g     @;   <   =   >   g     *@?   r}   @   g      E@A   B   g     @@C   D   g      V@E   F   g     @G   H   I   J   g    @K   L   g     u@M   N   g    @O   P   g     w@Q   R   S   T   g     r@U   V   g     x@W   g      @X   g     v@Y   Z   g    t@[   g      "@\   ]   ^   g     @_   `   g     ȏ@a   b   g     @c   rU   g     &@e   f   g     @g   h   i   j   k   l   m   n   o   p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~   g     @   g      6@   g     p@   i  g     h@i  i	  i  i  i
  g     @g     @g     8@g     `d@g     +@g     0@g     @)i  i  i  i  i  i  i                    r*   )r   value_countsr   r+   str)r!   float_numpy_dtyper+   serr>   r"   s         r   test_floatindex_slicing_bugz-TestFloatIndexers.test_floatindex_slicing_bug  s0   !V
V
tV
 vV
 s	V

 uV
 sV
 uV
 sV
 sV
 sV
 V
 V
 V
 V
 V
  !V
" #V
$ %V
& 'V
( )V
* +V
, -V
. /V
0 1V
2 3V
4 5V
6 7V
8 9V
: ;V
< =V
> ?V
@ AV
B CV
D EV
F GV
H IV
J KV
L MV
N OV
P QV
R SV
T UV
V WV
X YV
Z [V
\ ]V
^ _V
` aV
b cV
d eV
f gV
h iV
j kV
l mV
n oV
p qV
r sV
t uV
v wV
x yV
z {V
| }V
~ V
@ AV
B CV
D EV
F GV
H IV
J KV
L MV
N OV
P QV
R SV
T UV
V WV
X YV
Z [V
\ ]V
^ _V
` aV
b cV
d eV
f gV
h iV
j kV
l mV
n oV
p qV
r sV
t uV
v wV
x yV
z {V
| }V
~ V
@ AV
B CV
D EV
F GV
H IV
J KV
L MV
N OV
P QV
R SV
T UV
V WV
X YV
Z [V
\ ]V
^ _V
` aV
b cV
d eV
f gV
h iV
j kV
l mV
n oV
p qV
r sV
t uV
v wV
x yV
z {V
| }V
~ V
@ AV
B CV
D EV
F GV
H IV
J KV
L MV
N OV
P QV
R kV
r 3e$!||!!U***Fr   N)!ri   
__module____qualname__r'   r5   markparametrizer   listr   r	   r   r@   rE   rN   r   r   rq   r   rZ   r\   ra   objectrr   rm   rv   ry   r~   r   r   r   r   r  rQ   r   r   r   r      sI   1 [[$w- $w-z2|Q/GQ/q1	
	*	*2 [[$w- $w-z2|Q/GQ/q1	
		"B [[%			!BHH5z!}E""""H [[%			!BHH5z!}E!(F [[$w-v.|Q/GQ/q1		
 [[UU3]E!SM5c?$ST$ U$>EN [[UU1c]E#qM5c?$ST U* [[%			!BHH5z!}E11f [[UU3]E!SM5c?$ST[[%			!BHH5z!}E U, [[UU3]E!SM5c?$ST# U#$8At_r   r   )numpyr   r5   pandasr   r   r   r   r   r   r	   pandas._testing_testingr   r   r   rQ   r   r   <module>r#     s0        	F
 F
r   