
    o[we                     L   d dl mZ d dlZd dlZd dlmc mZ d dl	m
Z
 d dlZd dlmZmZ d dlmZ d dlmZ d dlmZ ej        Zej        d             Zej        d             Zej        d	             Zej        d
             Zej        d             Zej        d             Zej        d             Zej        d             Z ej        d             Z!ej        d             Z"ej        d             Z#ej        d             Z$ej        d             Z%ej        d             Z&ej        d             Z'ej        d             Z(ej        d             Z)ej        d             Z*ej        d             Z+ej        d             Z,ej        d             Z-ej        d             Z.ej        d             Z/ej        d             Z0ej        d             Z1ej        d              Z2ej        d!             Z3ej        d"             Z4ej        d#             Z5 G d$ d%          Z6ej7        8                    d&g d'          d(             Z9ej7        8                    d&g d)          ej7        8                    d*g d+          d,                         Z:ej7        8                    d-g d.          d/             Z;ej7        8                    d-g d0          d1             Z< G d2 d3          Z= G d4 d5          Z> G d6 d7          Z? G d8 d9          Z@ G d: d;          ZAd< ZBej7        8                    d=ejC        d>fejD        d>fejE        d?fejF        d?fejG        d?fejH        d?fejI        d@fejJ        dAfejK        d@fejL        dAfg
          dB             ZMej7        8                    dCejN        ejO        ejD        ejF        ejH        ejP        ejQ        ejR        ejS        ejT        ejL        ejK        ejU        ejV        ejW        g          dD             ZXej7        8                    dEdFd g          dG             ZYej7        8                    dHd ejZ        g dI           ejZ        dJgdKdLgz  z             g          ej7        8                    dMdNdOg          dP                         Z[ej\        ej]        ej7        8                    dMdNdQg          dR                                     Z^ej7        8                    dSdTdUg          dV             Z_ej7        8                    dWg dX          dY             Z`ej7        8                    dZeja        ejb        ejc        ejd        eje         efed[d          g          ej7        8                    d\g d]          d^                         ZgdS )_    )partialN)is_integer_dtype)Seriesisna)nanops)DatetimeArrayc              #      K   |                                  5 }|                    t          dd           d V  d d d            d S # 1 swxY w Y   d S )N_USE_BOTTLENECKF)contextsetattrr   )monkeypatchms     8lib/python3.11/site-packages/pandas/tests/test_nanops.pydisable_bottleneckr      s      					 !			&+U333                 s   !AA	A	c                      dS )N       r       r   	arr_shaper      s    5r   c                 f    t           j                            d                              |           S N   )nprandomdefault_rngstandard_normalr   s    r   	arr_floatr    "   s&    9  ##33I>>>r   c                     | | dz  z   S )N              ?r   r    s    r   arr_complexr$   '   s    y2~%%r   c                 j    t           j                            d                              dd|           S )Nr   
   r   r   r   integersr   s    r   arr_intr*   ,   s*    9  ##,,S"i@@@r   c                 r    t           j                            d                              dd|           dk    S )Nr   r   r(   r   s    r   arr_boolr,   1   s/    9  ##,,Q9==BBr   c                 P    t          j        |                               d          S )NSr   absastyper#   s    r   arr_strr2   6        6)##C(((r   c                 P    t          j        |                               d          S )NUr/   r#   s    r   arr_utfr6   ;   r3   r   c                     t           j                            d                              dd|                               d          S )Nr   r    N  M8[ns]r   r   r   r)   r1   r   s    r   arr_dater;   @   8    9  ##,,QyAAHHRRRr   c                     t           j                            d                              dd|                               d          S )Nr   r   r8   m8[ns]r:   r   s    r   
arr_tdeltar?   E   r<   r   c                 @    t          j        t           j        |           S N)r   tilenanr   s    r   arr_nanrD   J   s    7269%%%r   c                 .    t          j        | |g          S rA   r   vstack)r    rD   s     r   arr_float_nanrH   O       9i)***r   c                 .    t          j        | |g          S rA   rF   )rD   r    s     r   arr_nan_float1rK   T   s    9gy)***r   c                 .    t          j        | | g          S rA   rF   rD   s    r   arr_nan_nanrN   Y       9gw'(((r   c                      | t           j        z  S rA   )r   infr#   s    r   arr_infrR   ^   s    rvr   c                 .    t          j        | |g          S rA   rF   )r    rR   s     r   arr_float_infrT   c   rI   r   c                 .    t          j        | |g          S rA   rF   rD   rR   s     r   arr_nan_infrW   h   rO   r   c                 0    t          j        | ||g          S rA   rF   )r    rD   rR   s      r   arr_float_nan_infrY   m   s    9i'2333r   c                 0    t          j        | | |g          S rA   rF   rV   s     r   arr_nan_nan_infr[   r   s    9gw0111r   c                 j   t          j        |                     d          |                    d          |                    d          |                    d          |                    d          |                    d          |                    d          |                    d          g          S )NO)r   rG   r1   )r    r*   r,   r$   r2   r6   r;   r?   s           r   arr_objr^   w   s     9S!!NN3OOC  s##NN3NN3OOC  c""		
  r   c                 p    t          j        d          5  | | dz  z   cd d d            S # 1 swxY w Y   d S Nignoreinvalidr"   r   errstaterM   s    r   arr_nan_nanjrf      s    	X	&	&	& & &2%& & & & & & & & & & & & & & & & & &s   +//c                     t          j        d          5  t          j        | |g          cd d d            S # 1 swxY w Y   d S Nra   rb   r   re   rG   )r$   rf   s     r   arr_complex_nanrj          	X	&	&	& 6 6y+|4556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6   9= =c                 j    t          j        d          5  | dz  cd d d            S # 1 swxY w Y   d S r`   rd   )rR   s    r   arr_nan_infjrn      s    	X	&	&	&  |                 s   (,,c                     t          j        d          5  t          j        | |g          cd d d            S # 1 swxY w Y   d S rh   ri   )r$   rn   s     r   arr_complex_nan_infjrp      rk   rl   c                     | d d df         S Nr   r   r#   s    r   arr_float_1drs      s    QQQT?r   c                     | d d df         S rr   r   rM   s    r   
arr_nan_1dru      s    111a4=r   c                     | d d df         S rr   r   )rH   s    r   arr_float_nan_1drw      s    Ar   c                     | d d df         S rr   r   )arr_float1_nans    r   arr_float1_nan_1drz          !!!Q$r   c                     | d d df         S rr   r   )rK   s    r   arr_nan_float1_1dr}      r{   r   c                      e Zd Zd Zd Zd%dZ	 	 d&dZ	 d'dZ	 	 	 	 	 d(dZd%d	Z	e
j                            d
ej        ej        fej        ej        fg          d             Zd Zd Ze
j                            d          d             Ze
j                            d ed                    d             Ze
j                            d ed                    d             Ze
j                            d ed                    d             Ze
j                            d          e
j                            d
ej        ej        fej        ej        fg          d                         Z d)dZ!e
j                            d          d             Z"e
j                            d          d             Z#d)dZ$d Z%d Z&d Z'd Z(d Z)d Z*d  Z+d! Z,d" Z-d# Z.d$ Z/dS )*TestnanopsDataFramec                    dt           _        d}t          j                            d                              |          | _        t          j                            d                              |          | _        | j        | j        dz  z   | _        t          j                            d          	                    dd|          | _
        t          j                            d          	                    dd|          dk    | _        t          j        | j                                      d          | _        t          j        | j                                      d	          | _        t          j                            d          	                    dd
|                              d          | _        t          j                            d          	                    dd
|                              d          | _        t          j        t          j        |          | _        t          j        | j        | j        g          | _        t          j        | j        | j        g          | _        t          j        | j        | j        g          | _        t          j        | j        | j        g          | _        | j        t          j        z  | _        t          j        | j        | j        g          | _        t          j        | j        | j        g          | _        t          j        | j        | j        | j        g          | _        t          j        | j        | j        | j        g          | _        t          j        | j                            d          | j
                            d          | j                            d          | j                            d          | j                            d          | j                            d          | j                            d          | j                            d          g          | _         t          j!        d          5  | j        | j        dz  z   | _"        t          j        | j        | j"        g          | _#        | j        dz  | _$        t          j        | j        | j$        g          | _%        d d d            n# 1 swxY w Y   | j        | _&        | j        | _'        | j        | _(        | j        | _)        | j        | _*        | j        | _+        | j        d d df         | _,        | j        d d df         | _-        | j        d d df         | _.        | j        d d df         | _/        | j        d d df         | _0        | j        d d df         | _1        d S )NFr   r   r"   r&   r'   r   r.   r5   r8   r9   r>   r]   ra   rb   )2r   r
   r   r   r   r   r    
arr_float1r$   r)   r*   r,   r0   r1   r2   r6   r;   r?   rB   rC   rD   rG   rH   ry   rK   rN   rQ   rR   rT   rW   rY   r[   r^   re   rf   rj   rn   rp   arr_float_2darr_float1_2d
arr_nan_2darr_float_nan_2darr_float1_nan_2darr_nan_float1_2drs   arr_float1_1dru   rw   rz   r}   )selfr   s     r   setup_methodz TestnanopsDataFrame.setup_method   s   !&	..q11AA)LL)//22BB9MM>DOb,@@y,,Q//88b)LL	--a0099!Q	JJaOvdn--44S99vdn--44S99I!!!$$--a	BBII(SS 	 I!!!$$--a	BBII(SS 	 wrvy11Y'EFF i$,(GHH it(GHH9dlDL%ABB~.Y'EFF9dlDL%ABB!#DNDL$,+W!X!X!y$,dl)STTy%%c**##C(($$S)) '',,##C((##C(($$S))&&s++	
 
 [*** 	Y 	Y $t|b/@ @D#%9d.>@Q-R#S#SD  $r 1D(*	43CTEV2W(X(XD%	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y !N!_, $ 2!%!4!%!4 N111a40!_QQQT2,qqq!t, $ 2111a4 8!%!4QQQT!:!%!4QQQT!:s   +A1S((S,/S,c                 (    t           t          _        d S rA   )use_bnr   r
   r   s    r   teardown_methodz#TestnanopsDataFrame.teardown_method   s    !'r   Tc                    t          |d|          }|dk    rPt          |d          r@|j        r9|j        |j        k    r)t	          j        ||j        d         gd          d         }	 t          j        |||           d S # t          $ rE t          |d          r|j	        dk    r t          |d          r|j	        j
        dvr |j	        j
        d	k    ro|j	        j
        d	k    r|                    |j	                  }nUt          t          d
          rdnd}|                    |          }|                    |          }n|j	        j
        d	k    r t          j        t	          j        |          t	          j        |          |           t          j        t	          j        |          t	          j        |          |           Y d S w xY w)Nasm8r   shapeaxischeck_dtypedtyper>   )cr]   r]   
complex128c16f8)getattrhasattrndimr   r   splittmassert_almost_equalAssertionErrorr   kindr1   realimag)r   targresr   r   
cast_dtypes         r   check_resultsz!TestnanopsDataFrame.check_results  s   c63'' AIIg&& 	  
ci''(3Aa888;C	Y"4+FFFFFF 	Y 	Y 	YtW%% $**@*@
 3(( CIN*,L,L y~$$:?c))**TZ00CC*1"l*C*C!MJ**Z00C;;z22DD C''"274=="'#,,KXXXX"274=="'#,,KXXXXXXX1	Ys   )B EGGNc                 >   t          t          |j                            d gz   D ]}	|r|n|}
|r/|r-t          |
                                          r ||
fd|	i|}n ||
fd|	i|}|
j        t          k    r`|t          j        u s|t          j        u rDt          |t          j
                  r|                    t                    }nt          |          } ||f|	|d|}t          |t          j                  r?t          |t                    r*t          j        |          rt          j        |          r|}|                     |||	|           |r$ ||fd|	i|}|                     |||	|           |	$ ||fd|i|}|                     |||	|           |r$|	" ||fi |}|                     |||	|           |j        dk    rd S t          j        |dd          }t          j        |dd          } | j        ||||f|||d	| d S )
Nr   r   skipnar   r      r   r   )r   r   empty_targfunc)listranger   r   allr   objectr   any
isinstancendarrayr1   boolr   floatisnanr   takecheck_fun_data)r   testfunctargfunc	testarval	targarvalr   r   r   kwargsr   targartempvalr   r   
testarval2
targarval2s                  r   r   z"TestnanopsDataFrame.check_fun_data(  s    y~..//4&8 $	M $	MD)/>IIYM D. DT--@-@-D-D-F-F D%~mII$I&IIxCCDCFCC"f,,BF""h"&&8&8 dBJ// &;;t,,DD::D(9I4II&IIC 4//sE** HTNN HSMM	 tS$KHHH Mhy>>t>v>>""4d"LLL|hyBBB6BB""4d"LLL M$,hy33F33""4d"LLL>QF WY333
WY333
			

 #)		
 		
 		
 		
 		
 		
 		
r   c                     |}|                     d          r"t          | |d d                   r
|d d         }t          | |          }t          | |          }	 | j        ||||	f||d| d S )N_nan)r   r   )endswithr   r   r   )
r   r   r   testarr   r   r   targarr   r   s
             r   	check_funzTestnanopsDataFrame.check_funj  s     ??6"" 	!wtVCRC['A'A 	!CRC[FD&))	D&))			

 )	
 	
 	
 	
 	
 	
 	
r   c	                     | j         ||d|fi |	  | j         ||d|fi |	  | j         ||d|fi |	  | j         ||d|fi |	 | j                            d          | j                            d          | j                            d          g}
|r | j         ||d|fi |	 |rS | j         ||d|fi |	  | j         ||d|fi |	 |r | j         ||d	|fi |	 |
| j                            d          gz  }
|r? || j                    | j         ||d
|fi |	 |
| j                            d          gz  }
|rQ	  || j                    | j         ||d|fi |	 |
| j                            d          gz  }
n# t          $ r Y nw xY w|rIt          j
        |
          | _        |dk    rt          | j        ||          } | j         ||d|fi |	 d S d S )Nr    rH   r*   r,   r]   rD   r$   rj   rf   r;   r?   convert)funcallow_complexr^   )r   r    r1   r*   r,   r$   r;   r?   	TypeErrorr   rG   r^   r   _badobj_wrap)r   r   r   r   r   allow_all_nan
allow_dateallow_tdelta	allow_objr   objss              r   
check_funszTestnanopsDataFrame.check_funs}  s    	x;II&IIIx?FMMfMMMx9fGGGGGx:vHHHHHN!!#&&L$$M  %%
  	LDN8Xy&KKFKKK 	3DN8X}fOOOOODN8X/@&SSFSSS Ux>6TTVTTTT%,,S1122D 	0HT]###DN8Xz6LLVLLLT]))#..//D 	66))) x<RR6RRR//4455	      		L9T??DL I%%"%HM   DN8Xy&KKFKKKKK		L 		Ls   >E> >
F
Fc                     |j         j        dk    r-|r|                    d          }n|                    d          } ||fi |S )Nr]   r   r   )r   r   r1   )r   valuer   r   r   s        r   r   z TestnanopsDataFrame._badobj_wrap  sV    ;s"" +U++T**tE$$V$$$r   znan_op,np_opc                 :    |                      |||dd           d S )NF)r   r   r   r   nan_opnp_opr   s       r   test_nan_funcsz"TestnanopsDataFrame.test_nan_funcs  s&     	vUuUUUUUr   c                 x    |                      t          j        t          j        |ddt          j                   d S )NF)r   r   r   )r   r   nansumr   sumr   r   s     r   test_nansumzTestnanopsDataFrame.test_nansum  s?    MF9 	 	
 	
 	
 	
 	
r   c                 b    |                      t          j        t          j        |dd           d S )NF)r   r   )r   r   nanmeanr   meanr   s     r   test_nanmeanz TestnanopsDataFrame.test_nanmean  s6    NBGVu 	 	
 	
 	
 	
 	
r   zignore::RuntimeWarningc                 d    |                      t          j        t          j        |ddd           d S )NFr   )r   r   r   )r   r   	nanmedianr   medianr   s     r   test_nanmedianz"TestnanopsDataFrame.test_nanmedian  s>    I 	 	
 	
 	
 	
 	
r   ddof   c           	      f    |                      t          j        t          j        |ddd|           d S NFr   )r   r   r   r   )r   r   nanvarr   varr   r   r   s      r   test_nanvarzTestnanopsDataFrame.test_nanvar  @    MF 	 	
 	
 	
 	
 	
r   c           	      f    |                      t          j        t          j        |ddd|           d S r   )r   r   nanstdr   stdr   s      r   test_nanstdzTestnanopsDataFrame.test_nanstd  r   r   c                     t          j        d          }t          j        d          5  |                     t
          j        |j        |dddd|           d d d            d S # 1 swxY w Y   d S )Nscipy.statsra   rb   Fr   )r   r   r   r   r   )pytestimportorskipr   re   r   r   nansemsem)r   r   r   sp_statss       r   test_nansemzTestnanopsDataFrame.test_nansem  s    &}55[*** 
	 
	OO# "#  	 	 	
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	s   -A$$A(+A(c                 8    |                      |||d           d S )NFr   r   r   s       r   test_nanops_with_warningsz-TestnanopsDataFrame.test_nanops_with_warnings  s$    
 	v?????r   c                      |||          }t          j        ||          }t          |          }|j        rd||<   n8t	          |d          r|                                st	          |d          s|rd}|S )Nr   r   )r   minr   r   r   r   )r   r   r   r   r   nansnullnans          r   _argminmax_wrapz#TestnanopsDataFrame._argminmax_wrap  s    d5$veT""t**8 	CLLGU##		 7E**	 		 C
r   c                     t          | j        t          j                  }|                     t
          j        ||d           d S Nr   Fr  )r   r  r   argmaxr   r   	nanargmaxr   r   r   s      r   test_nanargmaxz"TestnanopsDataFrame.test_nanargmax  <    t+")<<<($%HHHHHr   c                     t          | j        t          j                  }|                     t
          j        ||d           d S r	  )r   r  r   argminr   r   	nanargminr  s      r   test_nanargminz"TestnanopsDataFrame.test_nanargmin!  r  r   c                    t          |j        j        t          j                  s|                    d          } |||d          }t          |t          j                  r3d|t          j        ||          t          j        ||          k    <   |S t          j        |          t          j        |          k    rdS |S )Nr   F)r   biasr   r           )	r   r   typer   floatingr1   r   maxr  )r   valuesr   r   results        r   _skew_kurt_wrapz#TestnanopsDataFrame._skew_kurt_wrap&  s    &,+R[99 	)]]4((Ff4e444fbj)) 	MNF26&t,,,vD0I0I0IIJMVF^^rvf~~--3r   c           	      
   t          j        d          }t          | j        |j                  }t          j        d          5  |                     t          j	        ||ddd           d d d            d S # 1 swxY w Y   d S )Nr   r
  ra   rb   Fr   r   r   )
r   r   r   r  skewr   re   r   r   nanskew)r   r   r   r   s       r   test_nanskewz TestnanopsDataFrame.test_nanskew2  s    &}55t+(-@@@[*** 	 	OO# "    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   &A88A<?A<c           	      ,   t          j        d          }t          |j        d          }t          | j        |          }t          j        d          5  |                     t          j	        ||ddd           d d d            d S # 1 swxY w Y   d S )	Nr   T)fisherr
  ra   rb   Fr  )
r   r   r   kurtosisr  r   re   r   r   nankurt)r   r   r   func1r   s        r   test_nankurtz TestnanopsDataFrame.test_nankurt@  s    &}55)$777t+%888[*** 	 	OO# "    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   &B		BBc                 x    |                      t          j        t          j        |ddt          j                   d S )NF)r   r   r   )r   r   nanprodr   prodr   s     r   test_nanprodz TestnanopsDataFrame.test_nanprodO  s?    NG: 	 	
 	
 	
 	
 	
r   c                 
    || j         | j        fi |} || j         | j        fdt          | j                   dz
  i|}t          j        ||           t          j        ||            || j        | j        fi |} || j        | j        fdt          | j                   dz
  i|}t          j        ||           t          j        ||           t          j        }	 || j	        | j        fi |}
 || j         | j	        fi |} || j	        | j	        fi |} || j        | j
        fi |} || j        | j
        fdt          | j                   dz
  i|} || j         | j        fdt          | j                   dz   i|}t          j        |	|
           t          j        |	|           t          j        |	|           t          j        |	|           t          j        |	|           t          j        |	|           d S Nmin_periodsr   )r   r   lenr   r   r   r   r   rC   r   r   r   checkfuntarg0targ1r   res00res01res10res11targ2res20res21res22res23res24res25s                   r   check_nancorr_nancov_2dz+TestnanopsDataFrame.check_nancorr_nancov_2dY     *D,>II&II
 
 D-..2
 	
 
 	ue,,,
ue,,,.0FQQ&QQ!"
 
 D-..2
 	
 
 	ue,,,
ue,,,$*<GGGG*DOFFvFF$/DDVDD.0FQQ&QQ!"
 
 D-..2
 	
 
 
 
 D-..2
 	
 
 	ue,,,
ue,,,
ue,,,
ue,,,
ue,,,
ue,,,,,r   c                 
    || j         | j        fi |} || j         | j        fdt          | j                   dz
  i|}t          j        ||           t          j        ||            || j        | j        fi |} || j        | j        fdt          | j                   dz
  i|}t          j        ||           t          j        ||           t          j        }	 || j	        | j        fi |}
 || j         | j	        fi |} || j	        | j	        fi |} || j        | j
        fi |} || j        | j
        fdt          | j                   dz
  i|} || j         | j        fdt          | j                   dz   i|}t          j        |	|
           t          j        |	|           t          j        |	|           t          j        |	|           t          j        |	|           t          j        |	|           d S r-  )rs   r   r/  r   r   rw   rz   r   rC   ru   r}   r0  s                   r   check_nancorr_nancov_1dz+TestnanopsDataFrame.check_nancorr_nancov_1d  r@  r   c                    t          j        | j        | j                  d         }t          j        | j        j        | j        j                  d         }|                     t          j        ||           t          j        | j        | j	                  d         }t          j        | j        j        | j	        j                  d         }| 
                    t          j        ||d           d S Nr   r   pearsonmethodr   corrcoefr   r   flatr?  r   nancorrrs   r   rB  r   r2  r3  s      r   test_nancorrz TestnanopsDataFrame.test_nancorr  s    D-t/ABB4HD-2D4F4KLLTR$$V^UEBBBD-t/ABB4HD-2D4F4KLLTR$$V^UE)$TTTTTr   c                    t          j        | j        | j                  d         }t          j        | j        j        | j        j                  d         }|                     t          j        ||d           t          j        | j        | j	                  d         }t          j        | j        j        | j	        j                  d         }| 
                    t          j        ||d           d S rD  rI  rM  s      r   test_nancorr_pearsonz(TestnanopsDataFrame.test_nancorr_pearson  s    D-t/ABB4HD-2D4F4KLLTR$$V^UE)$TTTD-t/ABB4HD-2D4F4KLLTR$$V^UE)$TTTTTr   c                    t          j        d          }|                    | j        | j                  d         }|                    | j        j        | j        j                  d         }|                     t          j        ||d           |                    | j	        | j
                  d         }|                    | j	        j        | j
        j                  d         }|                     t          j        ||d           d S )Nr   r   kendallrG  )r   r   
kendalltaur   r   rK  r?  r   rL  rs   r   rB  r   r   r2  r3  s       r   test_nancorr_kendallz(TestnanopsDataFrame.test_nancorr_kendall  s    &}55##D$5t7IJJ1M##D$5$:D<N<STTUVW$$V^UE)$TTT##D$5t7IJJ1M##D$5$:D<N<STTUVW$$V^UE)$TTTTTr   c                    t          j        d          }|                    | j        | j                  d         }|                    | j        j        | j        j                  d         }|                     t          j        ||d           |                    | j	        | j
                  d         }|                    | j	        j        | j
        j                  d         }|                     t          j        ||d           d S )Nr   r   spearmanrG  )r   r   	spearmanrr   r   rK  r?  r   rL  rs   r   rB  rT  s       r   test_nancorr_spearmanz)TestnanopsDataFrame.test_nancorr_spearman  s    &}55""4#4d6HII!L""4#4#94;M;RSSTUV$$V^UE*$UUU""4#4d6HII!L""4#4#94;M;RSSTUV$$V^UE*$UUUUUr   c                    t          j        d           t          j        | j        | j                  d         }t          j        | j        j        | j        j                  d         }d}t          j        t          |          5  | 	                    t          j        ||d           d d d            d S # 1 swxY w Y   d S )NscipyrE  z;Unknown method 'foo', expected one of 'kendall', 'spearman'matchfoorG  )r   r   r   rJ  r   r   rK  raises
ValueErrorrB  r   rL  )r   r2  r3  msgs       r   test_invalid_methodz'TestnanopsDataFrame.test_invalid_method  s   G$$$D-t/ABB4HD-2D4F4KLLTRK]:S111 	U 	U((e(TTT	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	Us   $B77B;>B;c                    t          j        | j        | j                  d         }t          j        | j        j        | j        j                  d         }|                     t          j        ||           t          j        | j        | j	                  d         }t          j        | j        j        | j	        j                  d         }| 
                    t          j        ||           d S )NrE  )r   covr   r   rK  r?  r   nancovrs   r   rB  rM  s      r   test_nancovzTestnanopsDataFrame.test_nancov  s    t($*<==dCt(-t/A/FGGM$$V]E5AAAt($*<==dCt(-t/A/FGGM$$V]E5AAAAAr   )T)TNrA   )TTTTT)NN)0__name__
__module____qualname__r   r   r   r   r   r   r   r   markparametrizer   nananyr   r   nanallr   r   r   r   filterwarningsr   r   r   r   r   nanminr  nanmaxr  r  r  r  r  r  r!  r'  r+  r?  rB  rN  rP  rU  rY  rb  rf  r   r   r   r   r      s       A; A; A;F( ( (%Y %Y %Y %Y\ @
 @
 @
 @
F BF
 
 
 
0 7L 7L 7L 7Lr% % % % [&-06="&2IJ V V V
 
 

 
 

 [ 899
 
 :9
 [VUU1XX..	
 	
 /.	
 [VUU1XX..	
 	
 /.	
 [VUU1XX..  /. [ 899[&-06="&2IJ @ @  :9@    [ 899I I :9I [ 899I I :9I
 
 
 
    
 
 
+- +- +-Z+- +- +-ZU U UU U UU U UV V VU U UB B B B Br   r   zarr, correct)
r$   F)r*   F)r,   F)r2   F)r6   Frq  )rj   F)rf   F)rn   T)rp   Tc                    |                      |          }t          |dd          r[t          j        |          }|r|sJ n|rJ t	          |d          sd S t          j        |dd          }t          |dd          Yd S d S Nr   Tr   r   r   )getfixturevaluer   r   	_has_infsr   r   r   )requestarrcorrectr   valres0s         r   test_has_infs_non_floatr{    s      
!
!#
&
&C
#vt
$
$ '$$ 	KKKKOOOsF## 	E gc12&&& #vt
$
$ ' ' ' ' 'r   )	)r    F)rD   F)rH   F)rN   F)rT   T)rR   T)rW   T)rY   T)r[   Tr1   )Nf4f2c                 6   |                      |          }||                    |          }t          |dd          r[t          j        |          }|r|sJ n|rJ t          |d          sd S t          j        |dd          }t          |dd          Yd S d S rs  )rt  r1   r   r   ru  r   r   r   )rv  rw  rx  r1   r   ry  rz  s          r   test_has_infs_floatsr    s      
!
!#
&
&Cjj  
#vt
$
$ '$$ 	KKKKOOOsF## 	E gc12&&& #vt
$
$ ' ' ' ' 'r   fixture)r    r$   r*   r,   r2   r6   c                 h    |                     |           }t          j        |j        d          sJ d S Ntestrt  r   _bn_ok_dtyper   r  rv  r   objs       r   test_bn_ok_dtyper  (  s8     
!
!'
*
*Csy&1111111r   )r;   r?   r^   c                 h    |                     |           }t          j        |j        d          rJ d S r  r  r  s       r   test_bn_not_ok_dtyper  0  s8     
!
!'
*
*C"39f5555555r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestEnsureNumericc                     t          j        d          dk    sJ t          j        d          dk    sJ t          j        d          dk    sJ d S )Nr   g?y      ?       @)r   _ensure_numericr   s    r   test_numeric_valuesz%TestEnsureNumeric.test_numeric_values>  s`    %a((A---- %c**c1111 %f--777777r   c                    t          j        g d          }t          j        t          j        |          |          sJ |                    t                    }t          j        t          j        |          |          sJ t          j        g dt                    }d}t          j        t          |          5  t          j        |           d d d            n# 1 swxY w Y   t          j        g dt                    }d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )N)r   r   r   )123r   z,Could not convert \['1' '2' '3'\] to numericr\  )r^  barbazzCould not convert .* to numeric)
r   arrayallcloser   r  r1   r   r   r_  r   )r   r  o_valuess_valuesra  s        r   test_ndarrayzTestEnsureNumeric.test_ndarrayH  s   )))$${61&996BBBBB ==(({61(;;VDDDDD 8OOO6:::=]9C000 	- 	-"8,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 8111@@@0]9C000 	- 	-"8,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s$   =CC"%C"#EE	E	c                    t          j        t          d          5  t          j        d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nz'Could not convert string '1' to numericr\  r  z)Could not convert string '1.1' to numericz1.1z+Could not convert string '1\+1j' to numericz1+1jr   r_  r   r   r  r   s    r   test_convertable_valuesz)TestEnsureNumeric.test_convertable_values]  s   ]9,UVVV 	( 	("3'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(]H
 
 
 	* 	* "5)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* ]K
 
 
 	+ 	+ "6***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s3   =AA#BBB*CCCc                    d}t          j        t          |          5  t          j        d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        i            d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        g            d d d            d S # 1 swxY w Y   d S )Nz)Could not convert string 'foo' to numericr\  r^  z%argument must be a string or a numberr  )r   ra  s     r   test_non_convertable_valuesz-TestEnsureNumeric.test_non_convertable_valuesi  s   9]9C000 	* 	*"5)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 6]9C000 	' 	'"2&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	']9C000 	' 	'"2&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's3   ?AA'BBB.CCCN)rg  rh  ri  r  r  r  r  r   r   r   r  r  =  sP        8 8 8- - -*
+ 
+ 
+
' 
' 
' 
' 
'r   r  c                      e Zd Zej        d             Zej        d             Zd Zd Zd Z	d Z
d Zej                            d ed	                    ej                            d
 ed                    d                         Zej                            d
 ed                    d             Zed             ZdS )TestNanvarFixedValuesc                     dS )Ng      @r   r   s    r   variancezTestNanvarFixedValues.variancey  s    sr   c                 @    | j                             |dz  d          S )N      ?i )scalesize)prngnormal)r   r  s     r   sampleszTestNanvarFixedValues.samples}  s!    yhm&AAAr   c                 \    t          j        |          }t          j        ||d           d S )N{Gz?rtol)r   r   r   r   )r   r  r  actual_variances       r   test_nanvar_all_finitez,TestNanvarFixedValues.test_nanvar_all_finite  s/     -00
tDDDDDDr   c                 <   t           j        t          j        d|j        d         z            z  }||d d d<   t	          j        |d          }t          j        ||d           t	          j        |d          }t          j        |t           j        d           d S )Nr   r   Tr   r  r  F)r   rC   onesr   r   r   r   r   )r   r  r  samples_testr  s        r   test_nanvar_nansz&TestNanvarFixedValues.test_nanvar_nans  s    vGM!,<(< = ==#SSqS -TBBB
tDDDD -UCCC
TBBBBBBr   c                 B   t           j        t          j        d|j        d         z            z  }||d d d<   t	          j        |d          }t          j        ||dz  d           t	          j        |d          }t          j        |t           j        d           d S )	Nr   r   Tr  r  r  r  F)	r   rC   r  r   r   r   r   r   r   )r   r  r  r  
actual_stds        r   test_nanstd_nansz&TestNanvarFixedValues.test_nanstd_nans  s    vGM!,<(< = ==#SSqS]<===

z8S=tDDDD]<>>>

z26======r   c                     | j                             |j        d                   }t          j        ||g          }t          j        |d          }t          j        |t          j	        |dg          d           d S )Nr   r  r   r   UUUUUU?r  r  )
r  uniformr   r   rG   r   r   r   r   r  )r   r  r  samples_unifr  s        r   test_nanvar_axisz&TestNanvarFixedValues.test_nanvar_axis  s    y((gmA.>(??)Wl344 -a888
RXx&:;;$	
 	
 	
 	
 	
 	
r   c                 $   d}| j                             d|dz   f          }t          j        |d d df<   t	          j        |ddd                                          }t	          j        |ddd                                          }t	          j        |ddd	                                          }d
}t          j        ||d           t          j        ||dz
  |z  |z  d           t          j        ||dz
  |dz
  z  |z  d           d S )N   i'  r   r  r   Tr   )r   r   r   r   r  r  r  g      ?g       @)	r  r  r   rC   r   r   r   r   r   )r   nr  
variance_0
variance_1
variance_2r   s          r   test_nanvar_ddofz&TestNanvarFixedValues.test_nanvar_ddof  s   )##%Q#882]74aHHHMMOO
]74aHHHMMOO
]74aHHHMMOO
 
z3T:::: 	zAGq=3+>TJJJJ 	zAGC+@3+FTRRRRRRr   r   r   r   r   c                 d   t          j        d          }t          j        g dg dg dg          |d dd df<   t           j        x|d<   |d d df<   t          j        g dg dg dgg d	g d
g dgg          }t	          j        |d||          }t          j        |d d         |||f                    t          j        |d                   sJ t	          j	        |d||          }t          j        |d d         |||f         dz             t          j        |d                   sJ d S )N)   r  )g*f#?g| 9?gֆ?)gvZ?gן?gצʺ?)g6bڷ?gE-9?g$mxP?r   )gӞ?g/-:Ŭ?g??)g-ull?g(I0쓵?gM6?)g-ull?gF?gmɉM6?)g
^?g)܌	?g쵇Z&?)g@#)G?g/TS?g6܃?)g@#)G?g/TS?gSW_܃?T)r   r   r   r  )
r   emptyr  rC   r   r   r   r   r   r   )r   r   r   r  r  r   r   s          r   test_ground_truthz'TestNanvarFixedValues.test_ground_truth  s    (6""(444444444
 
BQB &(V+
WQQQT] 8 988888888 988888888
 
  mGDt$GGG
s2A2wt(<===xA mGDt$GGG
s2A2wt(<(CDDDxAr   c                     t          dt          j        d          z            }|                    |          }|dk    sJ d S )Ni-r'   )r   r  )r   r   r  r   )r   r   datar  s       r   test_nanstd_roundoffz*TestNanvarFixedValues.test_nanstd_roundoff  sB     i"'"++-..t$$}}}}}}r   c                 @    t           j                            d          S r   r   r   r   r   s    r   r  zTestNanvarFixedValues.prng      y$$Q'''r   N)rg  rh  ri  r   r  r  r  r  r  r  r  r  rj  rk  r   r  r  propertyr  r   r   r   r  r  v  sR        ^  ^ ^B B ^BE E EC C C> > >
 
 
S S S& [VUU1XX..[VUU1XX..$  $  /. /.$ L [VUU1XX..  /. ( ( X( ( (r   r  c                       e Zd Zej        d             Zej        d             Zej                            dg d          d             Z	d Z
d Zd Zd	 Zd
 Zed             ZdS )TestNanskewFixedValuesc                 R    t          j        t          j        ddd                    S Nr   r      r   sinlinspacer   s    r   r  zTestNanskewFixedValues.samples       vbk!Q,,---r   c                     dS )Ng5ȿr   r   s    r   actual_skewz"TestNanskewFixedValues.actual_skew      ""r   ry  gfffff@g@g     @c                 l    |t          j        d          z  }t          j        |          }|dk    sJ d S Ni,  r  )r   r  r   r   )r   ry  r  r  s       r   test_constant_seriesz+TestNanskewFixedValues.test_constant_series  6     RWS\\!~d##s{{{{{{r   c                     d\  }}| j                             ||d          }t          j        |          dk     sJ d\  }}| j                             ||d          }t          j        |          dk    sJ d S )N333333?皙?d   r  r   r  r  )r  betar   r   r   alphar  left_tailedright_taileds        r   test_all_finitez&TestNanskewFixedValues.test_all_finite      tinnUDsn;;~k**Q....ty~~eT~<<~l++a//////r   c                 X    t          j        |          }t          j        ||           d S rA   )r   r   r   r   r   r  r  r  s       r   r  z(TestNanskewFixedValues.test_ground_truth  *    ~g&&
t[11111r   c           	         t          j        |t           j        t          j        t	          |                    z  g          }t          j        |d          }t          j        |t          j	        |t           j        g                     d S Nr   r   )
r   rG   rC   r  r/  r   r   r   r   r  r  s       r   	test_axisz TestNanskewFixedValues.test_axis
  k    )Wbfrws7||/D/D&DEFF~gA...
tRX{BF.C%D%DEEEEEr   c                     t          j        |t           j        g          }t          j        |d          }t          j        |          sJ d S NFr  )r   hstackrC   r   r   r   )r   r  r  s      r   	test_nansz TestNanskewFixedValues.test_nans  F    )Wbf-..~ge444x~~r   c                     t          j        |t           j        g          }t          j        |d          }t          j        ||           d S NTr  )r   r  rC   r   r   r   r   r  s       r   test_nans_skipnaz'TestNanskewFixedValues.test_nans_skipna  E    )Wbf-..~gd333
t[11111r   c                 @    t           j                            d          S r   r  r   s    r   r  zTestNanskewFixedValues.prng  r  r   N)rg  rh  ri  r   r  r  r  rj  rk  r  r  r  r  r  r  r  r  r   r   r   r  r             ^. . ^. ^# # ^# [U$<$<$<==  >=0 0 02 2 2F F F
  
2 2 2
 ( ( X( ( (r   r  c                       e Zd Zej        d             Zej        d             Zej                            dg d          d             Z	d Z
d Zd Zd	 Zd
 Zed             ZdS )TestNankurtFixedValuesc                 R    t          j        t          j        ddd                    S r  r  r   s    r   r  zTestNankurtFixedValues.samples!  r  r   c                     dS )Ng|vKr   r   s    r   actual_kurtz"TestNankurtFixedValues.actual_kurt%  r  r   ry  r  c                 l    |t          j        d          z  }t          j        |          }|dk    sJ d S r  )r   r  r   r%  )r   ry  r  kurts       r   r  z+TestNankurtFixedValues.test_constant_series)  r  r   c                     d\  }}| j                             ||d          }t          j        |          dk     sJ d\  }}| j                             ||d          }t          j        |          dk     sJ d S )Nr  r  r  r   r  r   )r  r  r   r%  r  s        r   r  z&TestNankurtFixedValues.test_all_finite0  r  r   c                 X    t          j        |          }t          j        ||           d S rA   )r   r%  r   r   r   r  r  r  s       r   r  z(TestNankurtFixedValues.test_ground_truth9  r  r   c           	         t          j        |t           j        t          j        t	          |                    z  g          }t          j        |d          }t          j        |t          j	        |t           j        g                     d S r  )
r   rG   rC   r  r/  r   r%  r   r   r  r  s       r   r  z TestNankurtFixedValues.test_axis=  r  r   c                     t          j        |t           j        g          }t          j        |d          }t          j        |          sJ d S r  )r   r  rC   r   r%  r   )r   r  r  s      r   r  z TestNankurtFixedValues.test_nansB  r  r   c                     t          j        |t           j        g          }t          j        |d          }t          j        ||           d S r  )r   r  rC   r   r%  r   r   r  s       r   r  z'TestNankurtFixedValues.test_nans_skipnaG  r  r   c                 @    t           j                            d          S r   r  r   s    r   r  zTestNankurtFixedValues.prngL  r  r   N)rg  rh  ri  r   r  r  r  rj  rk  r  r  r  r  r  r  r  r  r   r   r   r  r    r  r   r  c                       e Zd Z ej        g d          d             Zd Zej                            dddg          d             Z	d	S )
TestDatetime64NaNOps)smsusns)paramsc                     |j         S rA   )param)r   rv  s     r   unitzTestDatetime64NaNOps.unitR  s
    }r   c                    t          j        dd                              |          }|d         }|t          |          t	          |          fD ]}t          j        |          }||k    sJ |                    dt           j                  }|t          |          t	          |          fD ]}t          j        |          }||k    sJ d S )Nz
2016-01-01r   )periodsr   )	pd
date_rangeas_unitr   r   r   r   insertNaT)r   r  dtiexpectedr  r  dti2s          r   r   z!TestDatetime64NaNOps.test_nanmeanX  s    mL!444<<TBBq6s++VC[[9 	& 	&C^C((FX%%%%%zz!RV$$---vd||< 	& 	&C^C((FX%%%%%	& 	&r   constructorM8m8c                    | d| d}t          j        d                              t           j                                      |                              dd          }d|d<   t          j        |d	          }t          j        |          sJ |j	        |k    sJ t          j        |d
d          }t          j
        g d|j	                  }t          j        ||           t          j        |dd          }t          j
        |d         |d         |d         |d         g          }t          j        ||           d S )N[]   r  r   r   )r   r   Fr  r   r   )r  r  r   r  r   rE  )r   r   )r   r   )r   aranger1   int64viewreshaper   r   isnatr   r  r   assert_numpy_array_equal)r   r$  r  r   rw  r  r"  s          r   test_nanmean_skipna_falsez.TestDatetime64NaNOps.test_nanmean_skipna_falsef  s3   (((((imm""28,,11%88@@AFFFE222x|u$$$$!E:::8MMM;;;
#FH555!E:::8SYD	3t9c&kJKK
#FH55555r   N)
rg  rh  ri  r   r  r  r   rj  rk  r1  r   r   r   r  r  Q  s        V^222333  43
& & & []T4L996 6 :96 6 6r   r  c                  4   t           j        rt          j        dd          5  t          j        d          sJ 	 d d d            n# 1 swxY w Y   t          j        dd          5  t          j        d          rJ 	 d d d            d S # 1 swxY w Y   d S d S )Nuse_bottleneckTF)r   _BOTTLENECK_INSTALLEDr  option_context
get_optionr   r   r   test_use_bottleneckr7  z  s.   # 7/66 	3 	3=!1222222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 /77 	7 	7}%5666666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7	7 7s#   AA
A
&BBBznumpy_op, expectedr'   g      @r   r  c                 J     | t          g d                    }||k    sJ d S )N)r   r   r   r  )r   )numpy_opr"  r  s      r   test_numpy_opsr:    s6    " Xf\\\**++FXr   	operationc                     t          ddt          j        dt          j        dg          }|                                } | |j                  } | |j        |          }||k    sJ d S )Nr   r   r   r  )mask)r   r   rC   r   _values)r;  serr=  median_expectedmedian_results        r   %test_nanops_independent_of_mask_paramrB    sm    , !Q261-
.
.C88::Di,,OIck555Mm++++++r   	min_countr   c                 F    t          j        dd |           }d}||k    sJ d S )N)   %   Fr   check_below_min_count)rC  r  expected_results      r   5test_check_below_min_count_negative_or_zero_min_countrJ    s4     )(D)DDFO_$$$$$$r   r=  )FFTT	   Fzmin_count, expected_result)r   F)e   Tc                 F    d}t          j        || |          }||k    sJ d S )N)r'   r'   rG  )r=  rC  rI  r   r  s        r   -test_check_below_min_count_positive_min_countrN    s4     E)%yAAF_$$$$$$r   )l   l$=O Tc                 H    d}t          j        |d |           }||k    sJ d S )N)i?" i  )r=  rC  rG  )rC  rI  r   r  s       r   &test_check_below_min_count_large_shaperP    s7    
 E)%diPPPF_$$$$$$r   r   r   r   c                 b    t          j        t          j        |           j        |          rJ d S rA   )r   r  r   r   r  )any_real_numpy_dtyper   s     r   test_check_bottleneck_disallowrS    s1     "28,@#A#A#FMMMMMMMr   ry  )l          l       l   |H%[<c                     t          |t          d          t          j                  }|                                }|j                                        }||k    sJ ||k    sJ |j        t          j        k    sJ d S )Ni  )indexr   )r   r   r   r,  r   r  r   float64)r   ry  r?  r  	np_results        r   test_nanmean_overflowrX    sw     E#JJbh
7
7
7CXXZZF
!!IS====Y<2:%%%%%%r   r   float128rH  )r   r   r   r  r  r  r  c                    |t          j        d           t          t          d          |          } t	          ||                      }t          |          r|dvr|j        t          j        k    sJ d S |j        |k    sJ d S )Nznp.float128 not availabler'   r  )r  r  )	r   skipr   r   r   r   r   r   rV  )r   r   rH  r?  r  s        r   test_returned_dtyper\    s     }/000
r%
(
(
(C!WS&!!##F %6#?#?|rz))))))|u$$$$$$r   )h	functoolsr   numpyr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandas.core.dtypes.commonr   pandasr  r   r   pandas._testing_testingr   pandas.corer   pandas.core.arraysr   r
   r   r  r   r   r    r$   r*   r,   r2   r6   r;   r?   rD   rH   rK   rN   rR   rT   rW   rY   r[   r^   rf   rj   rn   rp   rs   ru   rw   rz   r}   r   rj  rk  r{  r  r  r  r  r  r  r  r  r7  r   r   r   r   r   r   r  r  ro  rp  r:  rl  rm  r   r   r   r  r  r   r%  r)  rB  rJ  r  rN  skip_if_windowsskip_if_32bitrP  rS  rX  int16int32r,  float32rV  r   r\  r   r   r   <module>rn     s	              ) ) ) ) ) ) ) ) ) 6 6 6 6 6 6                        , , , , , ,		       ? ? ? & & & A A A C C C ) ) ) ) ) ) S S S S S S & & & + + + + + + ) ) )    + + + ) ) ) 4 4 4 2 2 2   " & & &
 6 6 6
   
 6 6 6
                     kB kB kB kB kB kB kB kB\    ' ' '  
 
 
  #5#5#566' ' 76 '$ XXX 2 2 2
    6 6 6
6' 6' 6' 6' 6' 6' 6' 6'rr( r( r( r( r( r( r( r(j0( 0( 0( 0( 0( 0( 0( 0(f0( 0( 0( 0( 0( 0( 0( 0(f&6 &6 &6 &6 &6 &6 &6 &6R7 7 7 		B	#	S	C	s			A	A     (, ,) (, r1g..% % /.% 
T82800011828TFQ%[<P3Q3QR  5
K7PQQ% % RQ % 5
DV7WXX% % YX  % )X!677N N 87N
  D D DEE
& 
& FE
& 






J%%
 
 #W#W#WXX	% 	% YX
 
	% 	% 	%r   