
    dlM                     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 Z G d d          ZdS )    N)	DataFrameIndex
RangeIndexSeriesc                    | t           u r1t          t          j        t          |                    |          }nJt	          t          j                            t          |          t          |                    ||          }|S )Nindex)r	   columns)r   nparangelenr   randomrandn)klassr	   objs      ]/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/indexing/test_floats.pygen_objr      sm    RYs5zz**%888IOOCJJE

335%
 
 
 J    c            
       T   e Zd Zd Zej                            dej        ej	        ej
        ej        ej        g          d             Zej                            dej        ej	        ej
        ej        ej        g          d             Zd Zej                            dej        ej        g          d             Zej                            dej        ej        g          d             Zd Zej                            dej        ej
        ej        ej        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j        ej        g          d             Zej                            d	 ed
d           edd           ed
d          g          ej                            dej        ej        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'' 	2}W-HH 2#=G4#=1
vx00000r   
index_funcc                     |d          }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iss2s          r   test_scalar_non_numericz)TestFloatIndexers.test_scalar_non_numeric(   sU    JqMMOQ'' ]87333 	 	JqMM#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !||||VVXX 

2s##"'"+%%%%%%26!!"'!*$$$$$$bgaj((((bgbk))))))s   AAAc                     |d          }t          t          j        t          |                    |          }|d          t	          j        t          d          5  |d          d d d            d S # 1 swxY w Y   d S )Nr%   r      r&   r'   r)   )r   r   r   r   r,   r-   r.   )r   r#   r5   r6   s       r   'test_scalar_non_numeric_series_fallbackz9TestFloatIndexers.test_scalar_non_numeric_series_fallbackL   s     JqMM29SVV$$A...	!]87333 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	A55A9<A9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r|d         }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:   )abcr   )r?   r@         ?z^1.0$r'         ?z^1\.0$r@   r>   r=   rB   r:   )r   r,   r-   r.   r   r2   )r   r4   r7   s3r   r!   s         r   test_scalar_with_mixedz(TestFloatIndexers.test_scalar_with_mixed^   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##UFHX%%%%]89555 	  	 JrNN3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  B$!!!!!!sH   A$$A(+A(
B((B,/B,)DDDE++E/2E/c                 f   |t           j        u} |d          }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 )Nr%   r)   r:   c                     | |k    sJ d S )N )xys     r   comparez6TestFloatIndexers.test_scalar_integer.<locals>.compare   s    Avvvvvvr   d   )r	   nameg      Y@)
r   r2   r   r"   r   r   assert_series_equalranger   r/   )r   r#   r3   r4   r    r5   r   r   rK   r!   r7   s              r   test_scalar_integerz%TestFloatIndexers.test_scalar_integer   sC   BF*
 JqMM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                 H     |d          }t          ||          }d|v sJ d S )Nr%   r)   )r   )r   r#   r3   r	   r   s        r   "test_scalar_integer_contains_floatz4TestFloatIndexers.test_scalar_integer_contains_float   s3     
1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      @r:   z^3\.5$r'         @r)   F)r   r   r   r   r   r2   r0   r"   r/   r,   r-   r.   r   )
r   r3   r	   r6   r   idxrr    r   r7   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	idxr)      r:         @c                     |d          }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 )	Nr%   z!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)r'   zBslice indices must be integers or None or have an __index__ methodr   )r   r   r   type__name__r,   r-   	TypeError)r   r#   rX   r3   indexer_slir	   r6   msgs           r   test_slice_non_numericz(TestFloatIndexers.test_slice_non_numeric   s    
1OU++ "'!!E{{+   C'E{{+' ' '  ]9C000 	  	 KNN3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  "'!!VC]9C000 	$ 	$"#KKNN3	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s$   6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%   dtypeFr*   Tr   r)   rY   r:   rZ   r   i   g      g      @r]   z, with these indexers \[-6\.0\] of type floatr'         @r>   rU   z/ with these indexers \[(2|3)\.5\] of type float)r   r   r   int64r   r   rO   slicer2   r"   r^   r_   r,   r-   r`   )
r   r	   oobr6   rX   r   r   rb   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>   rg   r   rY   z)cannot do (slice|positional) indexing on z/ with these indexers \[(2|4)\.0\] of type floatr'   N)
r   rO   r   r   rN   r   r_   r,   r-   r`   )r   rX   r6   r   r!   r   rb   s          r    test_integer_positional_indexingz2TestFloatIndexers.test_integer_positional_indexingC  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           	          |d          }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=   r   rC   Fr]   z/ with these indexers \[(0|1)\.0\] of type floatr'   ir*   g      $      $@Tz- with these indexers \[-10\.0\] of type floatg      ?rB   z+ with these indexers \[0\.5\] of type float)r   r   r   r   rj   r2   r"   r^   r_   r,   r-   r`   )	r   r#   r	   r6   rX   r   r   rb   rm   s	            r    test_slice_integer_frame_getitemz2TestFloatIndexers.test_slice_integer_frame_getitemY  sS    
1biooa++5999 #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   	C))C-	0C-	>F!!F%(F%(	I==J	J	c                 J    |d          }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   r]   r\   r'   )r   r   r   r   r/   r2   valuesravelallr^   r_   r,   r-   r`   )r   rX   r#   r	   r6   scr   rb   s           r   2test_float_slice_getitem_with_integer_index_raiseszDTestFloatIndexers.test_float_slice_getitem_with_integer_index_raises  s    
1biooa++5999 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 )NrT   g?r:   rY   r   )r   r   r   r   r   r   r^   r   assert_equalr/   rw   rx   ry   )	r   rX   r3   r4   r	   r6   r!   r   r7   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)rB   r>   r:   g      @r%   r%   r   r:   r>   )r   r   rO   r2   r   )r   r	   r6   s      r   test_floating_index_doc_examplez1TestFloatIndexers.test_floating_index_doc_example  si    )))**5885)))tqyyyyuQx1}}}}vayA~~~~~~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            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         ||          |         |           ' ||          d	d         } ||          dd         } ||          dd         } ||          dd         }	t	          j        ||           t	          j        ||           t	          j        ||	           t          dd	gddg          } ||          d	d         }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%   rh   )r	   rf   rC   r)   r=   r   rT   r>   z^4$r'   rY   r   rs   re   float64ro   g @)rs   r%   r*   )r   r>   rY   znot in index)g?r%   r*   )r   r=   r>   )r   r   r   ri   r   rN   r,   r-   r.   r   r   arrayr   )
r   r4   r6   r   r!   	fancy_idx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 *Q--!$*Q--C(*Q--A&*Q--A&
w000
w000
w0001a&c
333Aqs#
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#'?'?'?@@@@@s6   C))C-0C-"LL	L(MMM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     "@r=   g     S@r>   g     8@r:   rs   rY   g     w@r%   rg   g     p@      	   r*   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     *@?   rt   @   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   rL   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                    re   )r   value_countsr	   rf   str)r   float_numpy_dtyperf   serr6   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)r_   
__module____qualname__r"   r,   markparametrizer   makeStringIndexmakeCategoricalIndexmakeDateIndexmakeTimedeltaIndexmakePeriodIndexr8   r;   rE   makeIntIndexmakeRangeIndexrP   rR   rW   rj   rc   rn   rq   ru   r{   r~   r   r   r  rH   r   r   r   r      s       1 1 1  [#!	
	 	* *	 	*4 [#!	
	 	 	 	 "  "  "D [\BOR=N+OPP"" "" QP""H [\BOR=N+OPP  QP!( !( !(F [!		
  [UUU3]]EE!SMM55c??$STT$ $ UT $@E E EN [UUU1c]]EE#qMM55c??$STT  UT* [\BOR=N+OPP3 3 QP3j [UUU3]]EE!SMM55c??$STT[\BOR=N+OPP  QP UT0 [UUU3]]EE!SMM55c??$STT# # UT#$  ?A ?A ?AB_ _ _ _ _r   r   )numpyr   r,   pandasr   r   r   r   pandas._testing_testingr   r   r   rH   r   r   <module>r     s                           L
 L
 L
 L
 L
 L
 L
 L
 L
 L
r   