
    bMh{P                     f    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dS )    N)	DataFrameIndex
RangeIndexSeries
date_rangeperiod_rangetimedelta_rangec                 6   | t           u r1t          t          j        t          |                    |          }n^t	          t          j                            d                              t          |          t          |          f          ||          }|S )Nindex   )r   columns)r   nparangelenr   randomdefault_rngstandard_normal)klassr   objs      a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/indexing/test_floats.pygen_objr      s    RYs5zz**%888I!!!$$44c%jj#e**5MNN
 
 

 J    c                   6   e Zd Zd Zej                            d e ed                     e ed          d           e	dd           e
d	d           edd          g          d
             Ze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                            d e ej        d          ej                   ed          g          d             Zej                            d e ej        d          ej                   ed          g          d             Zd Zej                            d e ed          e           e	dd           e
d	d           edd          g          ej                            d edd           edd           edd          g          d                         Zd Zej                            d edd           edd           edd          g          d             Zej                            d e ej        d          ej                   ed          g          d             Zej                            d edd           edd           edd          g          ej                            d e ej        d          ej                   ed          g          d                         Zej                            d edd           edd           edd          g          d             Zd Zd Zd Z d S )!TestFloatIndexersc                     t          |t                    r|j        |         }n!|r|j        dd|f         }n|j        |         }t          j        ||           dS )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   sg     h'' 	.}W-HH 	.}QQQZ0HH}W-H
vx00000r   r   abcdecategorydtypez
2020-01-01   )periodsz1 dayc                    t          ||          }t          j        t          d          5   ||          d          d d d            n# 1 swxY w Y   d|vsJ |                                }d ||          d<   |t
          j        u rd|j        d         v sJ d S |t
          j        u rd|j        d         v sJ d S d|j        d         vsJ d|j        d         vsJ d S )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,   sH    OU++ ]87333 	 	JqMM#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !||||VVXX 

2s##"'"+%%%%%%26!!"'!*$$$$$$bgaj((((bgbk))))))s   A

AAc                 X   t          t          j        t          |                    |          }d}t	          j        t          |          5  |d          d d d            n# 1 swxY w Y   t          j        t          d          5  |d          d d d            d S # 1 swxY w Y   d S )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!    29SZZ((666K'SAAA 	 	aDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]87333 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   	A##A'*A'		BB#&B#c                    t          g dg d          }t          g dg d          }t          j        t          d          5   ||          d          d d d            n# 1 swxY w Y   t          j        t          d          5   ||          d          d d d            n# 1 swxY w Y    ||          d	         }d
}||k    sJ t          j        t          d          5   ||          d          d d d            n# 1 swxY w Y   |t          j        urGd}t	          j        t          |          5  |d         }d d d            n# 1 swxY w Y   d
}||k    sJ t          j        t          d          5   ||          d          d d d            n# 1 swxY w Y    ||          d         }d}||k    sJ d S )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   s(   III___555III___555 ]87333 	  	 JrNN3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  ]89555 	  	 JrNN3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  B$!!!! ]87333 	  	 JrNN3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  RV##OC+MEEE  A              HX%%%%]89555 	  	 JrNN3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  B$!!!!!!sZ   A$$A(+A(
B((B,/B,)DDD=	EEEF  F$'F$c                 T   |t           j        u}|}t          ||          } ||          d         }|                     ||d|           t	          |t
                    rd }d}	ngt           j        }|r-t          dt          t          |                    d          }	n,t          dt          t          |                    d          }	|	                                }
d ||
          d<    ||
          d         } |||	            ||
          d         } |||	           d S )Nr2   rC   c                     | |k    sJ d S )N )xys     r   comparez6TestFloatIndexers.test_scalar_integer.<locals>.compare   s    Avvvvvvr   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=    BF*
 oq)) C%

637+++c6"" 	H   HH,G H!#U3s88__1EEE!%uSXXQGGGXXZZ!

2sB$!!!B"!!!!!r   c                 2    t          ||          }d|v sJ d S )Nr2   )r   )r!   r   r<   r   s       r   "test_scalar_integer_contains_floatz4TestFloatIndexers.test_scalar_integer_contains_float   s&     ou-- czzzzzzr   c                    t          t          j        d                    }t          ||          }|d         }t          j        t          j        fD ]}|t          j        u} ||          |         }|                     ||d|           |                                } ||          |         }|                     ||d|           t          j
        t          d          5   ||          d          d d d            n# 1 swxY w Y   d|v sJ |j        d         }	|                                }|	|j        d<   |j        d         }|                     ||dd           d S )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   binn%%OU++ (VRZ( 	 	D"&(G T!WWW%FJJvq!W--- BT"XXg&FJJvq!W--- xy999  Q               axxxx 6!9VVXX


61a'''''s   #DD	D	idxr2      rC         @c                    t          ||          }|t          j        u rdt          |          j         d}ndt          |          j         d}t          j        t          |          5   ||          |          d d d            n# 1 swxY w Y   |t          j        u rd}t          j        t          |          5  d ||          |<   d d d            d S # 1 swxY w Y   d S )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{{+   C'E{{+' ' '  ]9C000 	  	 KNN3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  "'!!VC]9C000 	$ 	$"#KKNN3	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s$   +B		BB?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}|j        |         }|rt          dd          }nt          d	d          }| 	                    |||d           Kt          dd          t          dd          fD ]J}|j        |         }|rt          dd          }nt          dd          }| 	                    |||d           Kdt          |          j         d}t          j        t          |          5  |t          dd                    d d d            n# 1 swxY w Y   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|}	| 	                    |||	d           dt          |          j         d}t          j        t          |          5  ||          d d d            n# 1 swxY w Y   ^d S )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    29Qbh///00%8]]E"29Qbh///"455t<
 @	 @	JE3 uQxxu---A c1uQ}}eCooF 
6 
6s
  *#AqkkGG#AqkkG

61gu5555 b!eD#&6&67 
6 
6s
  +#AqkkGG#BllG

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

61c5111!;;/! ! ! 
 ]9C888  cFF              'Y@	 @	s$   .GG	G	-	KK	K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           n# 1 swxY w Y   t          j        t          |          5  |j        |          ddd           dS # 1 swxY w Y   dS )	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  sq   
 5A;;eAqkk2221Q36!A#;
vx000>   	
 ]9C000 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	F3KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   		BB"%B"CC#&C#c           	      $   t          t          j                            d                              d          |          }t          dd          t          dd          t          dd          fD ]}|j        |         }t          dd          }|                     |||d           d	t          |          j	         d
}t          j        t          |          5  ||          d d d            n# 1 swxY w Y   t          dd          t          dd          fD ]5}|j        |         }|                     ||t          dd          d           6d	t          |          j	         d}t          j        t          |          5  |t          dd                    d d d            n# 1 swxY w Y   t          dd          t          dd          ft          dd          t          dd          ft          dd          t          dd          ffD ]}\  }}|j        |         }|                     |||d           d	t          |          j	         d}t          j        t          |          5  ||          d d d            n# 1 swxY w Y   ~d S )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  sT   
 bi++A..>>vFFeTTT #qMM5C==%S//B 	 	CU3ZFAqkkGJJvq'5111E{{+   
 y444  #               #rNNE%$6$67 	8 	8CU3ZFJJvq%R..$7777;;'   	
 ]9C000 	" 	"eE4  !!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"
 3]]E!QKK(1c]]E!QKK(3__eAqkk*
 	 	HC
 U3ZFJJvq#u---E{{+   
 y444  #              	 	s6   	C00C4	7C4	F((F,/F,/	JJ	J	c                 X   t          t          j                            d                              d          |          }|                                }d|j        |<   |j        |         j                                        }|dk    	                                sJ dt          |          j         d}t          j        t          |          5  d||<   d d d            n# 1 swxY w Y   t          j        t          |          5  ||          d d d            d S # 1 swxY w Y   d S )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    bi++A..>>vFFeTTT VVXXs#))++!  """"";;'   	
 ]9C000 	 	AcF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   C##C'*C'		DD#&D#c                    t          t          j        d                    dz   }t          ||          }|j        dd         } ||          |         }t          |t          |                    sJ t          j        ||           |	                                }d ||          |<    ||          |         j
                                        }|dk                                    sJ d S )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     binn%%+OU++6!A#; As#&$q''*****
))) VVXX

2sB$+113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 d S )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  si    )))**5885)))tqyyyyuQx1}}}}vayA~~~~~~r   c                 z   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            n# 1 swxY w Y   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            n# 1 swxY w Y    ||          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            n# 1 swxY w Y   t	          j        ||            ||          g d         }|j        g d         }	t	          j        ||	           t          j        t          d          5   ||          g d          d d d            n# 1 swxY w Y   t          j        t          d          5   ||          g d          d d d            n# 1 swxY w Y    ||          ddg         }t	          j        |t          dd	gddg                      ||          dg         }t	          j        |t          dgdg                     d S )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  s    29Q<<ry||c'9JJJ As3w'!C5)))
vx000 As#{{{{Aq!{{{{
 ]86222 	 	JqMM!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 1a&sCj
(K(K(KLLL*bhSz&:&:; 	G 	GI"::a==#;XFFFF1a&q!fI(F(F(FGGGa&"(Aq6"2"23 	G 	GI"::a==#;XFFFF *bj 8 8}}dD 'C888 	) 	) jmmAaC(G	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)*Q--C(*Q--A&*Q--A&
w000
w000
w0001a&c
333'C888 	( 	(Z]]1Q3'F	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	vx000 *Q---&#
w000]8>::: 	( 	(JqMM,,,''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( ]8>::: 	% 	%JqMM)))$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% AQx(
vvq!fS#J'G'G'GHHHAu%
vvqc#'?'?'?@@@@@sZ   C))C-0C-7HHHK%%K),K)M77M;>M;N==OO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        |k    sJ t	          |           d S )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  s   !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
. /V
0 1V
2 3V
4 5V
6 7V
8 9V
: ;V
< =V
> ?V
@ AV
B CV
D EV
 V
 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
 V
 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
 V
 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
 V
 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
 V
 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
 V
 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
 V
R kV
 V
 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      s       1 1 1 [E$$w--  E$$w--z222J|Q///OGQ///Lq111	
	 	* *	 	*2 [E$$w--  E$$w--z222J|Q///OGQ///Lq111	
	 	 	 	"" "" ""H [%%		!BH555zz!}}E "" "" ""H [%%		!BH555zz!}}E   !( !( !(F [E$$w--v...J|Q///OGQ///Lq111		
  [UUU3]]EE!SMM55c??$STT$ $ UT $>E E EN [UUU1c]]EE#qMM55c??$STT  UT* [%%		!BH555zz!}}E 1 1 1f [UUU3]]EE!SMM55c??$STT[%%		!BH555zz!}}E    UT, [UUU3]]EE!SMM55c??$STT# # UT#$  DA DA DAL_ _ _ _ _r   r   )numpyr   r5   pandasr   r   r   r   r   r   r	   pandas._testing_testingr   r   r   rS   r   r   <module>r%     s                               	 	 	U
 U
 U
 U
 U
 U
 U
 U
 U
 U
r   