a
    é´«j{P  ã                   @   sZ   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d„ ZG dd„ dƒZdS )é    N)Ú	DataFrameÚIndexÚ
RangeIndexÚSeriesÚ
date_rangeÚperiod_rangeÚtimedelta_rangec                 C   sL   | t u r t t t|ƒ¡|d�}n(ttj d¡ t|ƒt|ƒf¡||d�}|S )N©Úindexé   )r
   Úcolumns)r   ÚnpÚarangeÚlenr   ÚrandomÚdefault_rngÚstandard_normal)Úklassr
   Úobj© r   ú`/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/indexing/test_floats.pyÚgen_obj   s    ýr   c                   @   s~  e Zd Zdd„ Zej deedƒƒeedƒdd�e	ddd	�e
d
dd	�eddd	�g¡dd„ ƒZej deedƒƒeedƒdd�e	ddd	�e
d
dd	�eddd	�g¡dd„ ƒZdd„ Zej dee d¡ejd�edƒg¡dd„ ƒZej dee d¡ejd�edƒg¡dd„ ƒZdd„ Zej deedƒed�e	ddd	�e
d
dd	�eddd	�g¡ej deddƒeddƒeddƒg¡dd„ ƒƒZdd„ Zej ded dƒed!dƒed!dƒg¡d"d#„ ƒZej dee d¡ejd�edƒg¡d$d%„ ƒZej deddƒeddƒeddƒg¡ej dee d¡ejd�edƒg¡d&d'„ ƒƒZej deddƒeddƒeddƒg¡d(d)„ ƒZd*d+„ Zd,d-„ Zd.d/„ Z d0S )1ÚTestFloatIndexersc                 C   sH   t |tƒr|j| }n"|r.|jdd…|f }n
|j| }t ||¡ dS )zw
        comparator for results
        we need to take care if we are indexing on a
        Series or a frame
        N)Ú
isinstancer   ÚilocÚtmZassert_almost_equal)ÚselfÚresultÚoriginalÚindexerÚgetitemÚexpectedr   r   r   Úcheck   s    

zTestFloatIndexers.checkr
   ZabcdeÚcategory©Údtypez
2020-01-01é   )Zperiodsz1 dayc                 C   sÈ   t ||ƒ}tjtdd�� ||ƒd  W d   ƒ n1 s:0    Y  d|vsPJ ‚| ¡ }d||ƒd< |tju r‚d|jd v sÄJ ‚nB|tju r d|jd v sÄJ ‚n$d|jd vs²J ‚d|jd vsÄJ ‚d S )Nú^3.0$©Úmatchç      @é
   éÿÿÿÿr   )	r   ÚpytestÚraisesÚKeyErrorÚcopyr   ÚsetitemZaxesÚloc)r   r
   Úframe_or_seriesÚ
indexer_slÚsÚs2r   r   r   Útest_scalar_non_numeric,   s    
*

z)TestFloatIndexers.test_scalar_non_numericc                 C   sŠ   t t t|ƒ¡|d�}d}tjt|d�� |d  W d   ƒ n1 sF0    Y  tjt	dd�� |d  W d   ƒ n1 s|0    Y  d S )Nr	   ú;Series.__getitem__ treating keys as positions is deprecatedr(   é   r'   r*   )
r   r   r   r   r   Úassert_produces_warningÚFutureWarningr-   r.   r/   )r   r
   r5   Úmsgr   r   r   Ú'test_scalar_non_numeric_series_fallbackO   s    &z9TestFloatIndexers.test_scalar_non_numeric_series_fallbackc                 C   sª  t g d¢g d¢d�}t g d¢g d¢d�}tjtdd�� ||ƒd  W d   ƒ n1 sX0    Y  tjtdd�� ||ƒd  W d   ƒ n1 s’0    Y  ||ƒd	 }d
}||ks¸J ‚tjtdd�� ||ƒd  W d   ƒ n1 sè0    Y  |tju�rLd}tjt|d�� |d }W d   ƒ n1 �s00    Y  d
}||k�sLJ ‚tjtdd�� ||ƒd  W d   ƒ n1 �s~0    Y  ||ƒd }d}||k�s¦J ‚d S )N)é   r   r9   )ÚaÚbÚcr	   )r?   r@   ç      ø?z^1.0$r(   ç      ð?z^1\.0$r@   r   r8   r>   rB   r9   )r   r-   r.   r/   r   r2   r:   r;   )r   r4   r6   Zs3r   r!   r<   r   r   r   Útest_scalar_with_mixedc   s,    ***(,z(TestFloatIndexers.test_scalar_with_mixedc                 C   sÈ   |t ju}|}t||ƒ}||ƒd }|  ||d|¡ t|tƒrLdd„ }d}	n8t j}|rntdtt|ƒƒdd�}	ntdtt|ƒƒdd�}	| 	¡ }
d||
ƒd< ||
ƒd }|||	ƒ ||
ƒd }|||	ƒ d S )Nr*   r9   c                 S   s   | |ksJ ‚d S )Nr   )ÚxÚyr   r   r   Úcompareš   s    z6TestFloatIndexers.test_scalar_integer.<locals>.compareéd   )r
   Únameg      Y@)
r   r2   r   r"   r   r   Úassert_series_equalÚranger   r0   )r   r
   r3   r4   r    Úir   r   rG   r!   r6   r   r   r   Útest_scalar_integer‡   s$    



z%TestFloatIndexers.test_scalar_integerc                 C   s   t ||ƒ}d|v sJ ‚d S )Nr*   )r   )r   r
   r3   r   r   r   r   Ú"test_scalar_integer_contains_float®   s    
z4TestFloatIndexers.test_scalar_integer_contains_floatc           
   	   C   sü   t t d¡ƒ}t||ƒ}|d }tjtjfD ]ˆ}|tju}||ƒ| }|  ||d|¡ | ¡ }||ƒ| }|  ||d|¡ t	j
tdd�� ||ƒd  W d   ƒ q,1 sª0    Y  q,d|v sÂJ ‚|jd }	| ¡ }|	|jd< |jd }|  ||dd¡ d S )Nç      @r9   z^3\.5$r(   ç      @r*   F)r   r   r   r   r   r2   r1   r"   r0   r-   r.   r/   r   )
r   r3   r
   r5   r   Zidxrr    r   r6   r!   r   r   r   Útest_scalar_float¹   s$    

,


z#TestFloatIndexers.test_scalar_floatÚidxr*   é   r9   ç      @c                 C   sÀ   t ||ƒ}|tju r(dt|ƒj› d�}ndt|ƒj› d�}tjt|d�� ||ƒ|  W d   ƒ n1 sj0    Y  |tju r‚d}tjt|d�� d||ƒ|< W d   ƒ n1 s²0    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)r(   zBslice indices must be integers or None or have an __index__ methodr   )r   r   r   ÚtypeÚ__name__r-   r.   Ú	TypeError)r   r
   rR   r3   Zindexer_slir5   r<   r   r   r   Útest_slice_non_numericÜ   s     

ÿÿÿÿ*
z(TestFloatIndexers.test_slice_non_numericc           
   
   C   s  t tjdtjd�ƒdftdƒdft tjdtjd�d ƒdffD �]Ì\}}ttdƒ|d�}tddƒtd	d
ƒtdd
ƒfD ]8}|j| }|r’tddƒ}n
td	dƒ}|  	|||d¡ qttddƒtddƒfD ]8}|j| }|ràtddƒ}n
tddƒ}|  	|||d¡ qÂdt
|ƒj› d�}tjt|d�� |tddƒ  W d   ƒ n1 �sB0    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|d�� ||  W d   ƒ n1 �sþ0    Y  �q†q>d S )Nr&   r$   Fr+   Tr	   r*   rS   r9   rT   r   iúÿÿÿé   g      Àg      @rV   z, with these indexers \[-6\.0\] of type floatr(   ç      @r   rP   z/ with these indexers \[(2|3)\.5\] of type float)r   r   r   Úint64r   r   rK   Úslicer2   r"   rW   rX   r-   r.   rY   )
r   r
   Zoobr5   rR   r   r   r<   Zres1Úresr   r   r   Útest_slice_integer  sL    
ý 



ÿÿ.ý
ÿÿz$TestFloatIndexers.test_slice_integerr   ç       @c                 C   sÂ   t tddƒtddƒd�}|dd… }|jdd… }t ||¡ t}d|j› d�}tjt	|d�� ||  W d  ƒ n1 s|0    Y  tjt	|d�� |j|  W d  ƒ n1 s´0    Y  dS )	z]make sure that we are raising on positional indexing
        w.r.t. an integer index
        r   r[   r	   rS   z)cannot do (slice|positional) indexing on z/ with these indexers \[(2|4)\.0\] of type floatr(   N)
r   rK   r   r   rJ   r   rX   r-   r.   rY   )r   rR   r5   r   r!   r   r<   r   r   r   Ú test_integer_positional_indexingL  s    ÿÿ&z2TestFloatIndexers.test_integer_positional_indexingc              	   C   sà  t tj d¡ d¡|d�}tddƒtddƒtddƒfD ]p}|j| }tddƒ}|  |||d¡ d	t|ƒj	› d
�}t
jt|d�� ||  W d   ƒ q61 sœ0    Y  q6tddƒtddƒfD ]$}|j| }|  ||tddƒd¡ q¼d	t|ƒj	› d�}t
jt|d�� |tddƒ  W d   ƒ n1 �s(0    Y  tddƒtddƒftddƒtddƒftddƒtddƒffD ]n\}}|j| }|  |||d¡ d	t|ƒj	› d�}t
jt|d�� ||  W d   ƒ n1 �sÎ0    Y  �qld S )Nr   ©r&   r   r	   ç        r>   r   rC   FrV   z/ with these indexers \[(0|1)\.0\] of type floatr(   iöÿÿÿr+   g      $Àç      $@Tz- with these indexers \[-10\.0\] of type floatg      à?rB   z+ with these indexers \[0\.5\] of type float)r   r   r   r   r   r^   r2   r"   rW   rX   r-   r.   rY   )r   r
   r5   rR   r   r   r<   r_   r   r   r   Ú test_slice_integer_frame_getitemb  s@     

ÿÿ(
ÿÿ.ý
ÿÿz2TestFloatIndexers.test_slice_integer_frame_getitemc                 C   sÎ   t tj d¡ d¡|d�}| ¡ }d|j|< |j| j ¡ }|dk 	¡ sLJ ‚dt
|ƒj› d�}tjt|d�� d||< W d   ƒ n1 sŠ0    Y  tjt|d�� ||  W d   ƒ n1 sÀ0    Y  d S )Nr   rc   r	   r   rV   rU   r(   )r   r   r   r   r   r0   r2   ÚvaluesÚravelÚallrW   rX   r-   r.   rY   )r   rR   r
   r5   Úscr   r<   r   r   r   Ú2test_float_slice_getitem_with_integer_index_raises˜  s    
ÿÿ&zDTestFloatIndexers.test_float_slice_getitem_with_integer_index_raisesc           	      C   sŽ   t t d¡ƒd }t||ƒ}|jdd… }||ƒ| }t|t|ƒƒsHJ ‚t ||¡ | 	¡ }d||ƒ|< ||ƒ| j
 ¡ }|dk ¡ sŠJ ‚d S )NrO   gš™™™™™¹?r9   rS   r   )r   r   r   r   r   r   rW   r   Zassert_equalr0   rg   rh   ri   )	r   rR   r3   r4   r
   r5   r!   r   r6   r   r   r   Útest_slice_float²  s    
z"TestFloatIndexers.test_slice_floatc                 C   sT   t g d¢ƒ}ttdƒ|d�}|d dks,J ‚|jd dks>J ‚|jd dksPJ ‚d S )N)rB   r   r9   g      @r&   r&   r	   r9   r   )r   r   rK   r2   r   )r   r
   r5   r   r   r   Útest_floating_index_doc_exampleÅ  s
    z1TestFloatIndexers.test_floating_index_doc_examplec                 C   s\  t t d¡t d¡d tjd�}||ƒdd… }t ddgd�}t ||¡ ||ƒd }|d	ksbJ ‚||ƒd }|d	kszJ ‚tjtd
d�� ||ƒd  W d   ƒ n1 sª0    Y  t d	dgt	ddgtj
d�d�}ddgt ddg¡fD ]}t ||ƒ| |¡ qèt d	dgt	ddgdd�d�}ddgt ddg¡fD ]}t ||ƒ| |¡ �q4|tju �r`tnd }d}tj||d��  ||ƒd	d… }W d   ƒ n1 �sž0    Y  ||ƒdd… }	||ƒdd… }
||ƒdd… }t ||	¡ t ||
¡ t ||¡ t dd	gddgd�}tj||d��  ||ƒd	d… }W d   ƒ n1 �sF0    Y  t ||¡ ||ƒg d¢ }|jg d¢ }	t ||	¡ tjtdd��  ||ƒg d¢  W d   ƒ n1 �s¼0    Y  tjtdd��  ||ƒg d¢  W d   ƒ n1 �sü0    Y  ||ƒddg }t |t dd	gddgd�¡ ||ƒdg }t |t dgdgd�¡ d S )Nr&   r\   )r
   r%   rC   r*   r>   r	   rO   r   z^4$r(   rS   r   rd   r$   Úfloat64z3The behavior of obj\[i:j\] with a float-dtype indexra   gÍÌÌÌÌÌ @)rd   r&   r+   )r   r   rS   znot in index)gš™™™™™ù?r&   r+   )r   r>   r   )r   r   r   r]   r   rJ   r-   r.   r/   r   rn   Úarrayr1   r;   r:   r   )r   r4   r5   r   r!   Z	fancy_idxÚwarnr<   Zresult1Zresult2Zresult3Zresult4r   r   r   Útest_floating_miscÌ  sR     *0000z$TestFloatIndexers.test_floating_miscc              –   C   sf  |}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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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d0dd1dd2dddddddddddddddddddddddd3d4d5dd6ddddd7dd8d9dddd:d;dd<dd=dd>œ•}t ||d?�}| ¡ }|jj|k�sZJ ‚t|ƒ d S )@Ng     "¢@g     €S@g     8¥@rd   g     w@g     Ðp@g      «@g      8@g     �@g     @Y@g    €ÕÂ@g     "ï@g     à{@g     úà@g     È†@g     \ª@g     ¼•@g     �v@g     .î@g     º@g     ‰@g     ¥@g     ü«@g     ð†@g     ˜ƒ@g     €Q@g     0¤@g     @t@g     è‚@g     *¯@re   g      E@g     @Œ@g      V@g     ì¿@g    À°ï@g     °u@g     ßá@g     °w@g     r§@g     x™@g      @g     Àv@g    Àtð@g      "@g     ¾@g     È�@g     ¦@g     &§@g     °Š@g     Šð@g      6@g     €p@g      h@g     ¸’@g     Š¤@g     8ˆ@g     `d@g     +Ä@g     0“@g     ¢¥@)•é   r>   r   r9   rS   r&   r[   é   é   é	   r+   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é    é!   é"   é#   é$   é%   é&   é'   é(   é)   é*   é+   é,   é-   é.   é/   é0   é1   é2   é3   é4   é5   é6   é7   é8   é9   é:   é;   é<   é=   é>   é?   é@   éA   éB   éC   éD   éE   éF   éG   éH   éI   éJ   éK   éL   éM   éN   éO   éP   éQ   éR   éS   éT   éU   éV   éW   éX   éY   éZ   é[   é\   é]   é^   é_   é`   éa   éb   éc   rH   ée   éf   ég   éh   éi   éj   ék   él   ém   én   éo   ép   éq   ér   és   ét   éu   év   éw   éx   éy   éz   é{   é|   é}   é~   é   é€   é�   i  i  i	  i  i  i
  i  i  i  i  i  i  i  éú   éû   éü   éý   éþ   éÿ   r$   )r   Zvalue_countsr
   r%   Ústr)r   Zfloat_numpy_dtyper%   Zserr5   r   r   r   r   Útest_floatindex_slicing_bug  s:   € ë z-TestFloatIndexers.test_floatindex_slicing_bugN)!rX   Ú
__module__Ú__qualname__r"   r-   ÚmarkZparametrizer   Úlistr   r   r   r7   r=   rD   r   r   r]   r   rM   rN   rQ   Úobjectr^   rZ   r`   rb   rf   rk   rl   rm   rq   ró   r   r   r   r   r      st   



ûþ





ûþ


$ÿ
$ÿ
#


üþ	$G$
ÿ
3$ÿ$
Fr   )Únumpyr   r-   Zpandasr   r   r   r   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   r   Ú<module>   s
   $	