
    Owg{P                     ^    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      X/var/www/horilla/myenv/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        |            |      }d}t	        j
                  t        |      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   ;Series.__getitem__ treating keys as positions is deprecatedr0      r/   r2   )
r   r   r   r   r   assert_produces_warningFutureWarningr5   r6   r7   )r!   r   r>   msgs       r   'test_scalar_non_numeric_series_fallbackz9TestFloatIndexers.test_scalar_non_numeric_series_fallbackO   s}     299SZ(6K''SA 	aD	]]873 	cF	 		 		 	s   A?0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r4d}t	        j                  t        |      5  |d   }d d d        d
}||k(  sJ 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   {xY w# 1 sw Y   OxY w)N)   r   rC   )abcr   )rJ   rK         ?z^1.0$r0         ?z^1\.0$rK   r   rB   rI   rM   rC   )r   r5   r6   r7   r   r;   rD   rE   )r!   r=   r?   s3r"   r&   rF   s          r   test_scalar_with_mixedz(TestFloatIndexers.test_scalar_with_mixedc   sv   I_5I_5 ]]873 	 rN3	  ]]895 	 rN3	  B$!!! ]]873 	 rN3	  RVV#OC++ME AHX%%%]]895 	 rN3	  B$!!!9	  	 	  	 	  	  
	  	 s;   E-E0E'3E3%E?EE$'E03E<?F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"   rV   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   rd   r<   indexer_slir>   rF   s          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   re   rC   rf   r   i   g      g      @ri   z, with these indexers \[-6\.0\] of type floatr0         @r   ra   z/ with these indexers \[(2|3)\.5\] of type float)r   r   r   int64r   r   rZ   slicer;   r'   rj   rk   r5   r6   rl   )
r!   r   oobr>   rd   r"   r$   rF   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   rp   r   re   z)cannot do (slice|positional) indexing on z/ with these indexers \[(2|4)\.0\] of type floatr0   N)
r   rZ   r   r   rY   r   rk   r5   r6   rl   )r!   rd   r>   r"   r&   r   rF   s          r    test_integer_positional_indexingz2TestFloatIndexers.test_integer_positional_indexingL  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           rI   r   rN   Fri   z/ with these indexers \[(0|1)\.0\] of type floatr0   ir3   g      $      $@Tz- with these indexers \[-10\.0\] of type floatg      ?rM   z+ with these indexers \[0\.5\] of type float)r   r   r   r   r   rs   r;   r'   rj   rk   r5   r6   rl   )r!   r   r>   rd   r"   r$   rF   rv   s           r    test_slice_integer_frame_getitemz2TestFloatIndexers.test_slice_integer_frame_getitemb  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   ri   rh   r0   )r   r   r   r   r   r8   r;   valuesravelallrj   rk   r5   r6   rl   )r!   rd   r   r>   scr"   rF   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   re   r   )r   r   r   r   r   r   rj   r   assert_equalr8   r   r   r   )	r!   rd   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)rM   r   rC   g      @r,   r,   r   rC   r   )r   r   rZ   r;   r   )r!   r   r>   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
                   ||      |   |       # |t        j                  u rt        nd }d}t	        j                  ||      5   ||      d	d }d d d         ||      dd }	 ||      dd }
 ||      dd }t	        j
                  |	       t	        j
                  ||
       t	        j
                  ||       t        dd	gddg      }t	        j                  ||      5   ||      d	d }d d d        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   2xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr,   rq   )r   r+   rN   r2   rI   r   r`   r   z^4$r0   re   r   r}   r*   float64z3The behavior of obj\[i:j\] with a float-dtype indexrx   g @)r}   r,   r3   )r   r   re   znot in index)g?r,   r3   )r   rI   r   )r   r   r   rr   r   rY   r5   r6   r7   r   r   arrayr9   rE   rD   r   )r!   r=   r>   r"   r&   	fancy_idxwarnrF   result1result2result3result4s               r   test_floating_miscz$TestFloatIndexers.test_floating_misc  sx    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 !+bjj 8}dD ''C8 	) mAa(G	)Q-C(Q-A&Q-A&
w0
w0
w01a&c
3''C8 	(]1Q'F	( 	vx0 Q--&&#
w0]]8>: 	(qM,'	( ]]8>: 	%qM)$	% AQx(
vvq!fS#J'GHAu%
vvqc#'?@_	 	"	) 	)	( 	(	( 	(	% 	%s<   4N ?NNN'N3 N
NN$'N03N<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     "@rI   g     S@r   g     8@rC   r}   re   g     w@r,   rp   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   rW   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)!rk   
__module____qualname__r'   r5   markparametrizer   listr   r	   r   r@   rG   rP   r   r   rr   r   r\   r^   rc   objectrs   rn   rw   rz   r   r   r   r   r   r  rS   r   r   r   r      sJ   1 [[$w- $w-z2|Q/GQ/q1	
	*	*2 [[$w- $w-z2|Q/GQ/q1	
		""H [[%			!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#$DAL_r   r   )numpyr   r5   pandasr   r   r   r   r   r   r	   pandas._testing_testingr   r   r   rS   r   r   <module>r%     s0        	U
 U
r   