a
    oÝEb^Ñ  ã                
   @   sª  d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlm	  m
Z d dlZd dlmZ d dlmZ d dlmZ d dlmZmZ G dd„ dƒZG dd	„ d	ƒZG d
d„ dƒZdd„ Zdd„ Zej dg d¢d fg d¢dfg d¢dfg d¢dfg d¢dfg dfg¡dd„ ƒZej dddejejgdejdejgddejgg¡ej dejd dg¡dd„ ƒƒZ d d!„ Z!d"d#„ Z"d$d%„ Z#ej dejdg¡d&d'„ ƒZ$d(d)„ Z%G d*d+„ d+ƒZ&dS ),é    N)ÚIntIndex)Úisna)Ú
Int64Index)ÚSparseArrayÚSparseDtypec                   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Ze	j
 deedƒeg¡dd„ ƒZdd„ Zdd„ Ze	j
 ddeddgƒg¡dd„ ƒZdd„ Ze	j
 de ddg¡dfe ddg¡ejfd d!gd!fe d"¡gejfg¡d#d$„ ƒZe	j
 d%g d&¢¡e	j
 d'dd(g¡ejd)d*„ ƒƒƒZe	j
 d%g d&¢¡ejd+d,„ ƒƒZejd-d.„ ƒZe	j
 d/d!ee d!ƒfd0ed1dƒfded2dƒfd3ed4d3ƒfg¡d5d6„ ƒZ!d7d8„ Z"d9d:„ Z#d;d<„ Z$d=d>„ Z%d?d@„ Z&dAdB„ Z'dCdD„ Z(dEdF„ Z)e	j
 dGddejg¡dHdI„ ƒZ*dJdK„ Z+dLdM„ Z,dNdO„ Z-e	j
 dPdQdRg¡dSdT„ ƒZ.dUdV„ Z/dWdX„ Z0dYdZ„ Z1d[d\„ Z2d]d^„ Z3d_d`„ Z4dadb„ Z5dcdd„ Z6dedf„ Z7dgdh„ Z8e	j
 die9ddgƒdje9d0dgee:d0ƒdk�fe9ddgƒe e9d!d gƒfe9ddgddl�e e9d!d gee d ƒdk�fe	j;e9ddgƒdme9ejddgdmdk�edme dn¡ƒdk�e	j
j<dodp�gdq�e9g dr¢ƒe=e9g ds¢ee=dtƒdk�fe9dudvgƒe:e9dwdxgƒfe9g dy¢ƒe>e9g dy¢ee>dƒdk�fg¡dzd{„ ƒZ?d|d}„ Z@d~d„ ZAd€d�„ ZBe	j
 d‚g dƒ¢e ddg¡dƒg¡d„d…„ ƒZCd†d‡„ ZDdˆd‰„ ZEe	j
 dŠg d‹¢dŒdfg d�dfdgdŽdfd�d�ejd�gd‘e>fg¡d’d“„ ƒZFe	j
 d”ejejejejejgdejejd•ejgdejdd•dgg¡e	j
 dGddg¡d–d—„ ƒƒZGd˜d™„ ZHdšd›„ ZIe	j
 dœejJdd… ejJdd(… ejJdd�… ejJd(d… ejJddž… ejJdŸd … ejJdd¡… ejJd¡d… ejJdd… ejJddd•… ejJddd… ejJddd¢… ejJddd£… ejJdd¤d… ejJdd¥d£… g¡e	j
 d¦ejgd( dgd( ejgd§ dgd§  g g¡d¨d©„ ƒƒZKdªd«„ ZLd¬d­„ ZMd®d¯„ ZNd°d±„ ZOd²d³„ ZPe	j
 d´g dµ¢¡d¶d·„ ƒZQd¸d¹„ ZRdºd»„ ZSd¼d½„ ZTd¾d¿„ ZUdÀdÁ„ ZVdS )ÂÚTestSparseArrayc                 C   sJ   t  t jt jdddt jddt jdg
¡| _t| jƒ| _tg d¢dd	�| _d S )
Né   é   é   é   é   é   )
r   r   r   r	   r
   r   r   r   r   r   r   ©Ú
fill_value)ÚnpÚarrayÚnanÚarr_datar   ÚarrÚzarr)ÚselfÚmethod© r   úe/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/arrays/sparse/test_array.pyÚsetup_method   s    (zTestSparseArray.setup_methodc                 C   s¬  t tjddtjgƒ}|jttjtjƒks,J ‚|jjtjks>J ‚t |j¡sNJ ‚t tjddtjgdd�}|jttjdƒks|J ‚|jdksŠJ ‚t g d¢tjd�}|jttjtjƒks´J ‚t |j¡sÄJ ‚t g d¢tj	d�}|jttj	dƒksìJ ‚|jdksúJ ‚t g d¢dtj	d�}|jttj	dƒk�s&J ‚|jdk�s6J ‚t g d¢d d�}|jttj	dƒk�s^J ‚|jdk�snJ ‚t g d¢dd d�}|jttj	dƒk�s˜J ‚|jdk�s¨J ‚d S )Nr   r	   r   r   )r   r   r	   r   ©Údtype©r   r   )
r   r   r   r   r   Úfloat64ÚsubtypeÚisnanr   Úint64©r   r   r   r   r   Útest_constructor_dtype   s,    z&TestSparseArray.test_constructor_dtypec                 C   s0   t g d¢dd�}t g d¢td�}t ||¡ d S )N©r   r	   r
   Úintr   )r   r%   ÚtmÚassert_sp_array_equal©r   ÚresultÚexpectedr   r   r   Útest_constructor_dtype_str9   s    z*TestSparseArray.test_constructor_dtype_strc                 C   sP   t g d¢tddƒd�}t g d¢dtjd�}t ||¡ |jjt d¡ksLJ ‚d S )N©r   r   r   r   r!   éÿÿÿÿr   r   )r   r   r   r!   r&   r'   Ú	sp_valuesr   r(   r   r   r   Útest_constructor_sparse_dtype>   s    z-TestSparseArray.test_constructor_sparse_dtypec                 C   sH   t g d¢dd�}t g d¢tjd�}t ||¡ |jjt d¡ksDJ ‚d S )Nr,   zSparse[int32]r   Úint32)r   r   r0   r&   r'   r.   r   r(   r   r   r   Ú!test_constructor_sparse_dtype_strD   s    z1TestSparseArray.test_constructor_sparse_dtype_strc                 C   sè   t ddtjdgtd�}|jttƒks(J ‚t |j¡s8J ‚t ddtjdgtdd�}|jttdƒksdJ ‚|jdksrJ ‚g d¢}t |tdd�}|jttdƒksœJ ‚|jdu sªJ ‚tj|td�}dd„ t	||ƒD ƒ}tj
|tjd� ¡ säJ ‚d S )	NÚAÚBr   ©r   r   )Fr   g      Y@ç        Fc                 s   s*   | ]"\}}t |ƒt |ƒko ||kV  qd S ©N)Útype)Ú.0ÚxÚyr   r   r   Ú	<genexpr>Z   ó    z@TestSparseArray.test_constructor_object_dtype.<locals>.<genexpr>)r   r   r   Úobjectr   r   r    r   r   ÚzipZfromiterÚbool_Úall)r   r   ÚdataZarr_expectedÚitr   r   r   Útest_constructor_object_dtypeJ   s    z-TestSparseArray.test_constructor_object_dtyper   r   c                 C   sF   t jtdd��$ tddtjg|d� W d   ƒ n1 s80    Y  d S )NzCannot convert©Úmatchr   r   r   )ÚpytestÚraisesÚ
ValueErrorr   r   r   )r   r   r   r   r   Útest_constructor_na_dtype]   s    z)TestSparseArray.test_constructor_na_dtypec                 C   s¨   t jdddd�}ttj|dd�ƒ}t t¡� t|ƒ}W d   ƒ n1 sJ0    Y  t ||¡ t t¡� tt  	|¡ƒ}W d   ƒ n1 sŽ0    Y  t ||¡ d S )Nz
2016-01-01r
   z
US/Pacific)ZperiodsÚtzúdatetime64[ns]r   )
ÚpdZ
date_ranger   r   Úasarrayr&   Úassert_produces_warningÚUserWarningr'   ÚSeries)r   Zdtir*   r)   r   r   r   Ú+test_constructor_warns_when_losing_timezoneb   s    &,z;TestSparseArray.test_constructor_warns_when_losing_timezonec                 C   s„  t ddgtdddgƒd�}t g d¢dd�}t ||¡ |jttjƒksJJ ‚|jdksXJ ‚t g d	¢tdg d	¢ƒtjdd
�}t g d¢tjdd�}t ||¡ |jttjƒks¬J ‚|jdksºJ ‚t ddgtdddgƒdtjd�}t g d¢dtjd�}t ||¡ |jttjƒk�sJ ‚|jdk�s J ‚t g d	¢tdg d	¢ƒd dd
�}t g d¢d d�}t ||¡ |jttjƒk�spJ ‚|jdk�s€J ‚d S )Nr   r	   r   )rA   Úsparse_index©r   r   r	   r   Úinteger©Úkindr   r$   )rA   rR   r   r   )r   r   r	   r
   r4   ©rA   rR   r   r   r   r   ©	r   r   r&   r'   r   r   r   r!   r   )r   r   r*   Úexpr   r   r   Útest_constructor_spindex_dtyper   s@    üÿüz.TestSparseArray.test_constructor_spindex_dtyperR   Nr   c                 C   s    t d|d d�}t dgd d�}t ||¡ |jttjƒks<J ‚|jdksJJ ‚t dtddgƒd d�}t dgd d�}t ||¡ |jttjƒksŽJ ‚|jdksœJ ‚d S )Nr   )rA   rR   r   r   r   )	r   r&   r'   r   r   r   r!   r   r   )r   rR   r   rY   r   r   r   Ú%test_constructor_spindex_dtype_scalar™   s    z5TestSparseArray.test_constructor_spindex_dtype_scalarc                 C   sb   t ddgtdddgƒdd d�}t g d¢dd d�}t ||¡ |jttjƒksPJ ‚|jdks^J ‚d S )Nr   r	   r   r   rW   rS   r   rX   )r   r   rY   r   r   r   Ú0test_constructor_spindex_dtype_scalar_broadcasts¨   s    ÿz@TestSparseArray.test_constructor_spindex_dtype_scalar_broadcastszdata, fill_valuer	   ç      ð?ç       @TFz
2017-01-01c                 C   s0   t |ƒj}t|ƒr t|ƒs,J ‚n||ks,J ‚d S r6   )r   r   r   )r   rA   r   r)   r   r   r   Ú$test_constructor_inferred_fill_value±   s    

z4TestSparseArray.test_constructor_inferred_fill_valueÚformat)ZcooÚcscZcsrÚsizeé
   c                 C   sL   dd l }|jj|dd|d�}t |¡}t |¡}| ¡  ¡ }t	 
||¡ d S )Nr   r   ç      à?©Údensityr`   )Úscipy.sparseÚsparseÚrandomr   Úfrom_spmatrixr   rM   ÚtoarrayÚravelr&   Úassert_numpy_array_equal)r   rb   r`   ÚscipyÚmatr)   r*   r   r   r   Útest_from_spmatrixÂ   s    

z"TestSparseArray.test_from_spmatrixc                 C   sV   dd l }|jjddd|d�}d|jd< t |¡}t |¡}| ¡  	¡ }t
 ||¡ d S )Nr   rc   r   rd   re   )rg   rh   ri   rA   r   rj   r   rM   rk   rl   r&   rm   )r   r`   rn   ro   r)   r*   r   r   r   Ú*test_from_spmatrix_including_explicit_zeroÏ   s    


z:TestSparseArray.test_from_spmatrix_including_explicit_zeroc                 C   sV   dd l }|jjdddd�}tjtdd�� t |¡ W d   ƒ n1 sH0    Y  d S )Nr   r   r   ra   )r`   znot '4'rD   )rg   rh   ÚeyerF   rG   rH   r   rj   )r   rn   ro   r   r   r   Útest_from_spmatrix_raisesÜ   s    z)TestSparseArray.test_from_spmatrix_raiseszscalar,dtyper5   r   r!   Úzr=   c                 C   s~   t jtdd��" t|g d¢|d�}W d   ƒ n1 s60    Y  t|||g|d�}t  ||¡ |j|kslJ ‚|j|kszJ ‚d S )Nz&The index argument has been deprecatedrD   r$   )Úindexr   r   )r&   rN   ÚFutureWarningr   r'   r   )r   Zscalarr   r   rY   r   r   r   Ú"test_scalar_with_index_infer_dtypeå   s    ÿ0z2TestSparseArray.test_scalar_with_index_infer_dtypec                 C   sº   t ddgd tjdd�}t tjdtjddgƒ}t | j| |¡ | }| j| }t tjddd	tjgƒ}t ||¡ t ddtjgd tjtjd�}| j| }t tjddgƒ}t ||¡ d S )
NFTr   r4   r	   r   r   r
   r   )r   r   Úbool8r   r&   r'   r   )r   Ú	spar_boolrY   Úresr   r   r   Útest_getitem_bool_sparse_arrayû   s    
ÿ
z.TestSparseArray.test_getitem_bool_sparse_arrayc                 C   sL   t ddddtjtjgtjd�}||dk }t ddgtjd�}t ||¡ d S )Nr   r	   r
   r   r   ç      @g      @)r   r   r   r&   r'   ©r   r   rz   rY   r   r   r   Ú,test_getitem_bool_sparse_array_as_comparison  s    z<TestSparseArray.test_getitem_bool_sparse_array_as_comparisonc                 C   s
  t  | jd ¡sJ ‚| jd dks&J ‚| jd dks8J ‚| jd dksJJ ‚| jd dks\J ‚| jd dksnJ ‚d}tjt|d�� | jd  W d   ƒ n1 s 0    Y  tjt|d�� | jd	  W d   ƒ n1 sØ0    Y  | jd
 | jt| jƒd  k�sJ ‚d S )Nr   r	   é   r   r   z%must be an integer between -10 and 10rD   é   iõÿÿÿr-   )r   r    r   r   rF   rG   Ú
IndexErrorÚlen)r   Úerrmsgr   r   r   Útest_get_item  s    ((zTestSparseArray.test_get_itemc                 C   sB   d}t jt|d�� | j d¡ W d   ƒ n1 s40    Y  d S )Nz-'indices' must be an array, not a scalar '2'.rD   r	   )rF   rG   rH   r   Útake)r   Úmsgr   r   r   Útest_take_scalar_raises(  s    z'TestSparseArray.test_take_scalar_raisesc                 C   s`   t t | jddg¡ƒ}t | j ddg¡|¡ t t | jg d¢¡ƒ}t | j g d¢¡|¡ d S )Nr	   r
   ©r   r   r	   ©r   r   r…   r   r&   r'   r   ©r   rY   r   r   r   Ú	test_take-  s    zTestSparseArray.test_takec                 C   s<   t jddgtdƒd�}|jddgdtjd�}t ||¡ d S )Nr   r!   r   r   T©Ú
allow_fillr   )rL   r   r   r…   r   r   r&   r'   )r   Úar)   r   r   r   Útest_take_all_empty4  s    z#TestSparseArray.test_take_all_emptyc                 C   s~   t  dt jdddg¡}t|dd�}tt  |dg¡dd�}t | dg¡|¡ tt  |g d¢¡dd�}t | g d¢¡|¡ d S )Nr   r   r
   r   )r   r
   r   )r   r   r   r   r…   r&   r'   )r   rA   rh   rY   r   r   r   Útest_take_fill_value9  s    z$TestSparseArray.test_take_fill_valuec                 C   s\   t t | jdg¡ƒ}t | j dg¡|¡ t t | jg d¢¡ƒ}t | j g d¢¡|¡ d S )Nr-   )éüÿÿÿéýÿÿÿéþÿÿÿr‰   rŠ   r   r   r   Útest_take_negativeC  s    z"TestSparseArray.test_take_negativer   c                 C   s`   t t g d¢¡dd�}|jd|d�}t|ƒr4|jj}t t |ddddg¡dd�}t ||¡ d S )N)r   r   r   r
   r   g       @r   r   r   r
   )	r   r   r   Úshiftr   r   Zna_valuer&   r'   )r   r   rh   rz   rY   r   r   r   Útest_shift_fill_valueJ  s    z%TestSparseArray.test_shift_fill_valuec                 C   s@   t jtdd�� | j dg¡ W d   ƒ n1 s20    Y  d S )NZboundsrD   r€   )rF   rG   r�   r   r…   ©r   r   r   r   Útest_bad_takeT  s    zTestSparseArray.test_bad_takec                 C   s$  t tjtjdtjdgƒ}| t g d¢¡¡}t tjtjdgƒ}t ||¡ |jt g d¢¡dd�}t tjtjtjgƒ}t ||¡ |jt g d¢¡ddd�}t tjtjdgƒ}t ||¡ d}tjt	|d	��( |jt g d
¢¡dd� W d   ƒ n1 sú0    Y  tjt	|d	��( |jt g d¢¡dd� W d   ƒ n1 �sB0    Y  d}tjt
|d	��$ | t ddg¡¡ W d   ƒ n1 �sŠ0    Y  tjt
|d	��$ | t ddg¡¡ W d   ƒ n1 �sÎ0    Y  tjt
|d	��( |jt ddg¡dd� W d   ƒ n1 �s0    Y  d S )Nr   r   ©r   r   r-   T©r�   FrŒ   zInvalid value in 'indices'rD   ©r   r   r“   ©r   r   éûÿÿÿú out of bounds value in 'indices'éúÿÿÿr   ©r   r   r   r…   r   r&   r'   rF   rG   rH   r�   ©r   rh   r)   r*   r†   r   r   r   Útest_take_fillingX  s,    6844z!TestSparseArray.test_take_fillingc                 C   s,  t tjddddgdd�}| t g d¢¡¡}t dtjdgdd�}t ||¡ |jt g d¢¡dd�}t dtjtjgdd�}t ||¡ |jt g d¢¡ddd	�}t dtjdgdd�}t ||¡ d
}tjt	|d��( |jt g d¢¡dd� W d   ƒ n1 �s0    Y  tjt	|d��( |jt g d¢¡dd� W d   ƒ n1 �sJ0    Y  d}tjt
|d��$ | t ddg¡¡ W d   ƒ n1 �s’0    Y  tjt
|d��$ | t ddg¡¡ W d   ƒ n1 �sÖ0    Y  tjt
|d��( |jt ddg¡dd� W d   ƒ n1 �s0    Y  d S )Nr   r   r   r   r™   Trš   FrŒ   zInvalid value in 'indices'.rD   r›   rœ   rž   rŸ   r   r    r¡   r   r   r   Útest_take_filling_fill_valuex  s,    8844z,TestSparseArray.test_take_filling_fill_valuerV   ÚblockrT   c                 C   sj  t tjtjtjtjtjg|d�}| t g d¢¡¡}t tjtjtjg|d�}t ||¡ |jt g d¢¡dd�}t tjtjtjg|d�}t ||¡ d}tjt	|d��$ | t ddg¡¡ W d   ƒ n1 sÐ0    Y  tjt	|d��$ | t dd	g¡¡ W d   ƒ n1 �s0    Y  tjt	|d��( |jt dd	g¡dd� W d   ƒ n1 �s\0    Y  d S )
NrU   r™   Tr   rž   rD   r   rŸ   r   )
r   r   r   r…   r   r&   r'   rF   rG   r�   )r   rV   rh   r)   r*   r†   r   r   r   Útest_take_filling_all_nanš  s     24z)TestSparseArray.test_take_filling_all_nanc                    s„   ‡ fdd„}‡ fdd„}t jtdd�� |ƒ  W d   ƒ n1 sB0    Y  t jtdd�� |ƒ  W d   ƒ n1 sv0    Y  d S )Nc                      s   dˆ j d< d S )Nr
   r   ©r   r   r—   r   r   Úsetitem®  s    z.TestSparseArray.test_set_item.<locals>.setitemc                      s   dˆ j dd…< d S )Nr	   r   r   r¦   r   r—   r   r   Úsetslice±  s    z/TestSparseArray.test_set_item.<locals>.setslicezassignment via setitemrD   )rF   rG   Ú	TypeError)r   r§   r¨   r   r—   r   Útest_set_item­  s    $zTestSparseArray.test_set_itemc                 C   sF   t jtdd��$ tt d¡ d¡ƒ W d   ƒ n1 s80    Y  d S )Nzexpected dimension <= 1 datarD   rc   )r	   r   )rF   rG   r©   r   r   ÚarangeZreshaper—   r   r   r   Ú%test_constructor_from_too_large_arrayº  s    z5TestSparseArray.test_constructor_from_too_large_arrayc                 C   s.   t | jƒ}|jdksJ ‚t |j| jj¡ d S ©Nr   )r   r   r   r&   Úassert_almost_equalr.   )r   rz   r   r   r   Útest_constructor_from_sparse¾  s    
z,TestSparseArray.test_constructor_from_sparsec                 C   sp   t | jdd�}d|jd d…< | jjd d… dk ¡ r8J ‚t | jƒ}d|jd d…< | jjd d… dk ¡ slJ ‚d S )NT©Úcopyr   r
   )r   r   r.   Úanyr@   )r   ÚcpZnot_copyr   r   r   Útest_constructor_copyÃ  s    
z%TestSparseArray.test_constructor_copyc                 C   sŠ   t  g d¢¡}t|dtd�}|jttƒks.J ‚t |jt  ddg¡¡ t |j	j
t  ddgt j¡¡ | ¡ }|jtkszJ ‚t ||¡ d S )N)FFTTFFFr   Tr	   r
   )r   r   r   Úboolr   r   r&   rm   r.   Úsp_indexÚindicesr0   Úto_dense©r   rA   r   Údenser   r   r   Útest_constructor_boolÌ  s    z%TestSparseArray.test_constructor_boolc                 C   s–   t g d¢d d�}|jttjƒks$J ‚|jr.J ‚t g d¢tjd�}|jttjƒksTJ ‚|jr^J ‚t g d¢tjdd�}|jttjdƒksˆJ ‚|js’J ‚d S )N©TFTr   Tr4   )r   r   r   r   r?   r   r"   r   r   r   Ú test_constructor_bool_fill_valueÛ  s    

z0TestSparseArray.test_constructor_bool_fill_valuec                 C   s    t jdt jdgt jd�}t|t jd�}|jtt jƒks:J ‚t |j	t jddgt jd�¡ t |j
jt jddgt jd�¡ | ¡ }|jt jks�J ‚t ||¡ d S )Nr]   r
   r   r   r   r	   )r   r   r   Úfloat32r   r   r   r&   rm   r.   r¶   r·   r0   r¸   r¹   r   r   r   Útest_constructor_float32è  s    ÿz(TestSparseArray.test_constructor_float32c                 C   s  t g d¢ƒ}| d¡}t g d¢t d¡d�}t ||¡ tddd�}| |¡}t  tjdd	g|j	d�t
d
ddgƒ|¡}t ||¡ tddƒ}| |¡}t  tjddgtjd�t
d
ddgƒ|¡}t ||¡ t dtjddgdd�}tjtdd�� | d¡ W d   ƒ n1 �s0    Y  d S )N)NNr   r	   zSparse[float32]r¾   r   r   r   r   r5   r^   r   r	   r
   r!   r   ZNArD   z
Sparse[i8])r   Úastyper   r   r&   r'   r   Ú_simple_newr   r   r   r!   r   rF   rG   rH   )r   r   r)   r*   r   r   r   r   Útest_astypeù  s&    

 ÿ

 ÿzTestSparseArray.test_astypec                 C   sx   t g d¢ttdƒd�}| t¡}t g d¢ttdƒd�}t ||¡ | ttdƒ¡}t g d¢ttdƒd�}t ||¡ d S )Nr,   r   r   )TFFTF)r   r   r%   rÀ   rµ   r&   r'   )r   rŽ   r)   r*   r   r   r   Útest_astype_bool  s    
ÿÿz TestSparseArray.test_astype_boolc                 C   sr   t  g d¢¡}t|dd�}t  |¡}| |¡}|jt|dƒksBJ ‚|jj|ksRJ ‚t t  	| 
¡ ¡| |¡¡ d S )Nr$   r   r   )r   r   r   r   rÀ   r   r.   r&   rm   rM   r¸   )r   Zany_real_numpy_dtypeÚvalsr   Útyprz   r   r   r   Útest_astype_all!  s    

zTestSparseArray.test_astype_allzarr, dtype, expectedÚfloatr   r   rK   Z1970z
NumPy-7619)Úreason)Zmarks)r   r   rc   )Ú0Ú1Ú10rÉ   rË   Z20ç      $@g      4@)r   r   r   c                 C   s   |  |¡}t ||¡ d S r6   )rÀ   r&   r'   )r   r   r   r*   r)   r   r   r   Útest_astype_more+  s    %
z TestSparseArray.test_astype_morec                 C   sJ   t dtjgƒ}tjtdd�� | t¡ W d   ƒ n1 s<0    Y  d S )Nr]   zCannot convert non-finiterD   )r   r   r   rF   rG   rH   rÀ   r%   r"   r   r   r   Útest_astype_nan_raisesS  s    z&TestSparseArray.test_astype_nan_raisesc                 C   s:   t g d¢ƒ}|jtdd�}t g d¢dd�}t ||¡ d S )Nr$   Fr°   )r]   r^   r|   r5   r   )r   rÀ   rÇ   r&   r'   ©r   r   r)   r*   r   r   r   Útest_astype_copy_falseX  s    z&TestSparseArray.test_astype_copy_falsec                 C   s¾   t dtjdgtjd�}d|_|jdks*J ‚t g d¢dtjd�}d|_|jdksRJ ‚d|_|jdksfJ ‚tj|_t |j¡s~J ‚t g d	¢d
tjd�}d|_|js¢J ‚tj|_t |j¡sºJ ‚d S )Nr]   r^   r   r	   )r   r   r	   r   r   gÍÌÌÌÌÌ@r¼   FT)r   r   r   r   r!   r    r?   r"   r   r   r   Útest_set_fill_value`  s    
z#TestSparseArray.test_set_fill_valueÚvalr$   c                 C   sP   t g d¢dtjd�}d}tjt|d�� ||_W d   ƒ n1 sB0    Y  d S )Nr¼   Fr   zfill_value must be a scalarrD   )r   r   r?   rF   rG   rH   r   )r   rÒ   r   r†   r   r   r   Ú test_set_fill_invalid_non_scalar†  s    z0TestSparseArray.test_set_fill_invalid_non_scalarc                 C   s2   | j  ¡ }|j| j jusJ ‚|j| j ju s.J ‚d S r6   )r   r±   r.   r¶   )r   Úarr2r   r   r   Ú	test_copyŽ  s    
zTestSparseArray.test_copyc                 C   s   t  | j ¡ | j¡ d S r6   )r&   r®   r   r¸   r   r—   r   r   r   Útest_values_asarray“  s    z#TestSparseArray.test_values_asarrayzdata,shape,dtype)r   r   r   r   r   )r   )r   )r   r2   r3   )r   c                 C   s   t ||d�}|j|ksJ ‚d S ©Nr   )r   Úshape)r   rA   rØ   r   Úoutr   r   r   Ú
test_shape–  s    zTestSparseArray.test_shaperÄ   r
   c                 C   sB   t  |¡}t||d�}| ¡ }t ||¡ | ¡ }t ||¡ d S ©Nr   )r   r   r   r¸   r&   rm   Z_internal_get_values)r   rÄ   r   r   rz   Úres2r   r   r   Útest_dense_repr¤  s    

zTestSparseArray.test_dense_reprc                    s6   ‡ fdd„}t tˆ jƒƒD ]}||ƒ || ƒ qd S )Nc                    s    t  ˆ j|  ˆ j ¡ |  ¡ d S r6   )r&   r®   r   r¸   )Úir—   r   r   Ú_checkit¹  s    z.TestSparseArray.test_getitem.<locals>._checkit)Úranger‚   r   )r   rß   rÞ   r   r—   r   Útest_getitem¸  s    zTestSparseArray.test_getitemc                 C   s4   t g d¢ƒ}|g d¢ }t ddgƒ}t ||¡ d S )Nrˆ   r¼   r   r	   )r   r&   r'   rÏ   r   r   r   Útest_getitem_arraylike_maskÀ  s    z+TestSparseArray.test_getitem_arraylike_maskÚslcéd   r’   r�   r‘   iôÿÿÿr-   r“   r   rŸ   Úas_denser   c                 C   s6   t  |¡}t|ƒ}|| }t|| ƒ}t ||¡ d S r6   )r   r   r   r&   r'   )r   rã   rå   r   r)   r*   r   r   r   Útest_getsliceÆ  s
    
zTestSparseArray.test_getslicec                 C   s   t  t jdddddt jt jdg	¡}t|ƒ}|tdd ƒf }t|dd … ƒ}t ||¡ t|dd�}|tdd ƒf }t|dd … dd�}t ||¡ d}tjt	|d��$ |dd …d d …f  W d   ƒ n1 sÎ0    Y  tjt	|d��$ |dd …d d …f  W d   ƒ n1 �s0    Y  d S )Nr   r
   r   r   r   ztoo many indices for arrayrD   )
r   r   r   r   Úslicer&   r'   rF   rG   r�   )r   rº   rh   rz   rY   r†   r   r   r   Útest_getslice_tupleæ  s    "2z#TestSparseArray.test_getslice_tuplec                 C   s,   t g d¢ƒ}|g d¢ }|j|jks(J ‚d S )Nrˆ   )FFF)r   r   )r   r   rz   r   r   r   Útest_boolean_slice_emptyû  s    z(TestSparseArray.test_boolean_slice_emptyc                 C   sˆ   t ddtjdgtjtjd�}| }t ddtjdgtjtjd�}t ||¡ t g d¢dtjd�}| }t g d	¢dtjd�}t ||¡ d S )
Nr-   r“   r
   r   r   r	   r’   ©r-   r“   r   r
   )r   r	   r-   r’   )r   r   r   Úint8r&   r'   r}   r   r   r   Útest_neg_operator   s    z!TestSparseArray.test_neg_operatorc                 C   sŒ   t ddtjdgtjtjd�}t|ƒ}t ddtjdgtjtjd�}t ||¡ t g d¢dtjd�}t|ƒ}t g d¢dtjd�}t ||¡ d S )	Nr-   r“   r
   r   r   r	   rê   )r   r	   r   r
   )r   r   r   rë   Úabsr&   r'   r}   r   r   r   Útest_abs_operator  s    z!TestSparseArray.test_abs_operatorc                 C   sx   t g d¢dtjd�}| }t t g d¢¡dtjd�}| }t ||¡ t g d¢dtjd�}| }t g d¢dtjd�}d S )	N)FTFTFr   T)r   r   r   r	   r
   r   r   )r-   r“   r-   r’   r‘   r-   r-   )r   r   rx   Úinvertr&   r'   r0   r}   r   r   r   Útest_invert_operator  s    ÿz$TestSparseArray.test_invert_operatorÚop)ÚaddÚsubÚmulÚtruedivÚfloordivÚpowc                 C   sä   t t|ƒ}tj d¡}tj d¡}tj|d d d…< tj|d d d…< t|ƒ}t|ƒ}d|d d d…< d|d d d…< t|dd�}t|dd�}dd„ }tjdd��6 ||f||ffD ]\}	}
|||	|
ƒ q¬W d   ƒ n1 sÖ0    Y  d S )	Né   r	   r
   r   c           	      S   s  | ||ƒ}t | | ¡ | ¡ ƒ|jd�}t|t ƒs4J ‚t | ¡ | ¡ ¡ | || ¡ ƒ}t|t ƒsdJ ‚t ||¡ | | ¡ |ƒ}t|t ƒsŒJ ‚t ||¡ | |dƒ}t|t ƒs°J ‚z| | ¡ dƒ}| |jdƒ}W n tyà   Y n 0 t |j|¡ t | ¡ |¡ d S )Nr   r   )r   r¸   r   Ú
isinstancer&   r®   r'   rH   )	rñ   ÚfirstÚsecondrz   rY   rÜ   Zres3Zres4Zexp_fvr   r   r   Ú	_check_op4  s*    
ÿ
z8TestSparseArray.test_binary_operators.<locals>._check_opÚignore)r@   )ÚgetattrÚoperatorr   ri   Zrandnr   r   Zerrstate)r   rñ   Zdata1Zdata2Zarr1rÔ   Zfarr1Zfarr2rü   Z	first_arrZ
second_arrr   r   r   Útest_binary_operators#  s    
z%TestSparseArray.test_binary_operatorsc                 C   s    dd„ }|| j ƒ || jƒ d S )Nc                 S   s   t  | ¡}t  || ¡ d S r6   )r&   Zround_trip_pickler'   )ÚobjZ	unpickledr   r   r   Ú_check_roundtripV  s    
z5TestSparseArray.test_pickle.<locals>._check_roundtrip)r   r   )r   r  r   r   r   Útest_pickleU  s    
zTestSparseArray.test_picklec                 C   sr   t g d¢ƒ}tjdd��F}tjdtd� tjdtd� |D ]}q:t|ƒdksPJ ‚W d   ƒ n1 sd0    Y  d S )Nr$   T)ÚrecordÚalways)ÚactionÚcategoryr   )r   ÚwarningsÚcatch_warningsÚfilterwarningsÚDeprecationWarningÚPendingDeprecationWarningr‚   )r   Zsp_arrÚwÚ_r   r   r   Útest_generator_warnings]  s    z'TestSparseArray.test_generator_warningsc                 C   sÐ  t dtjtjdtjgƒ}| d¡}t g d¢dtjd�}t ||¡ t dtjtjdtjgdd�}| d¡}t g d¢dtjd�}t ||¡ t dtjdddgƒ}| d¡}t g d¢dtjd�}t ||¡ t dtjdddgdd�}| d¡}t g d¢dtjd�}t ||¡ t tjtjtjtjgƒ}| d¡}t g d	¢dtjd�}t ||¡ t tjtjtjtjgdd�}| d¡}t g d	¢dtjd�}t ||¡ t g d
¢ƒ}| d¡}t g d
¢dd�}t ||¡ t g d¢ƒ}|jttj	ƒk�säJ ‚|j
dk�sôJ ‚| d¡}t ||¡ t g d¢dd�}|jttj	ƒk�s0J ‚|j
dk�s@J ‚| d¡}t g d¢dd�}t ||¡ t g d¢tjd�}|jttj	tjd�k�s”J ‚t |j
¡�s¦J ‚| d¡}t g d¢dd�}t ||¡ d S )Nr   r
   r-   )r   r-   r-   r
   r-   r   r   r   )r   r-   r   r
   r   )r-   r-   r-   r-   )r5   r5   r5   r5   )r   r   r   r   )r   r   r   Úfillnar   r&   r'   r   r   r!   r   r    ©r   Úsrz   rY   r   r   r   Útest_fillnaf  sZ    









zTestSparseArray.test_fillnac                 C   s�   t dtjtjdtjgƒ}| d¡}tjg d¢tjd�}t | ¡ |¡ t dtjtjdtjgdd�}| d¡}t g d¢dtjd�}t 	||¡ d S )Nr   r
   )r   r
   r
   r
   r
   r   r   r   r   )
r   r   r   r  r   r   r&   rm   r¸   r'   r  r   r   r   Útest_fillna_overlap¢  s    

z#TestSparseArray.test_fillna_overlapc                 C   sx   t tdƒtdƒddddddddddgƒ}tjg d¢tjd�}| ¡ \}t ||¡ t g d¢ƒ}| ¡ \}t ||¡ d S )	Nr   r   r   r	   r
   )r	   r   é	   r   )r   r   r   r   r   r	   r   r   r   r
   r   r   )r   rÇ   r   r   r0   Znonzeror&   rm   )r   Úsar*   r)   r   r   r   Útest_nonzero¯  s    (

zTestSparseArray.test_nonzero)WÚ__name__Ú
__module__Ú__qualname__r   r#   r+   r/   r1   rC   rF   ÚmarkÚparametrizer   r%   rI   rQ   rZ   r   r[   r\   r   r   r   rL   Ú	TimestampÚNaTr_   ÚtdÚskip_if_no_scipyrp   rq   rs   rµ   rw   r{   r~   r„   r‡   r‹   r�   r�   r”   r–   r˜   r¢   r£   r¥   rª   r¬   r¯   r´   r»   r½   r¿   rÂ   rÃ   rÆ   r   rÇ   ÚparamZxfailÚstrr=   rÍ   rÎ   rÐ   rÑ   rÓ   rÕ   rÖ   rÚ   rÝ   rá   râ   Zs_ræ   rè   ré   rì   rî   rð   r   r  r  r  r  r  r   r   r   r   r      s>  
'
	
üþ	


üþ	


	 "
	

ýý
þù

ý
ýåþ$
& 

üþ	
ýþñþ,ÿ	
1	<r   c                   @   sN  e Zd Zej dg d¢ddfg d¢ddfg d¢d	d
fg¡dd„ ƒZej dg d¢ddfg d¢ddfg d¢d	d
fg¡dd„ ƒZej dg d¢ddfg d¢ddfg d¢dd
fg¡dd„ ƒZej dg d¢ddfg d¢ddfg d¢dd
fg¡dd„ ƒZ	dd„ Z
ej de ddejdg¡e g d¢¡g¡ej dddejg¡ej dddejfg¡d d!„ ƒƒƒZd"d#„ Zd$d%„ Zej d&ejg d'¢ed(�ee g d)¢¡ƒfejddejdd*ged(�ee d	d+ejd,d-g¡ƒfg¡ej d.ddg¡d/d0„ ƒƒZd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zej dd
ejg¡d9d:„ ƒZd;d<„ Zd=d>„ Zd?d@„ ZdAdB„ ZdCdD„ ZdES )FÚTestSparseArrayAnalyticszdata,pos,neg)TTTTF)r   r	   r   r   r   )r]   r^   r]   r]   r5   c                 C   sd   t |ƒ ¡ }|sJ ‚t ||d� ¡ }|s,J ‚||d< t |ƒ ¡ }|rHJ ‚t ||d� ¡ }|r`J ‚d S ©Nr   r   )r   r@   ©r   rA   ÚposÚnegrÙ   r   r   r   Útest_all¼  s    
z!TestSparseArrayAnalytics.test_allc                 C   s¶   t  t|ƒ¡}|sJ ‚t  t||d�¡}|s0J ‚||d< t  t|ƒ¡}|rNJ ‚t  t||d�¡}|rhJ ‚d}tjt|d��( t jt|ƒt  g ¡d� W d   ƒ n1 s¨0    Y  d S ©Nr   r   ú$the 'out' parameter is not supportedrD   ©rÙ   )r   r@   r   rF   rG   rH   r   ©r   rA   r&  r'  rÙ   r†   r   r   r   Útest_numpy_allÓ  s    
z'TestSparseArrayAnalytics.test_numpy_all©FTF)r   r	   r   r	   )r5   r^   r5   r^   c                 C   sd   t |ƒ ¡ }|sJ ‚t ||d� ¡ }|s,J ‚||d< t |ƒ ¡ }|rHJ ‚t ||d� ¡ }|r`J ‚d S r$  )r   r²   r%  r   r   r   Útest_anyï  s    
z!TestSparseArrayAnalytics.test_anyc                 C   s°   t  t|ƒ¡}|sJ ‚t  t||d�¡}|s0J ‚||d< t  t|ƒ¡}|rNJ ‚t  t||d�¡}|rhJ ‚d}tjt|d��" t jt|ƒ|d� W d   ƒ n1 s¢0    Y  d S r)  )r   r²   r   rF   rG   rH   r,  r   r   r   Útest_numpy_any  s    
z'TestSparseArrayAnalytics.test_numpy_anyc                 C   sp   t  d¡ t¡}t|ƒ ¡ }|dks(J ‚t j|d< t|dd� ¡ }|dksNJ ‚t|t jd� ¡ }|dkslJ ‚d S )Nrc   ç     €F@r   r	   r   ç      D@)r   r«   rÀ   rÇ   r   Úsumr   ©r   rA   rÙ   r   r   r   Útest_sum!  s    
z!TestSparseArrayAnalytics.test_sumr   )r   r   r   r   zmin_count, expected)r
   r	   r   c                 C   sB   t ||d�}|j|d�}t |¡r2t |¡s>J ‚n||ks>J ‚d S )Nr   ©Ú	min_count)r   r3  r   r    )r   r   r   r7  r*   Zsparrayr)   r   r   r   Útest_sum_min_count-  s
    
z+TestSparseArrayAnalytics.test_sum_min_countc                 C   sP   t jjddgd tjdd�}|jdd�}|dks4J ‚|jdd�}t|ƒsLJ ‚d S )NFTr   r4   r   r6  r€   )rL   Zarraysr   r   rx   r3  r   )r   ry   rz   r   r   r   Útest_bool_sum_min_count<  s    ÿz0TestSparseArrayAnalytics.test_bool_sum_min_countc                 C   s   t  d¡ t¡}t  t|ƒ¡}|dks*J ‚t j|d< t  t|dd�¡}|dksRJ ‚t  t|t jd�¡}|dksrJ ‚d}tjt	|d��$ t jt|ƒt j
d	� W d   ƒ n1 s®0    Y  d
}tjt	|d��" t jt|ƒ|d� W d   ƒ n1 sò0    Y  d S )Nrc   r1  r   r	   r   r2  ú&the 'dtype' parameter is not supportedrD   r   r*  r+  )r   r«   rÀ   rÇ   r3  r   r   rF   rG   rH   r!   ©r   rA   rÙ   r†   r   r   r   Útest_numpy_sumE  s    
2z'TestSparseArrayAnalytics.test_numpy_sumzdata,expected)r   r	   r
   r   r   r   )r]   r|   g      @rÌ   g      .@r   r|   g      @g      (@Únumpyc                 C   sN  |r
t jndd„ }|t|ƒƒ}t ||¡ |t|t jd�ƒ}t ||¡ |t|dd�ƒ}t ||¡ |rôd}tjt|d��$ t jt|ƒt j	d� W d   ƒ n1 s¤0    Y  d}tjt|d��" t jt|ƒ|d	� W d   ƒ n1 sè0    Y  nVd
}t
 d|› d�¡}tjt|d��  t|ƒj|d� W d   ƒ n1 �s@0    Y  d S )Nc                 S   s   |   ¡ S r6   )Úcumsum)r  r   r   r   Ú<lambda>h  r<   z6TestSparseArrayAnalytics.test_cumsum.<locals>.<lambda>r   r	   r:  rD   r   r*  r+  r   zaxis(=z) out of bounds)Úaxis)r   r>  r   r&   r'   r   rF   rG   rH   r!   ÚreÚescape)r   rA   r*   r=  r>  rÙ   r†   r@  r   r   r   Útest_cumsumY  s$    22z$TestSparseArrayAnalytics.test_cumsumc                 C   sN   t  d¡ t¡}t|ƒ ¡ }|dks(J ‚t j|d< t|ƒ ¡ }|dksJJ ‚d S )Nrc   ç      @r   çrÇqÇ@)r   r«   rÀ   rÇ   r   Úmeanr   r4  r   r   r   Ú	test_mean�  s    
z"TestSparseArrayAnalytics.test_meanc                 C   sÜ   t  d¡ t¡}t  t|ƒ¡}|dks*J ‚t j|d< t  t|ƒ¡}|dksNJ ‚d}tjt	|d��$ t jt|ƒt j
d� W d   ƒ n1 sŠ0    Y  d}tjt	|d��" t jt|ƒ|d	� W d   ƒ n1 sÎ0    Y  d S )
Nrc   rD  r   rE  r:  rD   r   r*  r+  )r   r«   rÀ   rÇ   rF  r   r   rF   rG   rH   r!   r;  r   r   r   Útest_numpy_meanŠ  s    
2z(TestSparseArrayAnalytics.test_numpy_meanc                 C   sš  t dtjdtjdgƒ}t dtjdtjdgƒ}t t|ƒ|¡ t t |¡|¡ t g d¢dd�}t g d¢|jdd�}t t|ƒ|¡ t t |¡|¡ t g d¢dd�}t g d	¢dd�}t t|ƒ|¡ t t |¡|¡ t dtjdtjdgƒ}t t dtjdtjdg¡ƒ}t t |¡|¡ t g d¢dd�}t t g d¢¡t d¡d�}t t |¡|¡ t g d
¢dd�}t t g d
¢¡t d¡d�}t t |¡|¡ d S )Nr   r	   r“   ©r   r-   r	   r“   r   )r   r	   r	   )rR   r   r-   )r   r   r	   r	   ©r   r-   r   r“   r   )r   r   r   r&   r'   rí   r¶   Úsin)r   rh   r)   rY   r   r   r   Ú
test_ufunc›  s*    z#TestSparseArrayAnalytics.test_ufuncc                 C   s¬   t dtjdtjdgƒ}t dtjdtjdgƒ}t t |d¡|¡ t g d¢dd�}t g d¢dd�}t t |d¡|¡ t g d	¢d
d�}t g d¢dd�}t t |d¡|¡ d S )Nr   r	   r“   r
   r-   rI  r   )r	   r   r
   r-   rJ  r   )r	   r   r   r-   )r   r   r   r&   r'   rò   )r   rh   r)   r   r   r   Útest_ufunc_args¸  s    z(TestSparseArrayAnalytics.test_ufunc_argsc                 C   sh   t |gd ddg |d�}t |¡\}}t t |¡¡\}}t |t ||d�¡ t |t ||d�¡ d S )Nrc   gš™™™™™ñ?gš™™™™™@r   )r   r   ÚmodfrM   r&   r'   )r   r   rh   Úr1Úr2Úe1Úe2r   r   r   Ú	test_modfÆ  s
    z"TestSparseArrayAnalytics.test_modfc                 C   s&   t g d¢dd�}|j}|dks"J ‚d S )N)r   r   r   r   r	   rT   rU   é   ©r   Únbytes©r   r   r)   r   r   r   Útest_nbytes_integerÏ  s    z,TestSparseArrayAnalytics.test_nbytes_integerc                 C   s&   t g d¢dd�}|j}|dks"J ‚d S )N)r   r	   r   r   r   r¤   rU   rT  rU  rW  r   r   r   Útest_nbytes_blockÕ  s    z*TestSparseArrayAnalytics.test_nbytes_blockc                 C   s    t t g d¢¡ƒ}t |¡ d S )N)Z2012NNZ2013)r   rL   Úto_datetimer   rM   )r   r  r   r   r   Útest_asarray_datetime64Ü  s    z0TestSparseArrayAnalytics.test_asarray_datetime64c                 C   s   t ddgƒ}|jdksJ ‚d S )Nr   r   rd   )r   rf   r"   r   r   r   Útest_densityà  s    z%TestSparseArrayAnalytics.test_densityc                 C   s   t ddgƒ}|jdksJ ‚d S ©Nr   r   )r   Únpointsr"   r   r   r   Útest_npointsä  s    z%TestSparseArrayAnalytics.test_npointsN)r  r  r  rF   r  r  r(  r-  r/  r0  r5  r   r   r   r8  r9  r<  rÇ   r   rC  rG  rH  rL  rM  rS  rX  rY  r[  r\  r_  r   r   r   r   r#  »  s‚   ýþ
ýþ
ýþ
ýþ
 þ		þþûþ	
r#  c                   @   sˆ   e Zd Zej dg d¢¡dd„ ƒZejdd„ ƒZ	ejej ddg d	¢g d
¢dddœfdg d¢g d¢dddœfg¡dd„ ƒƒZ
dd„ ZdS )ÚTestAccessorÚattr)r^  rf   r   r.   c                 C   s<   t ddgƒ}t |¡}t|j|ƒ}t||ƒ}||ks8J ‚d S r]  )r   rL   rP   rþ   rh   )r   ra  r   Úserr)   r*   r   r   r   Útest_get_attributesê  s
    

z TestAccessor.test_get_attributesc           	      C   s‚   dd l }g d¢}g d¢}g d¢}|jj|||ffdd�}tjj |¡}tj g d¢g d¢g¡}tjg d	¢|d
d�}t 	||¡ d S )Nr   )r   r
   r   r   )r   r
   r   r	   )r   r   r   r  r%   r   )r   r   r   r
   )r   r	   r   r
   )r   r  r   r   zSparse[int])ru   r   )
rg   rh   Ú
coo_matrixrL   rP   Zfrom_cooÚ
MultiIndexZfrom_arraysr&   Zassert_series_equal)	r   rn   ÚrowÚcolrA   Zsp_arrayr)   ru   r*   r   r   r   Útest_from_cooó  s    zTestAccessor.test_from_cooz>sort_labels, expected_rows, expected_cols, expected_values_posF)©Úbr	   ©rŽ   r	   ©rj  r   ©rŽ   r   )©rt   r   ©rt   r	   ©r9   r	   ©rt   r   )r   r   )r
   r
   )r   r
   T)rm  rk  rl  ri  )rp  rq  rn  ro  )r   r	   ©r   r   c                 C   sÂ   dd l }tdtjddd dgdd�}tj g d¢¡}tj||d�}t d¡}	| 	¡ D ]\}
\}}|
|	||f< qR|j
jdd	|d
�\}}}t||j
jƒs–J ‚t | ¡ |	¡ ||ks²J ‚||ks¾J ‚d S )Nr   r   r
   r   ))rj  r	   rt   r   )rŽ   r	   rt   r	   )rŽ   r	   rt   r   )rŽ   r	   r9   r	   )rj  r   rt   r   )rŽ   r   rt   r   ©ru   )r   r   rr  )r	   r
   )Z
row_levelsZcolumn_levelsÚsort_labels)rg   r   r   r   rL   re  Úfrom_tuplesrP   ÚzerosÚitemsrh   Zto_coorù   rd  r&   rm   rk   )r   rt  Zexpected_rowsZexpected_colsZexpected_values_posrn   Úvaluesru   ÚssZ
expected_AÚvaluerf  rg  r2   ÚrowsÚcolsr   r   r   Útest_to_coo  s     ÿ

ÿzTestAccessor.test_to_cooc                 C   sH   t  g d¢¡}tjtdd�� |jj W d   ƒ n1 s:0    Y  d S )Nr$   z.sparserD   )rL   rP   rF   rG   ÚAttributeErrorrh   rf   )r   rb  r   r   r   Útest_non_sparse_raises3  s    z#TestAccessor.test_non_sparse_raisesN)r  r  r  rF   r  r  rc  r  r   rh  r}  r  r   r   r   r   r`  é  s*   

üüùþr`  c                  C   sL   t dtjdgdd�} tj| _|  ¡ }t |¡}t g d¢¡}t ||¡ d S )Nr]   r5   r   r.  )	r   r   r   r   r   rM   r   r&   rm   ©r   r)   r*   r   r   r   Ú*test_setting_fill_value_fillna_still_works9  s    
r�  c                  C   sT   t dtjgdd�} tj| _t jt tjg¡tddgƒtttjƒd�}t	 
| |¡ d S )Nr5   r   r   r	   r   )Zsparse_arrayrR   r   )r   r   r   r   rÁ   r   r   r   rÇ   r&   r'   )r   r*   r   r   r   Útest_setting_fill_value_updatesG  s    

ýr‚  zarr, loc)Nr   r	   )r   Nr	   r   )r   r   Nr	   )r   r   r   NNr
   )r   r   r   r	   r-   c                 C   s   t | ƒ ¡ }||ksJ ‚d S r6   )r   Z_first_fill_value_loc)r   Úlocr)   r   r   r   Útest_first_fill_value_locT  s    r„  r   r   c                 C   sF   t | |d� ¡ }t | ¡ ¡ }t|t ƒs,J ‚t |¡}t ||¡ d S rÛ   )	r   ÚuniquerL   rP   rù   r   rM   r&   rm   )r   r   rŽ   rj  r   r   r   Útest_unique_na_filld  s
    
r†  c                  C   s.   t ddgƒ} |  ¡ }t dgƒ}t ||¡ d S r­   )r   r…  r&   r'   r€  r   r   r   Útest_unique_all_sparsep  s    
r‡  c                  C   s–   t g d¢ƒ} t g d¢dd�}|  ddddœ¡}t ||¡ |  t ddddœ¡¡}t ||¡ |  t ddddœ¡¡}t g d¢dd�}t ||¡ d S )Nrˆ   )rc   r€   é   rc   r   r€   rˆ  )r   Úmapr&   r'   rL   rP   ©r   r*   r)   r   r   r   Útest_mapx  s    r‹  c                  C   s<   t g d¢ƒ} t g d¢dd�}|  dddœ¡}t ||¡ d S )Nrˆ   )rc   r€   Nrc   r   r€   rr  )r   r‰  r&   r'   rŠ  r   r   r   Útest_map_missingŠ  s    rŒ  c                 C   st   t tjdg| d�}t dg| d�}t | ¡ |¡ t ddg|dœ¡}tjdg|dœtdgƒd�}t 	| ¡ |¡ d S )Nr   r   r]   r   )rŽ   rj  rs  )
r   r   r   r&   r'   ZdropnarL   Ú	DataFramer   Zassert_equal)r   r   rY   ÚdfZexpected_dfr   r   r   Útest_dropna’  s    r�  c                  C   sJ   t  t d¡¡ dd„ ¡} |  ¡ }t  dd„ tdƒD ƒ¡}t ||¡ d S )N)r   r   c                 S   s   t | dd�S )Nr   r   ©r   )r9   r   r   r   r?     r<   z1test_drop_duplicates_fill_value.<locals>.<lambda>c                 S   s   i | ]}|t d gdd�“qS )r5   r   r   r�  )r8   rÞ   r   r   r   Ú
<dictcomp>¢  r<   z3test_drop_duplicates_fill_value.<locals>.<dictcomp>r   )	rL   r�  r   rv  ÚapplyZdrop_duplicatesrà   r&   Zassert_frame_equal)rŽ  r)   r*   r   r   r   Útest_drop_duplicates_fill_valuež  s    r“  c                   @   sP  e Zd Zej de d¡dgdgfe d¡ dgdgfe dddej	dg¡dgdgfe ej	gd ¡ej	gej	gfe g ¡ej	gej	gfg¡d	d
„ ƒZ
ej dddg¡dd„ ƒZdd„ Zej dddg¡ej de g ¡e ej	ej	g¡g¡ej deejej	ƒej	feejdƒej	fedejƒejfede d¡ƒejfg¡dd„ ƒƒƒZdS )Ú
TestMinMaxz"raw_data,max_expected,min_expectedg      @r   r   r‘   r   r	   r   c                 C   s�   t |ƒ}| ¡ }| ¡ }||v s$J ‚||v s0J ‚|jdd�}|jdd�}t |¡ ¡ rtt |¡sdJ ‚t |¡sŒJ ‚n||v s€J ‚||v sŒJ ‚d S )NF©Zskipna)r   ÚmaxÚminr   r    r²   )r   Úraw_dataÚmax_expectedÚmin_expectedr   Ú
max_resultÚ
min_resultr   r   r   Útest_nan_fill_value§  s    zTestMinMax.test_nan_fill_valuez$fill_value,max_expected,min_expected)rä   rä   r   )éœÿÿÿr   rž  c                 C   sJ   t t |ddg¡td|ƒd�}| ¡ }||ks2J ‚| ¡ }||ksFJ ‚d S )Nr   r   r%   r   )r   r   r   r   r–  r—  )r   r   r™  rš  r   r›  rœ  r   r   r   Útest_fill_valueÁ  s    ÿzTestMinMax.test_fill_valuec                 C   s€   d}t t |||g¡td|ƒd�}t|jƒdks4J ‚| ¡ |ksDJ ‚| ¡ |ksTJ ‚|jdd�|kshJ ‚|jdd�|ks|J ‚d S )Nrä   r%   r   r   Fr•  )r   r   r   r   r‚   Z_valid_sp_valuesr–  r—  )r   Zfvr   r   r   r   Útest_only_fill_valueÒ  s    zTestMinMax.test_only_fill_valueÚfuncr—  r–  rA   zdtype,expectedrK   z
2018-05-05c                 C   sN   t ||d�}t||ƒƒ }|tju r<|tju sJt |¡sJJ ‚nt |¡sJJ ‚d S r×   )r   rþ   rL   r  r   Zisnatr    )r   r¡  rA   r   r*   r   r)   r   r   r   Ú test_na_value_if_no_valid_valuesÜ  s
    
z+TestMinMax.test_na_value_if_no_valid_valuesN)r  r  r  rF   r  r  r   r«   r   r   r�  rŸ  r   r   r   rL   r  rZ  r¢  r   r   r   r   r”  ¦  s:   ûþ

þþ


$üþ	r”  )'rÿ   rA  r  r=  r   rF   Zpandas._libs.sparser   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr  ZpandasrL   r   Zpandas._testingZ_testingr&   Zpandas.core.apir   Zpandas.core.arrays.sparser   r   r   r#  r`  r�  r‚  r  r  r„  r   r†  r‡  r‹  rŒ  r�  r“  r”  r   r   r   r   Ú<module>   s`          -  0P




úþ
*ÿ
