
    Owg%                     t    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y)
    N)NaTSparseDtype	Timestampisna)SparseArrayc            	       $   e Zd Zej                  j                  dg dddfg dddfg dd	d
fg      d        Zej                  j                  dg dddfg dddfg dd	d
fg      d        Zej                  j                  dg dddfg dddfg ddd
fg      d        Zej                  j                  dg dddfg dddfg ddd
fg      d        Z	d Z
ej                  j                  d ej                  ddej                  dg       ej                  g d      g      ej                  j                  dddej                  g      ej                  j                  dddej                  fg      d                      Zd Zd Zd Zd Zy )!TestReductionszdata,pos,neg)TTTTF)      r
   r
   r   )      ?       @r   r           c                     t        |      j                         }|sJ t        ||      j                         }|sJ ||d<   t        |      j                         }|rJ t        ||      j                         }|rJ y N
fill_valuer
   )r   allselfdataposnegouts        a/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/arrays/sparse/test_reductions.pytest_allzTestReductions.test_all   {     $##%
s$3/335
sQ$##%w$3/335w3    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        y # 1 sw Y   y xY w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     ff[&'
sff[#67
sQff[&'wff[#67w 5]]:S1 	8FF;t$"((2,7	8 	8 	8s   /4C,,C5)FTF)r   r   r   r   )r   r   r   r   c                     t        |      j                         }|sJ t        ||      j                         }|sJ ||d<   t        |      j                         }|rJ t        ||      j                         }|rJ y 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        y # 1 sw Y   y xY wr   )r$   r-   r   r%   r&   r'   r)   s         r   test_numpy_anyzTestReductions.test_numpy_anyX   s     ff[&'
sff[#67
sQff[&'wff[#67w4]]:S1 	/FF;t$#.	/ 	/ 	/s   /!CC"c                 ^   t        j                  d      j                  t              }t	        |      j                         }|dk(  sJ t         j                  |d<   t	        |d      j                         }|dk(  sJ t	        |t         j                        j                         }|dk(  sJ y )N
        F@   r   r         D@)r$   arangeastypefloatr   sumnanr   r   r   s      r   test_sumzTestReductions.test_sums   s    yy}##E*$##%d{{&&Q$1-113d{{$2662668d{{r   arr)r   r
   r
   r   zmin_count, expected)   r      c                     t        ||      }|j                  |      }t        j                  |      rt        j                  |      sJ y ||k(  sJ y )Nr   	min_count)r   r9   r$   isnan)r   r=   r   rB   expectedsparrayresults          r   test_sum_min_countz!TestReductions.test_sum_min_count   sL     cj9y188H88F###X%%%r   c                     t        ddgdz  t        j                  d      }|j                  d      }|dk(  sJ |j                  d      }t	        |      sJ y )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   sT     1dS	mmam(axxmmbm)Cyyr   c                    t        j                  d      j                  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        d
}t        j                  t        |      5  t        j                  t        |      |       d d d        y # 1 sw Y   PxY w# 1 sw Y   y xY w)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   yy}##E*ff[&'d{{&&Qff[!45d{{ff["&&9:d{{6]]:S1 	6FF;t$BHH5	6 5]]:S1 	/FF;t$#.	/ 	/		6 	6	/ 	/s   /E.!E$E!$E-c                     t        j                  d      j                  t              }t	        |      j                         }|dk(  sJ t         j                  |d<   t	        |      j                         }|dk(  sJ y )Nr2         @r4   rq@)r$   r6   r7   r8   r   meanr:   r;   s      r   	test_meanzTestReductions.test_mean   se    yy}##E*$$$&czz&&Q$$$&hr   c                 r   t        j                  d      j                  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        d}t        j                  t        |      5  t        j                  t        |      |	       d d d        y # 1 sw Y   PxY w# 1 sw Y   y xY w)
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    yy}##E*ggk$'(czz&&Qggk$'(h6]]:S1 	7GGK%RXX6	7 5]]:S1 	0GGK%3/	0 	0		7 	7	0 	0s   #/D!7!D-!D*-D6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-1c3'	
 [[u-1c3'	
88( [[!4/1c3'	
 [[!4/1c3'	
//&
 [[	1a#	$hbhhy&9: [[\Aq"&&>:[[2Va[4IJ& K ;	&/(0r   r	   c                      e Zd Zej                  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                  j                  d
ddg      d        Zd Zej                  j                  dddg      ej                  j                  d ej                  g        ej                  ej                  ej                  g      g      ej                  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y)
TestMinMaxz"raw_data,max_expected,min_expectedg      @r?   r   r
   r   r4   c                 v   t        |      }|j                         }|j                         }||v sJ ||v sJ |j                  d      }|j                  d      }t        j                  |      j                         r/t        j                  |      sJ t        j                  |      sJ y ||v sJ ||v sJ y )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     (#WWY
WWY
\)))\)))WWEW*
WWEW*
88H!!#88J'''88J'''------r   z$fill_value,max_expected,min_expected)d   rp   r   )r
   rq   c                     t        t        j                  |ddg      t        d|            }|j	                         }||k(  sJ |j                         }||k(  sJ y )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^     HHj!Q'(E:0N
 WWY
\)))WWY
\)))r   c                 F   d}t        t        j                  |||g      t        d|            }t	        |j
                        dk(  sJ |j                         |k(  sJ |j                         |k(  sJ |j                  d      |k(  sJ |j                  d      |k(  sJ y )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E28NO3''(A---wwyBwwyB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 y y t        j
                  |      sJ y )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   sW     $e,#d#%s?S=BHHV$444$4=88F###r   N)r\   r]   r^   r%   r_   r`   r$   r6   r(   r:   ro   rt   ry   r   float64r   r   r~   ra   r   r   rc   rc      s   [[,RYYs^aS1#&biin_qcB4(RXXq!Q*+aS1#6RXXrvvhl#bffXx8RXXb\BFF8bffX.	
	.	.  [[.	
**+ [[VeU^4[[VhbhhrlHBHHbffbff=M4N%OP[[RVV,bff5S)2662)3/5)9\+BCSI		
$ Q 5$r   rc   c                      e Zd Zej                  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                  j                  d eg       df eg       dfg      d        Z
y)TestArgmaxArgminz#arr,argmax_expected,argmin_expected)r
   r   r   r
   r   r
   r   )r   r   r   r   r   r4   r   r>   r2   c                 `    |j                         }|j                         }||k(  sJ ||k(  sJ y )N)argmaxargmin)r   r=   argmax_expectedargmin_expectedargmax_resultargmin_results         r   test_argmax_argminz#TestArgmaxArgmin.test_argmax_argmin  s6    , 



//////r   z
arr,methodr   r   c                     d| d}t        j                  t        |      5  |dk(  r|j                         n|j	                          d d d        y # 1 sw Y   y xY w)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+  sS    
  x'<=]]:S1 	A"h.CJJLCJJL	A 	A 	As   &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266267A>"&&!Q2661561="&&!Q26615"Eq!L"&&!Q26615!DaK"&&!Q26615!DaK"&&!Q26615!DaK"&&!Q26615!DaK!rRDQ7B?!rRDR8!R@!rRDQ7B?"bQ7A>!sRxA61="bR8!Q?!sRxA61=!	
*0+*0 [[
b/8	${2&ABA	Ar   r   )numpyr$   r%   pandasr   r   r   r   pandas.core.arrays.sparser   r	   rc   r   ra   r   r   <module>r      s@       2t0 t0nH$ H$V#A #Ar   