
    LVf                        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j0                  d        Zej0                  d        Zej0                  d	        Zej0                  d
        Zej0                  d        Zej0                  d        Zej0                  d        Zej0                  d        Z ej0                  d        Z!ej0                  d        Z"ej0                  d        Z#ej0                  d        Z$ej0                  d        Z%ej0                  d        Z&ej0                  d        Z'ej0                  d        Z(ej0                  d        Z)ej0                  d        Z*ej0                  d        Z+ej0                  d        Z,ej0                  d        Z-ej0                  d        Z.ej0                  d        Z/ej0                  d        Z0ej0                  d        Z1ej0                  d         Z2ej0                  d!        Z3ej0                  d"        Z4ej0                  d#        Z5 G d$ d%      Z6ejn                  jq                  d&g d'      d(        Z9ejn                  jq                  d&g d)      ejn                  jq                  d*g d+      d,               Z:ejn                  jq                  d-g d.      d/        Z;ejn                  jq                  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jn                  jq                  d=ej                  d>fej                  d>fej                  d?fej                  d?fej                  d?fej                  d?fej                  d@fej                  dAfej                  d@fej                  dAfg
      dB        ZMejn                  jq                  dCej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  g      dD        ZXejn                  jq                  dEdFd g      dG        ZYejn                  jq                  dHd ej                  g dI       ej                  dJgdKdLgz  z         g      ejn                  jq                  dMdNdOg      dP               Z[ej                  ej                  ejn                  jq                  dMdNdQg      dR                      Z^ejn                  jq                  dSdTdUg      dV        Z_ejn                  jq                  dWg dX      dY        Z`ejn                  jq                  dZej                  ej                  ej                  ej                  ej                   efed[d      g      ejn                  jq                  d\g d]      d^               Zgy)_    )partialN)is_integer_dtype)Seriesisna)nanops)DatetimeArrayc              #      K   | j                         5 }|j                  t        dd       d  d d d        y # 1 sw Y   y xY ww)N_USE_BOTTLENECKF)contextsetattrr   )monkeypatchms     a/var/www/html/software/conda/envs/catlas/lib/python3.12/site-packages/pandas/tests/test_nanops.pydisable_bottleneckr      s<     				 !			&+U3  s   A8	AAAc                       y)N       r       r   	arr_shaper      s    r   c                 ^    t         j                  j                  d      j                  |       S N   )nprandomdefault_rngstandard_normalr   s    r   	arr_floatr    "   s"    99  #33I>>r   c                     | | dz  z   S )N              ?r   r    s    r   arr_complexr$   '   s    y2~%%r   c                 b    t         j                  j                  d      j                  dd|       S )Nr   
   r   r   r   integersr   s    r   arr_intr*   ,   s&    99  #,,S"i@@r   c                 h    t         j                  j                  d      j                  dd|       dk(  S )Nr   r   r(   r   s    r   arr_boolr,   1   s+    99  #,,Q9=BBr   c                 J    t        j                  |       j                  d      S )NSr   absastyper#   s    r   arr_strr2   6       66)##C((r   c                 J    t        j                  |       j                  d      S )NUr/   r#   s    r   arr_utfr6   ;   r3   r   c                     t         j                  j                  d      j                  dd|       j	                  d      S )Nr   r    N  M8[ns]r   r   r   r)   r1   r   s    r   arr_dater;   @   1    99  #,,QyAHHRRr   c                     t         j                  j                  d      j                  dd|       j	                  d      S )Nr   r   r8   m8[ns]r:   r   s    r   
arr_tdeltar?   E   r<   r   c                 J    t        j                  t         j                  |       S N)r   tilenanr   s    r   arr_nanrD   J   s    772669%%r   c                 0    t        j                  | |g      S rA   r   vstack)r    rD   s     r   arr_float_nanrH   O       99i)**r   c                 0    t        j                  | |g      S rA   rF   )rD   r    s     r   arr_nan_float1rK   T   s    99gy)**r   c                 0    t        j                  | | g      S rA   rF   rD   s    r   arr_nan_nanrN   Y       99gw'((r   c                 (    | t         j                  z  S rA   )r   infr#   s    r   arr_infrR   ^   s    rvvr   c                 0    t        j                  | |g      S rA   rF   )r    rR   s     r   arr_float_infrT   c   rI   r   c                 0    t        j                  | |g      S rA   rF   rD   rR   s     r   arr_nan_infrW   h   rO   r   c                 2    t        j                  | ||g      S rA   rF   )r    rD   rR   s      r   arr_float_nan_infrY   m   s    99i'233r   c                 2    t        j                  | | |g      S rA   rF   rV   s     r   arr_nan_nan_infr[   r   s    99gw011r   c                 ,   t        j                  | j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      g      S )NO)r   rG   r1   )r    r*   r,   r$   r2   r6   r;   r?   s           r   arr_objr^   w   s     99S!NN3OOC s#NN3NN3OOC c"		
 r   c                 j    t        j                  d      5  | | dz  z   cd d d        S # 1 sw Y   y xY wNignoreinvalidr"   r   errstaterM   s    r   arr_nan_nanjrf      s/    	X	& &2%& & &s   )2c                     t        j                  d      5  t        j                  | |g      cd d d        S # 1 sw Y   y xY wNra   rb   r   re   rG   )r$   rf   s     r   arr_complex_nanrj      4    	X	& 6yy+|456 6 6	   8Ac                 d    t        j                  d      5  | dz  cd d d        S # 1 sw Y   y xY w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 Y   y xY w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    QT?r   c                     | d d df   S rr   r   rM   s    r   
arr_nan_1dru      s    1a4=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                  j                  d	ej                  ej                   fej"                  ej$                  fg      d
        Zd Zd Ze
j                  j-                  d      d        Ze
j                  j                  d ed            d        Ze
j                  j                  d ed            d        Ze
j                  j                  d ed            d        Ze
j                  j-                  d      e
j                  j                  d	ej8                  ej:                  fej<                  ej>                  fg      d               Z d(dZ!e
j                  j-                  d      d        Z"e
j                  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/y))TestnanopsDataFramec                    dt         _        d}t        j                  j	                  d      j                  |      | _        t        j                  j	                  d      j                  |      | _        | j                  | j                  dz  z   | _        t        j                  j	                  d      j                  dd|      | _
        t        j                  j	                  d      j                  dd|      dk(  | _        t        j                  | j                        j                  d      | _        t        j                  | j                        j                  d	      | _        t        j                  j	                  d      j                  dd
|      j                  d      | _        t        j                  j	                  d      j                  dd
|      j                  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        j4                  z  | _        t        j*                  | j                  | j6                  g      | _        t        j*                  | j(                  | j6                  g      | _        t        j*                  | j                  | j(                  | j6                  g      | _        t        j*                  | j(                  | j(                  | j6                  g      | _        t        j*                  | j                  j                  d      | j                  j                  d      | j                  j                  d      | j                  j                  d      | j                  j                  d      | j                  j                  d      | j                   j                  d      | j"                  j                  d      g      | _         t        jB                  d      5  | j(                  | j(                  dz  z   | _"        t        j*                  | j                  | jD                  g      | _#        | j6                  dz  | _$        t        j*                  | j                  | jH                  g      | _%        d d d        | j                  | _&        | j                  | _'        | j(                  | _(        | j,                  | _)        | j.                  | _*        | j0                  | _+        | 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        | j0                  d d df   | _1        y # 1 sw Y   xY w)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AA)L))//2BB9M>>DOOb,@@yy,,Q/88b)L		--a099!Q	JaOvvdnn-44S9vvdnn-44S9II!!!$--a	BII(S 	 II!!!$--a	BII(S 	 wwrvvy1YY'EF ii$,,(GH iit(GH99dllDLL%AB~~.YY'EF99dllDLL%AB!#DNNDLL$,,+W!X!yy$,,dll)STyy%%c*##C($$S)  '',##C(##C($$S)&&s+	
 [[* 	Y $t||b/@ @D#%99d.>.>@Q@Q-R#SD  $r 1D(*		43C3CTEVEV2W(XD%	Y !NN!__,, $ 2 2!%!4!4!%!4!4 NN1a40!__QT2,,q!t, $ 2 21a4 8!%!4!4QT!:!%!4!4QT!:+	Y 	Ys   BY&&Y0c                 "    t         t        _        y rA   )use_bnr   r
   r   s    r   teardown_methodz#TestnanopsDataFrame.teardown_method   s
    !'r   c                    t        |d|      }|dk7  rZt        |d      rN|j                  rB|j                  |j                  k7  r)t	        j
                  ||j                  d   gd      d   }	 t        j                  |||       y # t        $ r_ t        |d      r|j                  dk(  r t        |d      r|j                  j                  dvr |j                  j                  d	k(  rl|j                  j                  d	k7  r|j                  |j                        }nQt        t        d
      rdnd}|j                  |      }|j                  |      }n|j                  j                  d	k(  r t        j                  t	        j                  |      t	        j                  |      |       t        j                  t	        j                  |      t	        j                  |      |       Y y 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  ss   c63' AIg&		

cii'((3Aa8;C	Y""4+F 	YtW%$***@
 3(CIINN*,L yy~~$::??c)**TZZ0C*1"l*CJ**Z0C;;z2D C'""2774="''#,KX""2774="''#,KX1	Ys   .B E&G0/G0Nc                 $   t        t        |j                              d gz   D ]  }	|r|n|}
|r'|r%t        |
      j	                         r ||
fd|	i|}n ||
fd|	i|}|
j
                  t        k(  r_|t        j                  u s|t        j                  u r;t        |t        j                        r|j                  t              }nt        |      } ||f|	|d|}t        |t        j                        r<t        |t              r,t        j                  |      rt        j                  |      r|}| j!                  |||	|       |r  ||fd|	i|}| j!                  |||	|       |	  ||fd|i|}| j!                  |||	|       |so|	s ||fi |}| j!                  |||	|        |j                  dk  ry t        j"                  |dd      }t        j"                  |dd      } | j$                  ||||f|||d	| y )
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D)/IYM.T--@-D-D-F%mI$I&ICDCFC""f,BFF"h"&&&8 dBJJ/;;t,D:D9I4I&IC 4/sE*HHTNHHSM tS$KHy>t>v>""4d"L|yBB6B""4d"L$,y3F3""4d"LI$	ML >>Q WWY3
WWY3
			

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

 )	
 	
r   c	                 2    | j                   ||d|fi |	  | j                   ||d|fi |	  | j                   ||d|fi |	  | j                   ||d|fi |	 | j                  j                  d      | j                  j                  d      | j                  j                  d      g}
|r | j                   ||d|fi |	 |rc | j                   ||d|fi |	  | j                   ||d|fi |	 |r | j                   ||d	|fi |	 |
| j
                  j                  d      gz  }
|rG || j                          | j                   ||d
|fi |	 |
| j                  j                  d      gz  }
|rH	  || j                          | j                   ||d|fi |	 |
| j                  j                  d      gz  }
|rNt        j                  |
      | _        |dk(  rt        | j                  ||      } | j                   ||d|fi |	 y y # t        $ r Y \w xY w)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x?FMfMx9fGGx:vHHNN!!#&LL$MM  %
 DNN8Xy&KFKDNN8X}fOODNN8X/@&SFSx>6TVTT%%,,S122DT]]#DNN8Xz6LVLT]]))#.//D6) x<R6R//45599T?DL I%"%%HM DNN8Xy&KFK   s   2H
 
	HHc                     |j                   j                  dk(  r%|r|j                  d      }n|j                  d      } ||fi |S )Nr]   r   r   )r   r   r1   )r   valuer   r   r   s        r   r   z TestnanopsDataFrame._badobj_wrap  sC    ;;s"U+T*E$V$$r   znan_op,np_opc                 0    | j                  |||dd       y )NF)r   r   r   r   nan_opnp_opr   s       r   test_nan_funcsz"TestnanopsDataFrame.test_nan_funcs  s     	vUuUr   c                     | j                  t        j                  t        j                  |ddt        j                         y )NF)r   r   r   )r   r   nansumr   sumr   r   s     r   test_nansumzTestnanopsDataFrame.test_nansum  s1    MMFF99 	 	
r   c                 h    | j                  t        j                  t        j                  |dd       y )NF)r   r   )r   r   nanmeanr   meanr   s     r   test_nanmeanz TestnanopsDataFrame.test_nanmean  s&    NNBGGVu 	 	
r   zignore::RuntimeWarningc                 j    | j                  t        j                  t        j                  |ddd       y )NFr   )r   r   r   )r   r   	nanmedianr   medianr   s     r   test_nanmedianz"TestnanopsDataFrame.test_nanmedian  s/    II 	 	
r   ddof   c           	      l    | j                  t        j                  t        j                  |ddd|       y NFr   )r   r   r   r   )r   r   nanvarr   varr   r   r   s      r   test_nanvarzTestnanopsDataFrame.test_nanvar  0    MMFF 	 	
r   c           	      l    | j                  t        j                  t        j                  |ddd|       y r   )r   r   nanstdr   stdr   s      r   test_nanstdzTestnanopsDataFrame.test_nanstd  r   r   c                     t        j                  d      }t        j                  d      5  | j	                  t
        j                  |j                  |dddd|       d d d        y # 1 sw Y   y xY w)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  sd    &&}5[[* 
	OO# "#  	
	 
	 
	s   2A''A0c                 .    | j                  |||d       y )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||<   |S t	        |d      r|j                         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  sj    5$vveT"t*88CL 
 GU#7E*C
r   c                     t        | j                  t        j                        }| j	                  t
        j                  ||d       y Nr   Fr  )r   r  r   argmaxr   r   	nanargmaxr   r   r   s      r   test_nanargmaxz"TestnanopsDataFrame.test_nanargmax  2    t++"))<(($%Hr   c                     t        | j                  t        j                        }| j	                  t
        j                  ||d       y r	  )r   r  r   argminr   r   	nanargminr  s      r   test_nanargminz"TestnanopsDataFrame.test_nanargmin!  r  r   c                    t        |j                  j                  t        j                        s|j                  d      } |||d      }t        |t        j                        r4d|t        j                  ||      t        j                  ||      k(  <   |S t        j                  |      t        j                  |      k(  ry|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]]4(Ff4e4fbjj)MNF266&t,vD0IIJMVVF^rvvf~-r   c           	         t        j                  d      }t        | j                  |j                        }t        j                  d      5  | j                  t        j                  ||ddd       d d d        y # 1 sw Y   y xY w)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  sp    &&}5t++(--@[[* 	OO# "  	 	 	s   &A<<Bc           	      *   t        j                  d      }t        |j                  d      }t        | j                  |      }t        j                  d      5  | j                  t        j                  ||ddd       d d d        y # 1 sw Y   y xY w)	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))$7t++%8[[* 	OO# "  	 	 	s   &B		Bc                     | j                  t        j                  t        j                  |ddt        j                         y )NF)r   r   r   )r   r   nanprodr   prodr   s     r   test_nanprodz TestnanopsDataFrame.test_nanprodO  s1    NNGG:: 	 	
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                  |	|       y 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  Y   **D,>,>I&I
 D--.2
 	
 	ue,
ue,..0F0FQ&Q!!""
 D--.2
 	
 	ue,
ue,$*<*<GG**DOOFvF$//DVD..0F0F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                  |	|       y 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                 D   t        j                  | j                  | j                        d   }t        j                  | j                  j                  | j                  j                        d   }| j                  t        j                  ||       t        j                  | j                  | j                        d   }t        j                  | j                  j                  | j                  j                        d   }| j                  t        j                  ||d       y 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/AB4HD--22D4F4F4K4KLTR$$V^^UEBD--t/A/AB4HD--22D4F4F4K4KLTR$$V^^UE)$Tr   c                 H   t        j                  | j                  | j                        d   }t        j                  | j                  j                  | j                  j                        d   }| j                  t        j                  ||d       t        j                  | j                  | j                        d   }t        j                  | j                  j                  | j                  j                        d   }| j                  t        j                  ||d       y rD  rI  rM  s      r   test_nancorr_pearsonz(TestnanopsDataFrame.test_nancorr_pearson  s    D--t/A/AB4HD--22D4F4F4K4KLTR$$V^^UE)$TD--t/A/AB4HD--22D4F4F4K4KLTR$$V^^UE)$Tr   c                 R   t        j                  d      }|j                  | j                  | j                        d   }|j                  | j                  j
                  | j                  j
                        d   }| j                  t        j                  ||d       |j                  | j                  | j                        d   }|j                  | j                  j
                  | j                  j
                        d   }| j                  t        j                  ||d       y )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##D$5$5t7I7IJ1M##D$5$5$:$:D<N<N<S<STUVW$$V^^UE)$T##D$5$5t7I7IJ1M##D$5$5$:$:D<N<N<S<STUVW$$V^^UE)$Tr   c                 R   t        j                  d      }|j                  | j                  | j                        d   }|j                  | j                  j
                  | j                  j
                        d   }| j                  t        j                  ||d       |j                  | j                  | j                        d   }|j                  | j                  j
                  | j                  j
                        d   }| j                  t        j                  ||d       y )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""4#4#4d6H6HI!L""4#4#4#9#94;M;M;R;RSTUV$$V^^UE*$U""4#4#4d6H6HI!L""4#4#4#9#94;M;M;R;RSTUV$$V^^UE*$Ur   c                    t        j                  d       t        j                  | j                  | j
                        d   }t        j                  | j                  j                  | j
                  j                        d   }d}t        j                  t        |      5  | j                  t        j                  ||d       d d d        y # 1 sw Y   y xY w)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/AB4HD--22D4F4F4K4KLTRK]]:S1 	U((e(T	U 	U 	Us   !$CCc                 @   t        j                  | j                  | j                        d   }t        j                  | j                  j                  | j                  j                        d   }| j                  t        j                  ||       t        j                  | j                  | j                        d   }t        j                  | j                  j                  | j                  j                        d   }| j                  t        j                  ||       y )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/A/F/FGM$$V]]E5At(($*<*<=dCt((--t/A/A/F/FGM$$V]]E5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      s5   A;F(%Y\ @
F BF
0 7Lr% [[&--06=="&&2IJVV


 [[ 89
 :
 [[VU1X.	
 /	
 [[VU1X.	
 /	
 [[VU1X. / [[ 89[[&--06=="&&2IJ@ :@ [[ 89I :I [[ 89I :I

+-Z+-ZUUUVUBr   r   zarr, correct)
r$   F)r*   F)r,   F)r2   F)r6   Frq  )rj   F)rf   F)rn   T)rp   Tc                     | j                  |      }t        |dd      rSt        j                  |      }|r|sJ |rJ t	        |d      sy t        j                  |dd      }t        |dd      rRy y Nr   Tr   r   r   )getfixturevaluer   r   	_has_infsr   r   r   )requestarrcorrectr   valres0s         r   test_has_infs_non_floatr{    sp      
!
!#
&C
#vt
$$K4O8sF# ggc12& #vt
$r   )	)r    F)rD   F)rH   F)rN   F)rT   T)rR   T)rW   T)rY   T)r[   Tr1   )Nf4f2c                    | j                  |      }||j                  |      }t        |dd      rSt        j                  |      }|r|sJ |rJ t        |d      sy t        j                  |dd      }t        |dd      rRy y 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
$$K4O8sF# ggc12& #vt
$r   fixture)r    r$   r*   r,   r2   r6   c                 j    |j                  |       }t        j                  |j                  d      sJ y Ntestrt  r   _bn_ok_dtyper   r  rv  r   objs       r   test_bn_ok_dtyper  (  s.     
!
!'
*Csyy&111r   )r;   r?   r^   c                 j    |j                  |       }t        j                  |j                  d      rJ y r  r  r  s       r   test_bn_not_ok_dtyper  0  s1     
!
!'
*C""399f5555r   c                   $    e Zd Zd Zd Zd Zd Zy)TestEnsureNumericc                     t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ y )Nr   g?y      ?       @)r   _ensure_numericr   s    r   test_numeric_valuesz%TestEnsureNumeric.test_numeric_values>  sQ    %%a(A--- %%c*c111 %%f-777r   c                    t        j                  g d      }t        j                  t        j                  |      |      sJ |j                  t              }t        j                  t        j                  |      |      sJ t        j                  g dt              }d}t        j                  t        |      5  t        j                  |       d d d        t        j                  g dt              }d}t        j                  t        |      5  t        j                  |       d d d        y # 1 sw Y   bxY w# 1 sw Y   y xY w)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1&96BBB ==({{611(;VDDD 88O6:=]]9C0 	-""8,	- 881@0]]9C0 	-""8,	- 	-	- 	-	- 	-s   =D4E 4D= E	c                    t        j                  t        d      5  t        j                  d       d d d        t        j                  t        d      5  t        j                  d       d d d        t        j                  t        d      5  t        j                  d       d d d        y # 1 sw Y   |xY w# 1 sw Y   OxY w# 1 sw Y   y xY w)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 	(""3'	(]]H
 	* ""5)	* ]]K
 	+ ""6*	+ 	+	( 	(	* 	*	+ 	+s#   B-B9C-B69CCc                    d}t        j                  t        |      5  t        j                  d       d d d        d}t        j                  t        |      5  t        j                  i        d d d        t        j                  t        |      5  t        j                  g        d d d        y # 1 sw Y   ~xY w# 1 sw Y   OxY w# 1 sw Y   y xY w)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 	*""5)	* 6]]9C0 	'""2&	']]9C0 	'""2&	' 	'	* 	*
	' 	'	' 	's#   B1B=C	1B:=C	CN)rg  rh  ri  r  r  r  r  r   r   r   r  r  =  s    8-*
+
'r   r  c                   l   e Zd Zej                  d        Zej                  d        Zd Zd Zd Z	d Z
d Zej                  j                  d ed	            ej                  j                  d
 ed            d               Zej                  j                  d
 ed            d        Zed        Zy)TestNanvarFixedValuesc                      y)Ng      @r   r   s    r   variancezTestNanvarFixedValues.variancey  s    r   c                 B    | j                   j                  |dz  d      S )N      ?i )scalesize)prngnormal)r   r  s     r   sampleszTestNanvarFixedValues.samples}  s     yyhm&AAr   c                 ^    t        j                  |      }t        j                  ||d       y )N{Gz?rtol)r   r   r   r   )r   r  r  actual_variances       r   test_nanvar_all_finitez,TestNanvarFixedValues.test_nanvar_all_finite  s"     --0
tDr   c                 X   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       y )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}    vvGMM!,<(< ==#SqS --TB
tD --UC
TBr   c                 ^   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       y )	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    vvGMM!,<(< ==#SqS]]<=

z8S=tD]]<>

z266=r   c                    | j                   j                  |j                  d         }t        j                  ||g      }t        j                  |d      }t        j                  |t        j                  |dg      d       y )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  sh    yy((gmmA.>(?))Wl34 --a8
RXXx&:;$	
r   c                     d}| j                   j                  d|dz   f      }t        j                  |d d df<   t	        j
                  |ddd      j                         }t	        j
                  |ddd      j                         }t	        j
                  |ddd	      j                         }d
}t        j                  ||d       t        j                  ||dz
  |z  |z  d       t        j                  ||dz
  |dz
  z  |z  d       y )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2]]74aHMMO
]]74aHMMO
]]74aHMMO
 
z3T: 	zAGq=3+>TJ 	zAGC+@3+FTRr   r   r   r   r   c                 P   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 y )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
BQB &(VV+
WQT] 88 988 988
  mmGDt$G
s2Awt(<=xxA mmGDt$G
s2Awt(<(CDxxAr   c                 x    t        dt        j                  d      z        }|j                  |      }|dk(  sJ y )Ni-r'   )r   r  )r   r   r  r   )r   r   datar  s       r   test_nanstd_roundoffz*TestNanvarFixedValues.test_nanstd_roundoff  s7     i"''"+-.t$}}r   c                 @    t         j                  j                  d      S r   r   r   r   r   s    r   r  zTestNanvarFixedValues.prng      yy$$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  s     ^^  ^^B BEC>
S& [[VU1X.[[VU1X.$  / /$ L [[VU1X. / ( (r   r  c                       e Zd Zej                  d        Zej                  d        Zej                  j                  dg d      d        Z	d Z
d Zd Zd	 Zd
 Zed        Zy)TestNanskewFixedValuesc                 V    t        j                  t        j                  ddd            S Nr   r      r   sinlinspacer   s    r   r  zTestNanskewFixedValues.samples      vvbkk!Q,--r   c                      y)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 y Ni,  r  )r   r  r   r   )r   ry  r  r  s       r   test_constant_seriesz+TestNanskewFixedValues.test_constant_series  0     RWWS\!~~d#s{{r   c                     d\  }}| j                   j                  ||d      }t        j                  |      dk  sJ d\  }}| j                   j                  ||d      }t        j                  |      dkD  sJ y )N333333?皙?d   r  r   r  r  )r  betar   r   r   alphar  left_tailedright_taileds        r   test_all_finitez&TestNanskewFixedValues.test_all_finite  r    tiinnUDsn;~~k*Q...tyy~~eT~<~~l+a///r   c                 Z    t        j                  |      }t        j                  ||       y rA   )r   r   r   r   r   r  r  r  s       r   r  z(TestNanskewFixedValues.test_ground_truth       ~~g&
t[1r   c           	      ,   t        j                  |t         j                  t        j                  t	        |            z  g      }t        j                  |d      }t        j                  |t        j                  |t         j                  g             y Nr   r   )
r   rG   rC   r  r/  r   r   r   r   r  r  s       r   	test_axisz TestNanskewFixedValues.test_axis
  ]    ))Wbffrwws7|/D&DEF~~gA.
tRXX{BFF.C%DEr   c                     t        j                  |t         j                  g      }t        j                  |d      }t        j
                  |      sJ y NFr  )r   hstackrC   r   r   r   )r   r  r  s      r   	test_nansz TestNanskewFixedValues.test_nans  9    ))Wbff-.~~ge4xx~~r   c                     t        j                  |t         j                  g      }t        j                  |d      }t        j                  ||       y NTr  )r   r  rC   r   r   r   r   r  s       r   test_nans_skipnaz'TestNanskewFixedValues.test_nans_skipna  9    ))Wbff-.~~gd3
t[1r   c                 @    t         j                  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2F

2
 ( (r   r  c                       e Zd Zej                  d        Zej                  d        Zej                  j                  dg d      d        Z	d Z
d Zd Zd	 Zd
 Zed        Zy)TestNankurtFixedValuesc                 V    t        j                  t        j                  ddd            S r  r  r   s    r   r  zTestNankurtFixedValues.samples!  r  r   c                      y)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 y r  )r   r  r   r%  )r   ry  r  kurts       r   r  z+TestNankurtFixedValues.test_constant_series)  r  r   c                     d\  }}| j                   j                  ||d      }t        j                  |      dk  sJ d\  }}| j                   j                  ||d      }t        j                  |      dk  sJ y )Nr  r  r  r   r  r   )r  r  r   r%  r  s        r   r  z&TestNankurtFixedValues.test_all_finite0  r  r   c                 Z    t        j                  |      }t        j                  ||       y 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             y 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 y 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                  ||       y r  )r   r  rC   r   r%  r   r   r  s       r   r  z'TestNankurtFixedValues.test_nans_skipnaG  r  r   c                 @    t         j                  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                  j                  dddg      d        Z	y	)
TestDatetime64NaNOps)smsusns)paramsc                     |j                   S rA   )param)r   rv  s     r   unitzTestDatetime64NaNOps.unitR  s    }}r   c                 z   t        j                  dd      j                  |      }|d   }|t        |      t	        |      fD ]  }t        j                  |      }||k(  rJ  |j                  dt         j                        }|t        |      t	        |      fD ]  }t        j                  |      }||k(  rJ  y )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    mmL!4<<TBq6s+VC[9 	&C^^C(FX%%%	& zz!RVV$--vd|< 	&C^^C(FX%%%	&r   constructorM8m8c                    | d| d}t        j                  d      j                  t         j                        j	                  |      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                  ||       y )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  s   -qa(iim""288,11%8@@AFFE2xx||u$$$!E:88M;
##FH5!E:88SYD	3t9c&kJK
##FH5r   N)
rg  rh  ri  r   r  r  r   rj  rk  r1  r   r   r   r  r  Q  sN    V^^23 4
& [[]T4L96 :6r   r  c                  2   t         j                  rot        j                  dd      5  t        j                  d      sJ 	 d d d        t        j                  dd      5  t        j                  d      rJ 	 d d d        y y # 1 sw Y   BxY w# 1 sw Y   y xY w)Nuse_bottleneckTF)r   _BOTTLENECK_INSTALLEDr  option_context
get_optionr   r   r   test_use_bottleneckr7  z  s    ##/6 	3==!1222	3 /7 	7}}%56666	7 	7	 $	3 	3	7 	7s   BBB
Bznumpy_op, expectedr'   g      @r   r  c                 8     | t        g d            }||k(  sJ y )N)r   r   r   r  )r   )numpy_opr"  r  s      r   test_numpy_opsr:    s!    " f\*+FXr   	operationc                     t        ddt        j                  dt        j                  dg      }|j                         } | |j                        } | |j                  |      }||k(  sJ y )Nr   r   r   r  )mask)r   r   rC   r   _values)r;  serr=  median_expectedmedian_results        r   %test_nanops_independent_of_mask_paramrB    sZ    , !Q2661-
.C88:D,Ockk5Mm+++r   	min_countr   c                 D    t        j                  dd |       }d}||k(  sJ y )N)   %   Fr   check_below_min_count)rC  r  expected_results      r   5test_check_below_min_count_negative_or_zero_min_countrJ    s+     ))(D)DFO_$$$r   r=  )FFTT	   Fzmin_count, expected_result)r   F)e   Tc                 D    d}t        j                  || |      }||k(  sJ y )N)r'   r'   rG  )r=  rC  rI  r   r  s        r   -test_check_below_min_count_positive_min_countrN    s+     E))%yAF_$$$r   )l   l$=O Tc                 F    d}t        j                  |d |       }||k(  sJ y )N)i?" i  )r=  rC  rG  )rC  rI  r   r  s       r   &test_check_below_min_count_large_shaperP    s+    
 E))%diPF_$$$r   r   r   r   c                 n    t        j                  t        j                  |       j                  |      rJ y rA   )r   r  r   r   r  )any_real_numpy_dtyper   s     r   test_check_bottleneck_disallowrS    s-     ""288,@#A#F#FMMMMr   ry  )l          l       l   |H%[<c                     t        |t        d      t        j                        }|j	                         }|j
                  j	                         }||k(  sJ ||k(  sJ |j                  t        j                  k(  sJ y )Ni  )indexr   )r   r   r   r,  r   r  r   float64)r   ry  r?  r  	np_results        r   test_nanmean_overflowrX    se     E#Jbhh
7CXXZF

!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 y |j                  |k(  sJ y )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\    sn     }/0
r%
(C!WS&!#F6#?||rzz)))||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    ,			     ? ? & & A A C C ) ) ) ) S S S S & & + + + + ) )   + + ) ) 4 4 2 2  " & &
 6 6
  
 6 6
              kB kB\ ''  
 #56' 7'$ X22
 66
6' 6'rr( r(j0( 0(f0( 0(f&6 &6R7 		B	#	S	C	s			A	A (,)(, r1g.% /% 
T8288018288TFQ%[<P3QR 5
K7PQ% R% 5
DV7WX% Y  % )X!67N 8N
  DE
& F
& 








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