
    Whm                        d dl mZ d dlZd dl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c mZ ej        Z ej        ddg          d	             Z G d
 d          Z G d d          Z G d d          Z G d d          Z  G d d          Z! G d d          Z"d Z#ej$        %                    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-        dfej.        dfej/        dfg
          d             Z0ej$        %                    dej1        ej2        ej'        ej)        ej+        ej3        ej4        ej5        ej6        ej7        ej/        ej.        ej8        ej9        ej:        g          d             Z;ej$        %                    dd d g          d!             Z<ej$        %                    d"d ej=        g d#           ej=        dgd$dgz  z             g          ej$        %                    d%d&d'g          d(                         Z>e
j?        e
j@        ej$        %                    d%d&d)g          d*                                     ZAej$        %                    d+d,d-g          ej$        %                    d.ejB        ejC        ejD        ejE        ejF        ejG        ejH        ejI        ejJ        ejK        ejL        g          d/                         ZMdS )0    )partialN)is_integer_dtype)Seriesisna)DatetimeArrayTF)paramsc                     | j         S )z5
    Fixture to pass skipna to nanops functions.
    )param)requests    ^/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/pandas/tests/test_nanops.pyskipnar      s    
 =    c                      e Zd Zd Zd Zd.dZ	 	 d/dZ	 d0dZ	 	 	 	 	 d1dZd.d	Z	e
j                            d
ej        ej        fej        ej        fg          d             Zd Zd Zd Ze
j                            dej        ej        ej        ej        ej         eedd          g          d             Zd Ze
j                            d ed                    d             Z e
j                            d ed                    d             Z!e"j#        e
j                            d ed                    d                         Z$e
j                            d
ej%        ej&        fej'        ej(        fg          d             Z)d2dZ*d Z+d Z,d2dZ-e"j#        d             Z.e"j#        d             Z/d Z0d  Z1d! Z2d" Z3d# Z4e"j#        d$             Z5e"j#        d%             Z6e"j#        d&             Z7d' Z8d( Z9e
j                            d)e:j;        ej<        fe:j=        ej>        fe:j?        ej@        fe:jA        ejB        fe:jC        ejD        fe:jE        ejF        fg          d*             ZGd+ ZHd, ZId- ZJdS )3TestnanopsDataFramec                 
   t           j                            d           dt          _        d}t          j        j        | | _        t          j        j        | | _        | j        | j        dz  z   | _        t           j        	                    dd|          | _
        t           j        	                    dd|          dk    | _        t          j        | j                                      d	          | _        t          j        | j                                      d
          | _        t           j        	                    dd|                              d          | _        t           j        	                    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 )Ni+  F)      y              ?i
   r      SUi N  M8[ns]m8[ns]Oignoreinvalid)2nprandomseednanops_USE_BOTTLENECKrandn	arr_float
arr_float1arr_complexrandintarr_intarr_boolabsastypearr_strarr_utfarr_date
arr_tdeltatilenanarr_nanvstackarr_float_nanarr_float1_nanarr_nan_float1arr_nan_naninfarr_infarr_float_infarr_nan_infarr_float_nan_infarr_nan_nan_infarr_objerrstatearr_nan_nanjarr_complex_nanarr_nan_infjarr_complex_nan_infjarr_float_2darr_float1_2d
arr_nan_2darr_float_nan_2darr_float1_nan_2darr_nan_float1_2darr_float_1darr_float1_1d
arr_nan_1darr_float_nan_1darr_float1_nan_1darr_nan_float1_1d)self	arr_shapes     r   setup_methodz TestnanopsDataFrame.setup_method!   s   
	u!&	)4)/95>DOb,@@y((b)<<	))!Q	::a?vdn--44S99vdn--44S99	))!UI>>EEhOO)++Aui@@GGQQ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    A1Q==RRc                 (    t           t          _        d S N)use_bnr!   r"   rP   s    r   teardown_methodz#TestnanopsDataFrame.teardown_methoda   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ndimrZ   r   splittmassert_almost_equalAssertionErrorr_   kindr+   realimag)rP   targresr\   r^   
cast_dtypes         r   check_resultsz!TestnanopsDataFrame.check_resultsd   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X3	Ys   )B EGGNc                    t          t          |j                            d gz   D ]L}	|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|}|                     |||	|           |r$ ||fd|	i|}|                     |||	|           |	$ ||fd|i|}|                     |||	|           |r$|	" ||fi |}|                     |||	|           N|j        dk    rd S t          j        |dd          }t          j        |dd          } | j        ||||f|||d	| d S )
Nr\   r\   r   r]   r      r   r[   )r   r^   empty_targfunc)listrangerf   r   allr_   objectr   any
isinstancendarrayr+   boolrq   takecheck_fun_data)rP   testfunctargfunc	testarval	targarvalr   r^   rv   kwargsr\   targartempvalrn   ro   
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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   rv   )endswithre   rd   r   )
rP   r   r   testarr   rv   r   targarr   r   s
             r   	check_funzTestnanopsDataFrame.check_fun   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$   r4   r(   r)   r   r2   r&   rA   r@   r.   r/   convert)funcallow_complexr>   )r   r$   r+   r(   r)   r&   r.   r/   	TypeErrorr   r3   r>   r   _badobj_wrap)rP   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   rb   rc   )r_   rk   r+   )rP   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   rP   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^   rv   )r   r!   nansumr   sumrP   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   c                 
   dD ]}t          |t          d          t          j                  }|                                }|j                                        }||k    sJ ||k    sJ |j        t          j        k    sJ d S )N)l          l       l   |H%[<i  )indexr_   )r   rx   r   int64r   valuesr_   float64)rP   asresult	np_results        r   test_nanmean_overflowz)TestnanopsDataFrame.test_nanmean_overflow.  s    
 6 	. 	.Aqc

"(;;;AVVXXFIQ;;;;Y&&&&<2:-----	. 	.r   r_   float128c                 
   |d S t          t          d          |          }g d}ddg}||z   D ]R} t          ||                      }t          |          r||v r|j        t
          j        k    sJ E|j        |k    sJ Sd S )Nr   r_   )r   stdvarskewkurtminmax)r   rx   rd   r   r_   r   r   )rP   r_   r   group_agroup_bmethodr   s          r   test_returned_dtypez'TestnanopsDataFrame.test_returned_dtype;  s     =F599E***888%.' 	- 	-F'WQ''))F&& -6W+<+<|rz11111|u,,,,,	- 	-r   c           	          t          j        d          5  t          j        dt                     |                     t
          j        t          j        |ddd           d d d            d S # 1 swxY w Y   d S )NTrecordr   Fr   )r   r   r   )	warningscatch_warningssimplefilterRuntimeWarningr   r!   	nanmedianr   medianr   s     r   test_nanmedianz"TestnanopsDataFrame.test_nanmedianU  s    $D111 		 		!(N;;;OO 	# #    		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s   A
A--A14A1ddof   c           	      f    |                      t          j        t          j        |ddd|           d S NFr   )r   r   r   r   )r   r!   nanvarr   r   rP   r   r   s      r   test_nanvarzTestnanopsDataFrame.test_nanvara  @    MF 	 	
 	
 	
 	
 	
r   c           	      f    |                      t          j        t          j        |ddd|           d S r   )r   r!   nanstdr   r   r   s      r   test_nanstdzTestnanopsDataFrame.test_nanstdm  r   r   c                     ddl m} t          j        d          5  |                     t
          j        ||dddd|           d d d            d S # 1 swxY w Y   d S )Nr   )semr   r   Fr   )r   r   r   r   r   )scipy.statsr   r   r?   r   r!   nansem)rP   r   r   r   s       r   test_nansemzTestnanopsDataFrame.test_nansemy  s     	$#####[*** 
	 
	OO# "#  	 	 	
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	s   (AAAc                     t          j        d          5  t          j        dt                     |                     |||d           d d d            d S # 1 swxY w Y   d S )NTr   r   Fr   )r   r   r   r   r   r   s       r   test_nanops_with_warningsz-TestnanopsDataFrame.test_nanops_with_warnings  s     $D111 	D 	D!(N;;;OOFE6UOCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   4AAAc                      |||          }t          j        ||          }t          |          }|j        rd||<   n8t	          |d          r|                                st	          |d          s|rd}|S )Nru   ry   )r   r   r   rf   re   ry   )rP   r   r\   r   ro   nansnullnans          r   _argminmax_wrapz#TestnanopsDataFrame._argminmax_wrap  s    d5$veT""t**8 	CLLGU##		 7E**	 		 C
r   c                    t          j        d          5  t          j        dt                     t	          | j        t          j                  }|                     t          j
        ||d           d d d            d S # 1 swxY w Y   d S NTr   r   r   Fr   )r   r   r   r   r   r   r   argmaxr   r!   	nanargmaxrP   r   r   s      r   test_nanargmaxz"TestnanopsDataFrame.test_nanargmax      $D111 	M 	M!(N;;;4/bi@@@DOOF,dFeOLLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M   ABBBc                    t          j        d          5  t          j        dt                     t	          | j        t          j                  }|                     t          j
        ||d           d d d            d S # 1 swxY w Y   d S r   )r   r   r   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 )Nrc   F)r\   biasr   r[           )	r|   r_   typer   floatingr+   r}   r   r   )rP   r   r\   r   r   s        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           	          ddl m} 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   )r   r   r   r   Fr   r   r   )	r   r   r   r   r   r?   r   r!   nanskew)rP   r   r   r   s       r   test_nanskewz TestnanopsDataFrame.test_nanskew  s    $$$$$$t+$777[*** 	 	OO# "    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   &A%%A),A)c           	         ddl m} t          |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   )kurtosisT)fisherr   r   r   Fr   )	r   r   r   r   r   r?   r   r!   nankurt)rP   r   r   func1r   s        r   test_nankurtz TestnanopsDataFrame.test_nankurt  s    ((((((...t+%888[*** 	 	OO# "    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   &A66A:=A:c                 x    |                      t          j        t          j        |ddt          j                   d S )NF)r   r   rv   )r   r!   nanprodr   prodr   s     r   test_nanprodz TestnanopsDataFrame.test_nanprod  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_periodsrt   )rD   rE   lenrh   ri   rG   rH   r   r1   rF   rI   rP   checkfuntarg0targ1r   res00res01res10res11targ2res20res21res22res23res24res25s                   r   check_nancorr_nancov_2dz+TestnanopsDataFrame.check_nancorr_nancov_2d     *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  )rJ   rK   r  rh   ri   rM   rN   r   r1   rL   rO   r	  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   rt   pearsonr   r   corrcoefrD   rE   flatr  r!   nancorrrJ   rK   r  rP   r  r  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 r  r!  r%  s      r   test_nancorr_pearsonz(TestnanopsDataFrame.test_nancorr_pearsonD  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                    ddl m}  || 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   )
kendalltaukendallr   )r   r*  rD   rE   r#  r  r!   r$  rJ   rK   r  )rP   r*  r  r  s       r   test_nancorr_kendallz(TestnanopsDataFrame.test_nancorr_kendallL  s    ******
4,d.@AA!D
4,143E3JKKAN$$V^UE)$TTT
4,d.@AA!D
4,143E3JKKAN$$V^UE)$TTTTTr   c                    ddl m}  || 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   )	spearmanrspearmanr   )r   r.  rD   rE   r#  r  r!   r$  rJ   rK   r  )rP   r.  r  r  s       r   test_nancorr_spearmanz)TestnanopsDataFrame.test_nancorr_spearmanW  s    ))))))	$+T-?@@C	$+0$2D2IJJ1M$$V^UE*$UUU	$+T-?@@C	$+0$2D2IJJ1M$$V^UE*$UUUUUr   c                 `   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 )Nr  z;Unknown method 'foo', expected one of 'kendall', 'spearman'matchfoor   )r   r"  rD   rE   r#  pytestraises
ValueErrorr  r!   r$  )rP   r  r  msgs       r   test_invalid_methodz'TestnanopsDataFrame.test_invalid_methodb  s    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   2$B##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 )Nr  )r   covrD   rE   r#  r  r!   nancovrJ   rK   r  r%  s      r   test_nancovzTestnanopsDataFrame.test_nancovj  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   c                 >   | j         }| j        }| j        }| j        }| j        }| j        }| j        }	|j        rc |||          }
t          j	        ||
           |j        dk    rt          j        ||g          }nt          j        ||g          } |||          }t          j        ||d           |} |||	          }t          j        ||d           t          j        |dd          }t          j        |dd          }t          j        |dd          }t          j        |dd          }t          j        |dd          }t          j        |dd          }t          j        |	dd          }	t          j        |dd          }|j        ad S d S )Nrt   Fr]   r   ru   r[   )r$   r%   r2   r7   r4   r5   r6   rf   rh   ri   r   r3   hstackassert_numpy_array_equalr   )rP   r
  r  r$   r%   r2   r7   r4   r5   r6   res0r  res1r  res2s                  r   check_nancompz!TestnanopsDataFrame.check_nancompr  s   N	_
,&*,,j 	/8Iz22D"5$///zA~~	5'"233	5'"2338M>::D'tGGGGE8M>::D'tGGGG 	12666IQR888Jggqr222G'+qr:::KGM12>>>MW^QR@@@NW^QR@@@NGE12...E/ j 	/ 	/ 	/ 	/ 	/r   zop,nanopc                 ^     || j         | j                  }|                     ||           d S rT   )r$   r%   rD  )rP   opnanopr  s       r   test_nan_comparisonz'TestnanopsDataFrame.test_nan_comparison  s5     4>4?335%(((((r   c                     t          |dd          rR ||          }|r|sJ n|rJ t          |d          sd S t          j        |dd          }t          |dd          Pd S d S )Nrf   Tr   ru   r[   )rd   re   r   r   )rP   r   r   correctrA  s        r   
check_boolzTestnanopsDataFrame.check_bool  s    eVT** 	/4;;D  tx5&))  GE12...E eVT** 	/ 	/ 	/ 	/ 	/r   c                    g d}g d}|D ]6\  }}t          | |          }|                     t          j        ||           7|D ]\  }}t          | |          }|                     t          j        ||           |                     t          j        |                    d          |           |                     t          j        |                    d          |           d S )N)
r&   F)r(   F)r)   F)r,   F)r-   FrM  )rA   F)r@   F)rB   T)rC   T)	)r$   F)r2   F)r4   F)r7   F)r:   T)r9   T)r;   T)r<   T)r=   Tf4f2)rd   rK  r!   	_has_infsr+   )rP   pairspairs_floatarrrJ  vals         r   test__has_infsz"TestnanopsDataFrame.test__has_infs  s    
 
 


 

 

 " 	< 	<LC$$$COOF,c7;;;;' 	I 	ILC$$$COOF,c7;;;OOF,cjj.>.>HHHOOF,cjj.>.>HHHH		I 	Ir   c                 X   t          j        | j        j        d          sJ t          j        | j        j        d          sJ t          j        | j        j        d          sJ t          j        | j        j        d          sJ t          j        | j        j        d          sJ t          j        | j        j        d          sJ t          j        | j	        j        d          rJ t          j        | j
        j        d          rJ t          j        | j        j        d          rJ d S )Ntest)r!   _bn_ok_dtyper$   r_   r&   r(   r)   r,   r-   r.   r/   r>   rV   s    r   test__bn_ok_dtypez%TestnanopsDataFrame.test__bn_ok_dtype  s   "4>#7@@@@@"4#3#96BBBBB"4<#5v>>>>>"4=#6?????"4<#5v>>>>>"4<#5v>>>>>&t}':FCCCCC&t'<fEEEEE&t|'96BBBBBBBr   )T)TNrT   )TTTTT)NN)K__name__
__module____qualname__rR   rW   rq   r   r   r   r   r5  markparametrizer!   nananyr   r{   nanallry   r   r   r   r   int16int32r   float32r   rd   r   r   rx   r   r   tdskip_if_no_scipyr   nanminr   nanmaxr   r   r   r   r   r   r   r   r  r  r  r&  r(  r,  r0  r9  r=  rD  operatoreqnaneqnenannegtnangtgenangeltnanltlenanlerH  rK  rU  rY   r   r   r   r       s       >; >; >;@( ( (&Y &Y &Y &Y^ 6
 6
 6
 6
r BF
 
 
 
2 7L 7L 7L 7Lr% % % % [&-06="&2IJ V V V
 
 

 
 

. . . [HHHJJGB
D))	

 
- -
 
-
 
 
 [VUU1XX..	
 	
 /.	
 [VUU1XX..	
 	
 /.	
 [VUU1XX..  /.  [&-06="&2IJ D D D
   M M MM M M
 
 
 
      
 
 
+- +- +-Z+- +- +-ZU U UU U U U U U V V V U U UB B B /  /  /D [[&,'[&,'[&,'[&,'[&,'[&,'	

 
) )
 
)/ / /!I !I !IF	C 	C 	C 	C 	Cr   r   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 )Nrt   皙?y      ?       @)r!   _ensure_numericrV   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                 d   t          j        g d          }t          j        t          j        |          |          sJ |                    t                    }t          j        t          j        |          |          sJ t          j        g dt                    }t          j        t          j        |          |          sJ 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)rt   r   r   )123r   )r4  barbazzCould not convert .* to numericr2  )
r   arrayallcloser!   rz  r+   rz   r5  r6  r   )rP   r   o_valuess_valuesr8  s        r   test_ndarrayzTestEnsureNumeric.test_ndarray  sW   )))$${61&996BBBBB ==(({61(;;VDDDDD 8OOO6:::{61(;;VDDDDD 8111@@@0]9C000 	- 	-"8,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   D%%D),D)c                     t          j        t          j        d          d          sJ t          j        t          j        d          d          sJ t          j        t          j        d          d          sJ d S )Nr}        ?z1.1ry  z1+1jy      ?      ?)r   r  r!   rz  rV   s    r   test_convertable_valuesz)TestEnsureNumeric.test_convertable_values  sq    {61#66<<<<<{61%88#>>>>>{61&996BBBBBBBr   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 foo to numericr2  r4  z%argument must be a string or a number)r5  r6  r   r!   rz  )rP   r8  s     r   test_non_convertable_valuesz-TestEnsureNumeric.test_non_convertable_values  s   0]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)rZ  r[  r\  r{  r  r  r  ru  r   r   rw  rw    sS        8 8 8- - -&C C C

' 
' 
' 
' 
'r   rw  c                   P   e Zd Z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x| _         }| j                            |dz  d          | _        d S )Ng      @      ?i )scalesize)varianceprngnormalsamples)rP   r  s     r   rR   z"TestNanvarFixedValues.setup_method  s2    #&&y''hm&'IIr   c                 t    | j         }t          j        |          }t          j        || j        d           d S )N{Gz?rtol)r  r!   r   rh   ri   r  rP   r  actual_variances      r   test_nanvar_all_finitez,TestNanvarFixedValues.test_nanvar_all_finite  s8    , -00
DIIIIIIr   c                 Z   t           j        t          j        d| j        j        d         z            z  }| j        |d d d<   t          j        |d          }t          j        || j	        d           t          j        |d          }t          j        |t           j        d           d S )Nr   r   Tr   r  r  F)
r   r1   onesr  rZ   r!   r   rh   ri   r  r  s      r   test_nanvar_nansz&TestNanvarFixedValues.test_nanvar_nans  s    &271t|'9!'<#<===|! -===
DIIII ->>>
TBBBBBBr   c                 `   t           j        t          j        d| j        j        d         z            z  }| j        |d d d<   t          j        |d          }t          j        || j	        dz  d           t          j
        |d          }t          j        |t           j        d           d S )	Nr   r   Tr  r  r  r  F)r   r1   r  r  rZ   r!   r   rh   ri   r  r   )rP   r  
actual_stds      r   test_nanstd_nansz&TestNanvarFixedValues.test_nanstd_nans(  s    &271t|'9!'<#<===|!]74888

z4=#+=DIIII]75999

z26======r   c                    | j         }| j                            |j        d                   }t	          j        ||g          }t          j        |d          }t          j	        |t	          j
        | j        dg          d           d S )Nr   r  rt   r[   UUUUUU?r  r  )r  r  uniformrZ   r   r3   r!   r   rh   ri   r  r  )rP   samples_normsamples_unifr  r  s        r   test_nanvar_axisz&TestNanvarFixedValues.test_nanvar_axis2  s    |y((l.@.C(DD)\<899 -a888
RXt}h&?@@t	
 	
 	
 	
 	
 	
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'  rt   r  ru   Tr   )r\   r   r   r   r  r  r  r  g       @)	r  r  r   r1   r!   r   r   rh   ri   )rP   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  r1   r!   r   rh   ri   isnanr   )rP   r\   r   r  r  r   r   s          r   test_ground_truthz'TestNanvarFixedValues.test_ground_truthP  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   )rP   r   datar   s       r   test_nanstd_roundoffz*TestNanvarFixedValues.test_nanstd_roundoffx  sB     i"'"++-..t$$}}}}}}r   c                 @    t           j                            d          S Ni  r   r   RandomStaterV   s    r   r  zTestNanvarFixedValues.prng      y$$T***r   N)rZ  r[  r\  rR   r  r  r  r  r  r5  r]  r^  rx   r  r  propertyr  ru  r   r   r  r    s'       J J J
J J J
C C C> > >	
 	
 	
S S S& [VUU1XX..[VUU1XX..$  $  /. /.$ L [VUU1XX..  /. + + X+ + +r   r  c                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
d             Zd	S )
TestNanskewFixedValuesc                 n    t          j        t          j        ddd                    | _        d| _        d S )Nr   rt      g5ȿ)r   sinlinspacer  actual_skewrV   s    r   rR   z#TestNanskewFixedValues.setup_method  /    vbk!Q4455.r   c                 v    dD ]5}|t          j        d          z  }t          j        |          }|dk    sJ 6d S )Ngfffff@g@g     @,  r   )r   r  r!   r   )rP   rT  r  r   s       r   test_constant_seriesz+TestNanskewFixedValues.test_constant_series  sK    + 	 	C%D>$''D3;;;;;	 	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   rP   alphar  left_tailedright_taileds        r   test_all_finitez&TestNanskewFixedValues.test_all_finite      tinnUDsn;;~k**Q....ty~~eT~<<~l++a//////r   c                 l    t          j        | j                  }t          j        || j                   d S rT   )r!   r   r  rh   ri   r  )rP   r   s     r   r  z(TestNanskewFixedValues.test_ground_truth  /    ~dl++
tT%566666r   c           	      :   t          j        | j        t           j        t          j        t          | j                            z  g          }t          j        |d          }t          j	        |t          j
        | j        t           j        g                     d S Nrt   r[   )r   r3   r  r1   r  r  r!   r   rh   ri   r  r  rP   r  r   s      r   	test_axisz TestNanskewFixedValues.test_axis  t    )T\26BGC<M<M4N4N+NOPP~gA...
tRXt/?.H%I%IJJJJJr   c                     t          j        | j        t           j        g          }t	          j        |d          }t          j        |          sJ d S NFr  )r   r?  r  r1   r!   r   r  r  s      r   	test_nansz TestNanskewFixedValues.test_nans  G    )T\26233~ge444x~~~r   c                     t          j        | j        t           j        g          }t	          j        |d          }t          j        || j                   d S NTr  )	r   r?  r  r1   r!   r   rh   ri   r  r  s      r   test_nans_skipnaz'TestNanskewFixedValues.test_nans_skipna  J    )T\26233~gd333
tT%566666r   c                 @    t           j                            d          S r  r  rV   s    r   r  zTestNanskewFixedValues.prng  r  r   N)rZ  r[  r\  rR   r  r  r  r  r  r  r  r  ru  r   r   r  r    s        / / /
  0 0 07 7 7K K K
  
7 7 7
 + + X+ + +r   r  c                       e Zd Z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                 n    t          j        t          j        ddd                    | _        d| _        d S )Nr   rt   r  g|vK)r   r  r  r  actual_kurtrV   s    r   rR   z#TestNankurtFixedValues.setup_method  r  r   rT  r  c                 l    |t          j        d          z  }t          j        |          }|dk    sJ d S )Nr  r   )r   r  r!   r   )rP   rT  r  r   s       r   r  z+TestNankurtFixedValues.test_constant_series  s6     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 r  )r  r  r!   r   r  s        r   r  z&TestNankurtFixedValues.test_all_finite  r  r   c                 l    t          j        | j                  }t          j        || j                   d S rT   )r!   r   r  rh   ri   r  )rP   r   s     r   r  z(TestNankurtFixedValues.test_ground_truth  r  r   c           	      :   t          j        | j        t           j        t          j        t          | j                            z  g          }t          j        |d          }t          j	        |t          j
        | j        t           j        g                     d S r  )r   r3   r  r1   r  r  r!   r   rh   ri   r  r  rP   r  r   s      r   r  z TestNankurtFixedValues.test_axis  r  r   c                     t          j        | j        t           j        g          }t	          j        |d          }t          j        |          sJ d S r  )r   r?  r  r1   r!   r   r  r  s      r   r  z TestNankurtFixedValues.test_nans  r  r   c                     t          j        | j        t           j        g          }t	          j        |d          }t          j        || j                   d S r  )	r   r?  r  r1   r!   r   rh   ri   r  r  s      r   r  z'TestNankurtFixedValues.test_nans_skipna  r  r   c                 @    t           j                            d          S r  r  rV   s    r   r  zTestNankurtFixedValues.prng  r  r   N)rZ  r[  r\  rR   r5  r]  r^  r  r  r  r  r  r  r  r  ru  r   r   r  r    s        / / /
 [U$<$<$<==  >=0 0 07 7 7K K K
  
7 7 7
 + + X+ + +r   r  c                   `    e Zd Zd Zej                            dddg          d             ZdS )TestDatetime64NaNOpsc                 z   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   )periodsrt   )pd
date_ranger   r   r!   r   insertNaT)rP   dtiexpectedobjr   dti2s         r   r   z!TestDatetime64NaNOps.test_nanmean  s    mL!444q6s++VC[[9 	& 	&C^C((FX%%%%%zz!RV$$---vd||< 	& 	&C^C((FX%%%%%	& 	&r   r_   r   r   c                 |   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  )ru   ru   Fr  r   rs   )r  r  r  r   rt   r  )rt   rt   )r   rt   )r   aranger+   r   viewreshaper!   r   isnatr_   r  rh   r@  )rP   r_   rS  r   r  s        r   test_nanmean_skipna_falsez.TestDatetime64NaNOps.test_nanmean_skipna_false  s   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)rZ  r[  r\  r   r5  r]  r^  r  ru  r   r   r  r    sV        & & & [Wx&:;;6 6 <;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_optionru  r   r   test_use_bottleneckr    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      @rt   r  c                 J     | t          g d                    }||k    sJ d S )N)rt   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          }|                                } | |          } | ||          }||k    sJ d S )Nrt   r   r   r  )mask)r   r   r1   r   )r  r   r  median_expectedmedian_results        r   %test_nanops_independent_of_mask_paramr  +  sg    , 	1bfa+,,A6688DillOIad+++Mm++++++r   	min_countru   c                 F    t          j        dd |           }d}||k    sJ d S )N)   %   Fr!   check_below_min_count)r  r   expected_results      r   6test_check_below_min_count__negative_or_zero_min_countr  H  s4     )(D)DDFO_$$$$$$r   r  )FFT	   zmin_count, expected_result)rt   F)e   Tc                 F    d}t          j        || |          }||k    sJ d S )N)r   r   r  )r  r  r  rZ   r   s        r   .test_check_below_min_count__positive_min_countr!  P  s4     E)%yAAF_$$$$$$r   )l   l$=O Tc                 H    d}t          j        |d |           }||k    sJ d S )N)i?" i  )r  r  r  )r  r  rZ   r   s       r   'test_check_below_min_count__large_shaper#  [  s7    
 E)%diPPPF_$$$$$$r   r   r   r   r_   c                 4    t          j        | |          rJ d S rT   )r!   rX  )r_   r   s     r   test_check_bottleneck_disallowr%  e  s#    & "5$///////r   )N	functoolsr   rh  r   numpyr   r5  pandas.util._test_decoratorsutil_test_decoratorsrd  pandas.core.dtypes.commonr   pandasr  r   r   pandas._testing_testingrh   pandas.core.arraysr   pandas.core.nanopscorer!   r"   rU   fixturer   r   rw  r  r  r  r  r  r]  r^  r   r   r   r   r   r   r   r   rf  rg  r  r_  r`  r   r   r   r   r   r   r   r  r  r  r  r!  skip_if_windowsskip_if_32bitr#  uint8uint16uint32uint64int8ra  rb  r   float16rc  r   r%  ru  r   r   <module>r;     s                ) ) ) ) ) ) ) ) ) 6 6 6 6 6 6                  , , , , , , # # # # # # # # #		 e}%%%  &%}
C }
C }
C }
C }
C }
C }
C }
C@-' -' -' -' -' -' -' -'`r+ r+ r+ r+ r+ r+ r+ r+j.+ .+ .+ .+ .+ .+ .+ .+b.+ .+ .+ .+ .+ .+ .+ .+b!6 !6 !6 !6 !6 !6 !6 !6H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

	
	
	









  0 0!  87"0 0 0r   