
    bMh%                         d dl Zd dlZd dlmZmZmZmZ d dlm	Z	  G d d          Z
 G d d          Z G d d	          ZdS )
    N)NaTSparseDtype	Timestampisna)SparseArrayc            	          e Zd Zej                            dg dddfg dddfg dd	d
fg          d             Zej                            dg dddfg dddfg dd	d
fg          d             Zej                            dg dddfg dddfg ddd
fg          d             Zej                            dg dddfg dddfg ddd
fg          d             Z	d Z
ej                            d ej        ddej        dg           ej        g d          g          ej                            dddej        g          ej                            dddej        fg          d                                     Zd Zd Zd Zd Zd S )!TestReductionszdata,pos,neg)TTTTF)      r
   r
   r   )      ?       @r   r           c                 @   t          |                                          }|sJ t          ||                                          }|sJ ||d<   t          |                                          }|rJ t          ||                                          }|rJ d S N
fill_valuer
   )r   allselfdataposnegouts        j/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/arrays/sparse/test_reductions.pytest_allzTestReductions.test_all        $##%%


$3///3355


Q$##%%$3///3355    c                    t          j        t          |                    }|sJ t          j        t          ||                    }|sJ ||d<   t          j        t          |                    }|rJ t          j        t          ||                    }|rJ d}t          j        t
          |          5  t          j        t          |          t          j        g                      d d d            d S # 1 swxY w Y   d S Nr   r
   $the 'out' parameter is not supportedmatchr   )npr   r   pytestraises
ValueErrorarrayr   r   r   r   r   msgs         r   test_numpy_allzTestReductions.test_numpy_all%   s<    f[&&''


f[#66677


Qf[&&''f[#66677 5]:S111 	8 	8F;t$$"(2,,7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   ;6C>>DD)FTF)r   r   r   r   )r   r   r   r   c                 @   t          |                                          }|sJ t          ||                                          }|sJ ||d<   t          |                                          }|rJ t          ||                                          }|rJ d S r   )r   anyr   s        r   test_anyzTestReductions.test_anyA   r   r   c                    t          j        t          |                    }|sJ t          j        t          ||                    }|sJ ||d<   t          j        t          |                    }|rJ t          j        t          ||                    }|rJ d}t          j        t
          |          5  t          j        t          |          |           d d d            d S # 1 swxY w Y   d S r   )r$   r-   r   r%   r&   r'   r)   s         r   test_numpy_anyzTestReductions.test_numpy_anyX   s2    f[&&''


f[#66677


Qf[&&''f[#666774]:S111 	/ 	/F;t$$#....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   ;$C,,C03C0c                    t          j        d                              t                    }t	          |                                          }|dk    sJ t           j        |d<   t	          |d                                          }|dk    sJ t	          |t           j                                                  }|dk    sJ d S )N
        F@   r   r         D@)r$   arangeastypefloatr   sumnanr   r   r   s      r   test_sumzTestReductions.test_sums   s    y}}##E**$##%%d{{{{&Q$1---1133d{{{{$262226688d{{{{{{r   arr)r   r
   r
   r   zmin_count, expected)   r      c                     t          ||          }|                    |          }t          j        |          rt          j        |          sJ d S ||k    sJ d S )Nr   	min_count)r   r9   r$   isnan)r   r=   r   rB   expectedsparrayresults          r   test_sum_min_countz!TestReductions.test_sum_min_count   sn     cj999y118H 	&8F#######X%%%%%%r   c                     t          ddgdz  t          j        d          }|                    d          }|dk    sJ |                    d          }t	          |          sJ d S )NFTr4   )dtyper   r
   rA      )r   r$   bool_r9   r   )r   	spar_boolress      r   test_bool_sum_min_countz&TestReductions.test_bool_sum_min_count   sl     1dSSS	mmam((axxxxmmbm))Cyyr   c                    t          j        d                              t                    }t          j        t          |                    }|dk    sJ t           j        |d<   t          j        t          |d                    }|dk    sJ t          j        t          |t           j                            }|dk    sJ d}t          j        t          |          5  t          j        t          |          t           j
        	           d d d            n# 1 swxY w Y   d
}t          j        t          |          5  t          j        t          |          |           d d d            d S # 1 swxY w Y   d S )Nr2   r3   r4   r   r   r5   &the 'dtype' parameter is not supportedr!   rI   r    r#   )r$   r6   r7   r8   r9   r   r:   r%   r&   r'   int64r   r   r   r*   s       r   test_numpy_sumzTestReductions.test_numpy_sum   s   y}}##E**f[&&''d{{{{&Qf[!44455d{{{{f["&999::d{{{{6]:S111 	6 	6F;t$$BH5555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 5]:S111 	/ 	/F;t$$#....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s$   ".DD #D $E55E9<E9c                     t          j        d                              t                    }t	          |                                          }|dk    sJ t           j        |d<   t	          |                                          }|dk    sJ d S )Nr2         @r4   rq@)r$   r6   r7   r8   r   meanr:   r;   s      r   	test_meanzTestReductions.test_mean   sx    y}}##E**$$$&&czzzz&Q$$$&&hr   c                    t          j        d                              t                    }t          j        t          |                    }|dk    sJ t           j        |d<   t          j        t          |                    }|dk    sJ d}t          j        t          |          5  t          j        t          |          t           j
                   d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        t          |          |	           d d d            d S # 1 swxY w Y   d S )
Nr2   rV   r4   rW   rP   r!   rQ   r    r#   )r$   r6   r7   r8   rX   r   r:   r%   r&   r'   rR   rS   s       r   test_numpy_meanzTestReductions.test_numpy_mean   s   y}}##E**gk$''((czzzz&Qgk$''((h6]:S111 	7 	7GK%%RX6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 5]:S111 	0 	0GK%%3////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s$   +.C%%C),C)$D>>EEN)__name__
__module____qualname__r%   markparametrizer   r+   r.   r0   r<   r$   r(   r:   rG   rN   rT   rY   r[    r   r   r	   r	      s       [u-YY1__c3'	
    [u-YY1__c3'	
 8 8 8( [!!!4/YY1__c3'	
    [!!!4/YY1__c3'	
 / / /&
 
 
 [	1a#	$	$hbhyyy&9&9:  [\Aq"&>::[2Va[4IJJ& & KJ ;:	 &  / / /(  0 0 0 0 0r   r	   c                      e Zd Zej                            d ej        d          dgdgf ej        d           dgdgf ej        dddej	        dg          dgdgf ej        ej	        gdz            ej	        gej	        gf ej        g           ej	        gej	        gfg          d	             Z
ej                            d
ddg          d             Zd Zej                            dddg          ej                            d ej        g            ej        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          ef ed ed                    efg          d                                     ZdS )
TestMinMaxz"raw_data,max_expected,min_expectedg      @r?   r   r
   r   r4   c                    t          |          }|                                }|                                }||v sJ ||v sJ |                    d          }|                    d          }t          j        |                                          r.t          j        |          sJ t          j        |          sJ d S ||v sJ ||v sJ d S )NFskipna)r   maxminr$   rC   r-   )r   raw_datamax_expectedmin_expectedr=   
max_result
min_results          r   test_nan_fill_valuezTestMinMax.test_nan_fill_value   s     (##WWYY
WWYY
\))))\))))WWEW**
WWEW**
8H!!## 	.8J'''''8J'''''''----------r   z$fill_value,max_expected,min_expected)d   rp   r   )r
   rq   c                     t          t          j        |ddg          t          d|                    }|                                }||k    sJ |                                }||k    sJ d S )Nr   r
   intrQ   )r   r$   r(   r   rh   ri   )r   r   rk   rl   r=   rm   rn   s          r   test_fill_valuezTestMinMax.test_fill_value   s|     Hj!Q'((E:0N0N
 
 
 WWYY
\))))WWYY
\))))))r   c                 ~   d}t          t          j        |||g          t          d|                    }t	          |j                  dk    sJ |                                |k    sJ |                                |k    sJ |                    d          |k    sJ |                    d          |k    sJ d S )Nrp   rs   rQ   r   Frf   )r   r$   r(   r   len_valid_sp_valuesrh   ri   )r   fvr=   s      r   test_only_fill_valuezTestMinMax.test_only_fill_value   s    "(BB<00E28N8NOOO3'((A----wwyyBwwyyBwwew$$****wwew$$******r   funcri   rh   r   zdtype,expectedzdatetime64[ns]z
2018-05-05c                     t          ||          } t          ||                      }|t          u r#|t          u st          j        |          sJ d S d S t          j        |          sJ d S )NrQ   )r   getattrr   r$   isnatrC   )r   rz   r   rI   rD   r=   rF   s          r    test_na_value_if_no_valid_valuesz+TestMinMax.test_na_value_if_no_valid_values   su     $e,,,#d##%%s??S==BHV$4$4=======8F#######r   N)r\   r]   r^   r%   r_   r`   r$   r6   r(   r:   ro   rt   ry   r   float64r   r   r~   ra   r   r   rc   rc      s3       [,RYs^^aS1#&binn_qcB4(RXq!Q*++aS1#6RXrvhl##bfXx8RXb\\BF8bfX.	
	 	. .	 	.  [.	
 * * *+ + + [VeU^44[VhbhrllHBHbfbf=M4N4N%OPP[[RV,,bf5[S))262[)3//5[)99\+B+BCCSI		
 $ $  QP 54$ $ $r   rc   c                      e Zd Zej                            d eg d          ddf eg d          ddf eej        dddej        dg          ddf eej        dddej        dg          ddf eej        dddej        dgd	          ddf eej        dddej        dgd	          ddf eej        dddej        dgd	          ddf eej        dddej        dgd	          ddf eej        dddej        dgd
	          ddf edgdz  dgz   d	          ddf edgdz  dgz   d	          ddf edgdz  dgz   d	          ddf edgdgdz  z   d	          ddf edgdgdz  z   d	          ddf edgdgdz  z   d	          ddf edgdgdz  z   d	          ddfg          d             Z	ej                            d eg           df eg           dfg          d             Z
dS )TestArgmaxArgminz#arr,argmax_expected,argmin_expected)r
   r   r   r
   r   r
   r   )r   r   r   r   r   r4   r   r>   r2   c                 v    |                                 }|                                }||k    sJ ||k    sJ d S )N)argmaxargmin)r   r=   argmax_expectedargmin_expectedargmax_resultargmin_results         r   test_argmax_argminz#TestArgmaxArgmin.test_argmax_argmin  sF    , 



//////////r   z
arr,methodr   r   c                     d| d}t          j        t          |          5  |dk    r|                                n|                                 d d d            d S # 1 swxY w Y   d S )Nzattempt to get z of an empty sequencer!   r   )r%   r&   r'   r   r   )r   r=   methodr*   s       r   test_empty_arrayz!TestArgmaxArgmin.test_empty_array+  s    
 >===]:S111 	A 	A"h..CJJLLLCJJLL	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   /AA"%A"N)r\   r]   r^   r%   r_   r`   r   r$   r:   r   r   ra   r   r   r   r     s       [-[))1a0[,,,--q!4["&!Q262677A>["&!Q2615661=["&!Q2615"EEEq!L["&!Q2615!DDDaK["&!Q2615!DDDaK["&!Q2615!DDDaK["&!Q2615!DDDaK[!rRDQ777B?[!rRDR888!R@[!rRDQ777B?["bQ777A>[!sRxA6661=["bR888!Q?[!sRxA6661=!	
 *0 0+ *0 [
+b//8	${{2&AB A A	 A A Ar   r   )numpyr$   r%   pandasr   r   r   r   pandas.core.arrays.sparser   r	   rc   r   ra   r   r   <module>r      s                   2 1 1 1 1 1t0 t0 t0 t0 t0 t0 t0 t0nH$ H$ H$ H$ H$ H$ H$ H$V#A #A #A #A #A #A #A #A #A #Ar   