
    Mh:                        S SK Jr  S SKrS SKrS SKJs  Jr  S SK	J
r
  S SKrS SKJrJr  S SKJr  S SKJr  \R(                  r\R,                  S 5       r\R,                  S 5       r\R,                  S 5       r\R,                  S	 5       r\R,                  S
 5       r\R,                  S 5       r\R,                  S 5       r\R,                  S 5       r\R,                  S 5       r\R,                  S 5       r \R,                  S 5       r!\R,                  S 5       r"\R,                  S 5       r#\R,                  S 5       r$\R,                  S 5       r%\R,                  S 5       r&\R,                  S 5       r'\R,                  S 5       r(\R,                  S 5       r)\R,                  S 5       r*\R,                  S 5       r+\R,                  S 5       r,\R,                  S 5       r-\R,                  S 5       r.\R,                  S 5       r/\R,                  S 5       r0\R,                  S  5       r1\R,                  S! 5       r2\R,                  S" 5       r3 " S# S$5      r4\Rj                  Rm                  S%/ S&Q5      S' 5       r7\Rj                  Rm                  S%/ S(Q5      \Rj                  Rm                  S)/ S*Q5      S+ 5       5       r8\Rj                  Rm                  S,/ S-Q5      S. 5       r9\Rj                  Rm                  S,/ S/Q5      S0 5       r: " S1 S25      r; " S3 S45      r< " S5 S65      r= " S7 S85      r> " S9 S:5      r?S; r@\Rj                  Rm                  S<\R                  S=4\R                  S=4\R                  S>4\R                  S>4\R                  S>4\R                  S>4\R                  S?4\R                  S@4\R                  S?4\R                  S@4/
5      SA 5       rK\Rj                  Rm                  SB\R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  /5      SC 5       rV\Rj                  Rm                  SDSES /5      SF 5       rW\Rj                  Rm                  SGS\R                  " / SHQ5      \R                  " SI/SJSK/-  -   5      /5      \Rj                  Rm                  SLSMSN/5      SO 5       5       rY\R                  \R                  \Rj                  Rm                  SLSMSP/5      SQ 5       5       5       r\\Rj                  Rm                  SRSSST/5      SU 5       r]\Rj                  Rm                  SV/ SWQ5      SX 5       r^\Rj                  Rm                  SY\R                  \R                  \R                  \R                  \R                  \d" \SZS5      /5      \Rj                  Rm                  S[/ S\Q5      S] 5       5       reg)^    )partialN)is_integer_dtype)Seriesisna)nanopsc              #      #    U R                  5        nUR                  [        SS5        S v   S S S 5        g ! , (       d  f       g = f7f)N_USE_BOTTLENECKF)contextsetattrr   )monkeypatchms     J/var/www/html/env/lib/python3.13/site-packages/pandas/tests/test_nanops.pydisable_bottleneckr      s2     				!			&+U3 
		s   A	8	A	
AA	c                      g)N       r       r   	arr_shaper      s    r   c                 ^    [         R                  R                  S5      R                  U 5      $ N   )nprandomdefault_rngstandard_normalr   s    r   	arr_floatr   !   s"    99  #33I>>r   c                     X S-  -   $ )N              ?r   r   s    r   arr_complexr#   &   s    2~%%r   c                 b    [         R                  R                  S5      R                  SSU 5      $ )Nr   
   r   r   r   integersr   s    r   arr_intr)   +   s&    99  #,,S"i@@r   c                 h    [         R                  R                  S5      R                  SSU 5      S:H  $ )Nr   r   r'   r   s    r   arr_boolr+   0   s+    99  #,,Q9=BBr   c                 L    [         R                  " U 5      R                  S5      $ )NSr   absastyper"   s    r   arr_strr1   5       66)##C((r   c                 L    [         R                  " U 5      R                  S5      $ )NUr.   r"   s    r   arr_utfr5   :   r2   r   c                     [         R                  R                  S5      R                  SSU 5      R	                  S5      $ )Nr   r    N  M8[ns]r   r   r   r(   r0   r   s    r   arr_dater:   ?   1    99  #,,QyAHHRRr   c                     [         R                  R                  S5      R                  SSU 5      R	                  S5      $ )Nr   r   r7   m8[ns]r9   r   s    r   
arr_tdeltar>   D   r;   r   c                 L    [         R                  " [         R                  U 5      $ N)r   tilenanr   s    r   arr_nanrC   I   s    772669%%r   c                 0    [         R                  " X/5      $ r@   r   vstack)r   rC   s     r   arr_float_nanrG   N       99i)**r   c                 0    [         R                  " X/5      $ r@   rE   )rC   r   s     r   arr_nan_float1rJ   S   s    99g)**r   c                 0    [         R                  " X /5      $ r@   rE   rC   s    r   arr_nan_nanrM   X       99g'((r   c                 (    U [         R                  -  $ r@   )r   infr"   s    r   arr_infrQ   ]   s    rvvr   c                 0    [         R                  " X/5      $ r@   rE   )r   rQ   s     r   arr_float_infrS   b   rH   r   c                 0    [         R                  " X/5      $ r@   rE   rC   rQ   s     r   arr_nan_infrV   g   rN   r   c                 2    [         R                  " XU/5      $ r@   rE   )r   rC   rQ   s      r   arr_float_nan_infrX   l   s    99i'233r   c                 2    [         R                  " X U/5      $ r@   rE   rU   s     r   arr_nan_nan_infrZ   q   s    99g011r   c                 .   [         R                  " U R                  S5      UR                  S5      UR                  S5      UR                  S5      UR                  S5      UR                  S5      UR                  S5      UR                  S5      /5      $ )NO)r   rF   r0   )r   r)   r+   r#   r1   r5   r:   r>   s           r   arr_objr]   v   s     99S!NN3OOC s#NN3NN3OOC c"		
 r   c                 n    [         R                  " SS9   X S-  -   sS S S 5        $ ! , (       d  f       g = fNignoreinvalidr!   r   errstaterL   s    r   arr_nan_nanjre      s$    	X	&2% 
'	&	&s   &
4c                     [         R                  " SS9   [         R                  " X/5      sS S S 5        $ ! , (       d  f       g = fNr`   ra   r   rd   rF   )r#   re   s     r   arr_complex_nanri      )    	X	&yy+45 
'	&	&	   6
Ac                 j    [         R                  " SS9   U S-  sS S S 5        $ ! , (       d  f       g = fr_   rc   )rQ   s    r   arr_nan_infjrm      s!    	X	&| 
'	&	&s   $
2c                     [         R                  " SS9   [         R                  " X/5      sS S S 5        $ ! , (       d  f       g = frg   rh   )r#   rm   s     r   arr_complex_nan_infjro      rj   rk   c                     U S S 2S4   $ Nr   r   r"   s    r   arr_float_1drr      s    QT?r   c                     U S S 2S4   $ rq   r   rL   s    r   
arr_nan_1drt      s    1a4=r   c                     U S S 2S4   $ rq   r   )rG   s    r   arr_float_nan_1drv      s    Ar   c                     U S S 2S4   $ rq   r   )arr_float1_nans    r   arr_float1_nan_1dry          !Q$r   c                     U S S 2S4   $ rq   r   )rJ   s    r   arr_nan_float1_1dr|      rz   r   c                      \ rS rSrS rS rS&S jr  S'S jr S(S jr     S)S jr	S&S	 jr
\R                  R                  S
\R                  \R"                  4\R$                  \R&                  4/5      S 5       rS rS r\R                  R/                  S5      S 5       r\R                  R                  S\" S5      5      S 5       r\R                  R                  S\" S5      5      S 5       r\R                  R                  S\" S5      5      S 5       r\R                  R/                  S5      \R                  R                  S
\R:                  \R<                  4\R>                  \R@                  4/5      S 5       5       r!S*S jr"\R                  R/                  S5      S 5       r#\R                  R/                  S5      S 5       r$S*S jr%S r&S r'S r(S r)S r*S r+S  r,S! r-S" r.S# r/S$ r0S%r1g)+TestnanopsDataFrame   c                    S[         l        Sn[        R                  R	                  S5      R                  U5      U l        [        R                  R	                  S5      R                  U5      U l        U R                  U R                  S-  -   U l        [        R                  R	                  S5      R                  SSU5      U l
        [        R                  R	                  S5      R                  SSU5      S:H  U l        [        R                  " U R                  5      R                  S5      U l        [        R                  " U R                  5      R                  S	5      U l        [        R                  R	                  S5      R                  SS
U5      R                  S5      U l        [        R                  R	                  S5      R                  SS
U5      R                  S5      U l        [        R$                  " [        R&                  U5      U l        [        R*                  " U R                  U R(                  /5      U l        [        R*                  " U R                  U R(                  /5      U l        [        R*                  " U R(                  U R                  /5      U l        [        R*                  " U R(                  U R(                  /5      U l        U R                  [        R4                  -  U l        [        R*                  " U R                  U R6                  /5      U l        [        R*                  " U R(                  U R6                  /5      U l        [        R*                  " U R                  U R(                  U R6                  /5      U l        [        R*                  " U R(                  U R(                  U R6                  /5      U l        [        R*                  " U R                  R                  S5      U R                  R                  S5      U R                  R                  S5      U R                  R                  S5      U R                  R                  S5      U R                  R                  S5      U R                   R                  S5      U R"                  R                  S5      /5      U l         [        RB                  " SS9   U R(                  U R(                  S-  -   U l"        [        R*                  " U R                  U RD                  /5      U l#        U R6                  S-  U l$        [        R*                  " U R                  U RH                  /5      U l%        S S S 5        U R                  U l&        U R                  U l'        U R(                  U l(        U R,                  U l)        U R.                  U l*        U R0                  U l+        U R                  S S 2S4   U l,        U R                  S S 2S4   U l-        U R(                  S S 2S4   U l.        U R,                  S S 2S4   U l/        U R.                  S S 2S4   U l0        U R0                  S S 2S4   U l1        g ! , (       d  f       GN= f)NFr   r   r!   r%   r&   r   r-   r4   r7   r8   r=   r\   r`   ra   )2r   r	   r   r   r   r   r   
arr_float1r#   r(   r)   r+   r/   r0   r1   r5   r:   r>   rA   rB   rC   rF   rG   rx   rJ   rM   rP   rQ   rS   rV   rX   rZ   r]   rd   re   ri   rm   ro   arr_float_2darr_float1_2d
arr_nan_2darr_float_nan_2darr_float1_nan_2darr_nan_float1_2drr   arr_float1_1drt   rv   ry   r|   )selfr   s     r   setup_method 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+	
 [[* $t||b/@ @D#%99d.>.>@Q@Q-R#SD  $r 1D(*		43C3CTEVEV2W(XD% + !NN!__,, $ 2 2!%!4!4!%!4!4 NN1a40!__QT2,,q!t, $ 2 21a4 8!%!4!4QT!:!%!4!4QT!:+ +*s   BY22
Zc                 "    [         [        l        g r@   )use_bnr   r	   r   s    r   teardown_method#TestnanopsDataFrame.teardown_method   s
    !'r   c                    [        USU5      nUS:w  ab  [        US5      (       aQ  UR                  (       a@  UR                  UR                  :w  a&  [        R
                  " X!R                  S   /SS9S   n [        R                  " XUS9  g ! [         Gat    [        US5      (       a  UR                  S:X  a  e [        US5      (       a  UR                  R                  S;  a  e UR                  R                  S	:X  ar  UR                  R                  S	:w  a  UR                  UR                  5      nOW[        [        S
5      (       a  SOSnUR                  U5      nUR                  U5      nOUR                  R                  S	:X  a  e [        R                  " [        R                  " U5      [        R                  " U5      US9  [        R                  " [        R                  " U5      [        R                  " U5      US9   g f = f)Nasm8r   shapeaxischeck_dtypedtyper=   )cr\   r\   
complex128c16f8)getattrhasattrndimr   r   splittmassert_almost_equalAssertionErrorr   kindr0   realimag)r   targresr   r   
cast_dtypes         r   check_results!TestnanopsDataFrame.check_results   s{   c63' AIg&&		

cii'((3Aa8;C	Y""4+F 	YtW%%$***@
 3((CIINN*,L yy~~$::??c)**TZZ0C*1"l*C*CJ**Z0C;;z2D C'""2774="''#,KX""2774="''#,KX1	Ys   7B E<HHNc                 x   [        [        UR                  5      5      S /-    GH  n	U(       a  UOUn
U(       a1  U(       a*  [        U
5      R	                  5       (       a  U" U
4SU	0UD6nOU" U
4SU	0UD6nU
R
                  [        :X  af  U[        R                  L d  U[        R                  L a@  [        U[        R                  5      (       a  UR                  [        5      nO[        U5      nU" U4XS.UD6n[        U[        R                  5      (       aM  [        U[        5      (       a8  [        R                  " U5      (       a  [        R                  " U5      (       a  UnU R!                  XXS9  U(       a  U" U4SU	0UD6nU R!                  XXS9  U	c  U" U4SU0UD6nU R!                  XXS9  U(       d  GM  U	b  GM  U" U40 UD6nU R!                  XXS9  GM     UR                  S::  a  g [        R"                  " USSS9n[        R"                  " USSS9nU R$                  " UUUU4UUUS	.UD6  g )
Nr   r   skipnar   r      r   r   )r   r   empty_targfunc)listranger   r   allr   objectr   any
isinstancendarrayr0   boolr   floatisnanr   takecheck_fun_data)r   testfunctargfunc	testarval	targarvalr   r   r   kwargsr   targartempvalr   r   
testarval2
targarval2s                  r   r   "TestnanopsDataFrame.check_fun_data'  s    y~~./4&8D)/IYM.T--@-D-D-F-F%mI$I&ICDCFC""f,BFF"h"&&&8 dBJJ//;;t,D:D9I4I&IC 4//sE**HHTNNHHSMM t$Hy>t>v>""4d"L|yBB6B""4d"Lv$,y3F3""4d"LI 9L >>Q WWY3
WWY3
			

 #)		
 		
r   c                     UnUR                  S5      (       a  [        XS S 5      (       a  US S n[        X5      n[        X5      n	U R                  " UUUU	4UUS.UD6  g )N_nan)r   r   )endswithr   r   r   )
r   r   r   testarr   r   r   targarr   r   s
             r   	check_funTestnanopsDataFrame.check_funi  sx     ??6""wtCR['A'ACR[FD)	D)			

 )	
 	
r   c	                 P   U R                   " XSU40 U	D6  U R                   " XSU40 U	D6  U R                   " XSU40 U	D6  U R                   " XSU40 U	D6  U R                  R                  S5      U R                  R                  S5      U R                  R                  S5      /n
U(       a  U R                   " XSU40 U	D6  U(       ad  U R                   " XSU40 U	D6  U R                   " XSU40 U	D6  U(       a  U R                   " XS	U40 U	D6  XR
                  R                  S5      /-  n
U(       aE  U" U R                  5        U R                   " XS
U40 U	D6  XR                  R                  S5      /-  n
U(       aF   U" U R                  5        U R                   " XSU40 U	D6  XR                  R                  S5      /-  n
U(       aK  [        R                  " U
5      U l        US:X  a  [        U R                  X$S9nU R                   " XSU40 U	D6  g g ! [         a     N_f = f)Nr   rG   r)   r+   r\   rC   r#   ri   re   r:   r>   convert)funcallow_complexr]   )r   r   r0   r)   r+   r#   r:   r>   	TypeErrorr   rF   r]   r   _badobj_wrap)r   r   r   r   r   allow_all_nan
allow_dateallow_tdelta	allow_objr   objss              r   
check_funsTestnanopsDataFrame.check_funs|  s    	x;I&Ix?FMfMx9fGGx:vHHNN!!#&LL$MM  %
 NN8y&KFKNN8}fOONN8/@&SFSx>6TVT%%,,S122DT]]#NN8z6LVL]]))#.//D6) x<R6R//45599T?DL I%"%%H NN8y&KFK   s    H 
H%$H%c                     UR                   R                  S:X  a*  U(       a  UR                  S5      nOUR                  S5      nU" U40 UD6$ )Nr\   r   r   )r   r   r0   )r   valuer   r   r   s        r   r    TestnanopsDataFrame._badobj_wrap  sC    ;;s"U+T*E$V$$r   znan_op,np_opc                 (    U R                  XUSSS9  g )NF)r   r   r   r   nan_opnp_opr   s       r   test_nan_funcs"TestnanopsDataFrame.test_nan_funcs  s     	vUuUr   c           	          U R                  [        R                  [        R                  USS[        R                  S9  g )NF)r   r   r   )r   r   nansumr   sumr   r   s     r   test_nansumTestnanopsDataFrame.test_nansum  s1    MMFF99 	 	
r   c                 b    U R                  [        R                  [        R                  USSS9  g )NF)r   r   )r   r   nanmeanr   meanr   s     r   test_nanmean TestnanopsDataFrame.test_nanmean  s&    NNBGGVu 	 	
r   zignore::RuntimeWarningc           	      d    U R                  [        R                  [        R                  USSSS9  g )NFr   )r   r   r   )r   r   	nanmedianr   medianr   s     r   test_nanmedian"TestnanopsDataFrame.test_nanmedian  s/    II 	 	
r   ddof   c           
      f    U R                  [        R                  [        R                  USSSUS9  g NFr   )r   r   r   r   )r   r   nanvarr   varr   r   r   s      r   test_nanvarTestnanopsDataFrame.test_nanvar  0    MMFF 	 	
r   c           
      f    U R                  [        R                  [        R                  USSSUS9  g r   )r   r   nanstdr   stdr   s      r   test_nanstdTestnanopsDataFrame.test_nanstd  r   r   c                     [         R                  " S5      n[        R                  " SS9   U R	                  [
        R                  UR                  USSSSUS9  S S S 5        g ! , (       d  f       g = f)Nscipy.statsr`   ra   Fr   )r   r   r   r   r   )pytestimportorskipr   rd   r   r   nansemsem)r   r   r   sp_statss       r   test_nansemTestnanopsDataFrame.test_nansem  s[    &&}5[[*OO# "#  	 +**s   /A##
A1c                 &    U R                  XUSS9  g )NFr   r   r   s       r   test_nanops_with_warnings-TestnanopsDataFrame.test_nanops_with_warnings  s    
 	v?r   c                    U" X5      n[         R                  " X5      n[        U5      nUR                  (       a  SXF'   U$ [	        US5      (       a  UR                  5       (       d  [	        US5      (       d	  U(       a  SnU$ )Nr   r   )r   minr   r   r   r   )r   r   r   r   r   nansnullnans          r   _argminmax_wrap#TestnanopsDataFrame._argminmax_wrap  sl    5vve"t*88CL 
 GU##7E**C
r   c                     [        U R                  [        R                  S9nU R	                  [
        R                  X!SS9  g Nr   Fr  )r   r  r   argmaxr   r   	nanargmaxr   r   r   s      r   test_nanargmax"TestnanopsDataFrame.test_nanargmax  0    t++"))<(($%Hr   c                     [        U R                  [        R                  S9nU R	                  [
        R                  X!SS9  g r  )r   r  r   argminr   r   	nanargminr  s      r   test_nanargmin"TestnanopsDataFrame.test_nanargmin   r   r   c                    [        UR                  R                  [        R                  5      (       d  UR                  S5      nU" XSS9n[        U[        R                  5      (       a.  SU[        R                  " XS9[        R                  " XS9:H  '   U$ [        R                  " U5      [        R                  " U5      :X  a  gU$ )Nr   F)r   biasr   r           )	r   r   typer   floatingr0   r   maxr  )r   valuesr   r   results        r   _skew_kurt_wrap#TestnanopsDataFrame._skew_kurt_wrap%  s    &,,++R[[99]]4(Ffe4fbjj))MNF266&,v0IIJMVVF^rvvf~-r   c           
         [         R                  " S5      n[        U R                  UR                  S9n[
        R                  " SS9   U R                  [        R                  UUSSSS9  S S S 5        g ! , (       d  f       g = f)Nr  r  r`   ra   Fr   r   r   )
r  r  r   r.  skewr   rd   r   r   nanskew)r   r   r  r   s       r   test_nanskew TestnanopsDataFrame.test_nanskew1  sg    &&}5t++(--@[[*OO# "   +**s   	#A55
Bc           
          [         R                  " S5      n[        UR                  SS9n[        U R                  US9n[
        R                  " SS9   U R                  [        R                  UUSSSS9  S S S 5        g ! , (       d  f       g = f)	Nr  T)fisherr  r`   ra   Fr1  )
r  r  r   kurtosisr.  r   rd   r   r   nankurt)r   r   r  func1r   s        r   test_nankurt TestnanopsDataFrame.test_nankurt?  su    &&}5))$7t++%8[[*OO# "   +**s   #A??
Bc           	          U R                  [        R                  [        R                  USS[        R                  S9  g )NF)r   r   r   )r   r   nanprodr   prodr   s     r   test_nanprod TestnanopsDataFrame.test_nanprodN  s1    NNGG:: 	 	
r   c                    U" U R                   U R                  40 UD6nU" U R                   U R                  4S[        U R                   5      S-
  0UD6n[        R                  " X%5        [        R                  " X&5        U" U R
                  U R                  40 UD6nU" U R
                  U R                  4S[        U R                   5      S-
  0UD6n[        R                  " X75        [        R                  " X85        [        R                  n	U" U R                  U R                  40 UD6n
U" U R                   U R                  40 UD6nU" U R                  U R                  40 UD6nU" U R
                  U R                  40 UD6nU" U R
                  U R                  4S[        U R                   5      S-
  0UD6nU" U R                   U R                  4S[        U R                   5      S-   0UD6n[        R                  " X5        [        R                  " X5        [        R                  " X5        [        R                  " X5        [        R                  " X5        [        R                  " X5        g Nmin_periodsr   )r   r   lenr   r   r   r   r   rB   r   r   r   checkfuntarg0targ1r   res00res01res10res11targ2res20res21res22res23res24res25s                   r   check_nancorr_nancov_2d+TestnanopsDataFrame.check_nancorr_nancov_2dX  E   **D,>,>I&I
 D--.2
 	
 	u,
u,..0F0FQ&Q!!""
 D--.2
 	
 	u,
u,$*<*<GG**DOOFvF$//DVD..0F0FQ&Q!!""
 D--.2
 	
 
 D--.2
 	
 	u,
u,
u,
u,
u,
u,r   c                    U" U R                   U R                  40 UD6nU" U R                   U R                  4S[        U R                   5      S-
  0UD6n[        R                  " X%5        [        R                  " X&5        U" U R
                  U R                  40 UD6nU" U R
                  U R                  4S[        U R                   5      S-
  0UD6n[        R                  " X75        [        R                  " X85        [        R                  n	U" U R                  U R                  40 UD6n
U" U R                   U R                  40 UD6nU" U R                  U R                  40 UD6nU" U R
                  U R                  40 UD6nU" U R
                  U R                  4S[        U R                   5      S-
  0UD6nU" U R                   U R                  4S[        U R                   5      S-   0UD6n[        R                  " X5        [        R                  " X5        [        R                  " X5        [        R                  " X5        [        R                  " X5        [        R                  " X5        g rC  )rr   r   rE  r   r   rv   ry   r   rB   rt   r|   rF  s                   r   check_nancorr_nancov_1d+TestnanopsDataFrame.check_nancorr_nancov_1d  rW  r   c                 B   [         R                  " U R                  U R                  5      S   n[         R                  " U R                  R                  U R                  R                  5      S   nU R                  [        R                  X5        [         R                  " U R                  U R                  5      S   n[         R                  " U R                  R                  U R                  R                  5      S   nU R                  [        R                  XSS9  g Nr   r   pearsonmethodr   corrcoefr   r   flatrU  r   nancorrrr   r   rY  r   rH  rI  s      r   test_nancorr TestnanopsDataFrame.test_nancorr  s    D--t/A/AB4HD--22D4F4F4K4KLTR$$V^^UBD--t/A/AB4HD--22D4F4F4K4KLTR$$V^^U)$Tr   c                 @   [         R                  " U R                  U R                  5      S   n[         R                  " U R                  R                  U R                  R                  5      S   nU R                  [        R                  XSS9  [         R                  " U R                  U R                  5      S   n[         R                  " U R                  R                  U R                  R                  5      S   nU R                  [        R                  XSS9  g r\  ra  re  s      r   test_nancorr_pearson(TestnanopsDataFrame.test_nancorr_pearson  s    D--t/A/AB4HD--22D4F4F4K4KLTR$$V^^U)$TD--t/A/AB4HD--22D4F4F4K4KLTR$$V^^U)$Tr   c                 D   [         R                  " S5      nUR                  U R                  U R                  5      S   nUR                  U R                  R
                  U R                  R
                  5      S   nU R                  [        R                  X#SS9  UR                  U R                  U R                  5      S   nUR                  U R                  R
                  U R                  R
                  5      S   nU R                  [        R                  X#SS9  g )Nr  r   kendallr_  )r  r  
kendalltaur   r   rc  rU  r   rd  rr   r   rY  r   r  rH  rI  s       r   test_nancorr_kendall(TestnanopsDataFrame.test_nancorr_kendall  s    &&}5##D$5$5t7I7IJ1M##D$5$5$:$:D<N<N<S<STUVW$$V^^U)$T##D$5$5t7I7IJ1M##D$5$5$:$:D<N<N<S<STUVW$$V^^U)$Tr   c                 D   [         R                  " S5      nUR                  U R                  U R                  5      S   nUR                  U R                  R
                  U R                  R
                  5      S   nU R                  [        R                  X#SS9  UR                  U R                  U R                  5      S   nUR                  U R                  R
                  U R                  R
                  5      S   nU R                  [        R                  X#SS9  g )Nr  r   spearmanr_  )r  r  	spearmanrr   r   rc  rU  r   rd  rr   r   rY  rn  s       r   test_nancorr_spearman)TestnanopsDataFrame.test_nancorr_spearman  s    &&}5""4#4#4d6H6HI!L""4#4#4#9#94;M;M;R;RSTUV$$V^^U*$U""4#4#4d6H6HI!L""4#4#4#9#94;M;M;R;RSTUV$$V^^U*$Ur   c                    [         R                  " S5        [        R                  " U R                  U R
                  5      S   n[        R                  " U R                  R                  U R
                  R                  5      S   nSn[         R                  " [        US9   U R                  [        R                  XSS9  S S S 5        g ! , (       d  f       g = f)Nscipyr]  z;Unknown method 'foo', expected one of 'kendall', 'spearman'matchfoor_  )r  r  r   rb  r   r   rc  raises
ValueErrorrY  r   rd  )r   rH  rI  msgs       r   test_invalid_method'TestnanopsDataFrame.test_invalid_method  s    G$D--t/A/AB4HD--22D4F4F4K4KLTRK]]:S1((e(T 211s   " C
Cc                 D   [         R                  " U R                  U R                  5      S   n[         R                  " U R                  R                  U R                  R                  5      S   nU R                  [        R                  X5        [         R                  " U R                  U R                  5      S   n[         R                  " U R                  R                  U R                  R                  5      S   nU R                  [        R                  X5        g )Nr]  )r   covr   r   rc  rU  r   nancovrr   r   rY  re  s      r   test_nancovTestnanopsDataFrame.test_nancov  s    t(($*<*<=dCt((--t/A/A/F/FGM$$V]]EAt(($*<*<=dCt((--t/A/A/F/FGM$$V]]EAr   )$r+   r#   ri   ro   r:   r   r   r   r   rx   ry   r   rr   r   rS   rG   rv   r   rX   rQ   r)   rC   rt   r   rJ   r|   r   rV   rm   rM   rZ   re   r]   r1   r>   r5   )T)TNr@   )TTTTT)NN)2__name__
__module____qualname____firstlineno__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.  r4  r;  r@  rU  rY  rf  ri  ro  rt  r~  r  __static_attributes__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)r1   F)r5   Fr  )ri   F)re   F)rm   T)ro   Tc                 $   U R                  U5      n[        USS5      (       am  [        R                  " U5      nU(       a
  U(       d   eO	U(       a   e[	        US5      (       d  g [
        R                  " USSS9n[        USS5      (       a  Ml  g g Nr   Tr   r   r   )getfixturevaluer   r   	_has_infsr   r   r   )requestarrcorrectr   valres0s         r   test_has_infs_non_floatr    sy      
!
!#
&C
#vt
$
$$K4O8sF## ggc12& #vt
$
$r   )	)r   F)rC   F)rG   F)rM   F)rS   T)rQ   T)rV   T)rX   T)rZ   Tr0   )Nf4f2c                 L   U R                  U5      nUb  UR                  U5      n[        USS5      (       am  [        R                  " U5      nU(       a
  U(       d   eO	U(       a   e[        US5      (       d  g [        R                  " USSS9n[        USS5      (       a  Ml  g g r  )r  r0   r   r   r  r   r   r   )r  r  r  r0   r   r  r  s          r   test_has_infs_floatsr    s      
!
!#
&Cjj 
#vt
$
$$K4O8sF## ggc12& #vt
$
$r   fixture)r   r#   r)   r+   r1   r5   c                 v    UR                  U 5      n[        R                  " UR                  S5      (       d   eg Ntestr  r   _bn_ok_dtyper   r  r  r   objs       r   test_bn_ok_dtyper  '  s1     
!
!'
*Csyy&1111r   )r:   r>   r]   c                 v    UR                  U 5      n[        R                  " UR                  S5      (       a   eg r  r  r  s       r   test_bn_not_ok_dtyper  /  s4     
!
!'
*C""399f55555r   c                   ,    \ rS rSrS rS rS rS rSrg)TestEnsureNumerici<  c                     [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   eg )Nr   g?y      ?       @)r   _ensure_numericr   s    r   test_numeric_values%TestEnsureNumeric.test_numeric_values=  sQ    %%a(A--- %%c*c111 %%f-777r   c                    [         R                  " / SQ5      n[         R                  " [        R                  " U5      U5      (       d   eUR                  [        5      n[         R                  " [        R                  " U5      U5      (       d   e[         R                  " / SQ[        S9nSn[        R                  " [        US9   [        R                  " U5        S S S 5        [         R                  " / SQ[        S9nSn[        R                  " [        US9   [        R                  " U5        S S S 5        g ! , (       d  f       Nd= f! , (       d  f       g = f)N)r   r   r   )123r   z,Could not convert \['1' '2' '3'\] to numericrx  )rz  barbazzCould not convert .* to numeric)
r   arrayallcloser   r  r0   r   r  r{  r   )r   r,  o_valuess_valuesr}  s        r   test_ndarrayTestEnsureNumeric.test_ndarrayG  s    )${{611&96BBBB ==({{611(;VDDDD 88O6:=]]9C0""8, 1 881@0]]9C0""8, 10 10 10s   D=E=
E
Ec                    [         R                  " [        SS9   [        R                  " S5        S S S 5        [         R                  " [        SS9   [        R                  " S5        S S S 5        [         R                  " [        SS9   [        R                  " S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NX= f! , (       d  f       g = f)Nz'Could not convert string '1' to numericrx  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_values)TestEnsureNumeric.test_convertable_values\  s    ]]9,UV""3' W]]H
 ""5)
 ]]K
 ""6*
 
 WV
 

 
s#   B*B;
C*
B8;
C	
Cc                    Sn[         R                  " [        US9   [        R                  " S5        S S S 5        Sn[         R                  " [        US9   [        R                  " 0 5        S S S 5        [         R                  " [        US9   [        R                  " / 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NX= f! , (       d  f       g = f)Nz)Could not convert string 'foo' to numericrx  rz  z%argument must be a string or a numberr  )r   r}  s     r   test_non_convertable_values-TestEnsureNumeric.test_non_convertable_valuesh  s    9]]9C0""5) 1 6]]9C0""2& 1]]9C0""2& 10 10
 1000s#   B.B?C.
B<?
C
Cr   N)	r  r  r  r  r  r  r  r  r  r   r   r   r  r  <  s    8-*
+
'r   r  c                   t   \ rS rSr\R
                  S 5       r\R
                  S 5       rS rS r	S r
S rS r\R                  R                  S	\" S
5      5      \R                  R                  S\" S5      5      S 5       5       r\R                  R                  S\" S5      5      S 5       r\S 5       rSrg)TestNanvarFixedValuesiu  c                     g)Ng      @r   r   s    r   varianceTestNanvarFixedValues.variancex  s    r   c                 <    U R                   R                  US-  SS9$ )N      ?i )scalesize)prngnormal)r   r  s     r   samplesTestNanvarFixedValues.samples|  s     yyhm&AAr   c                 Z    [         R                  " U5      n[        R                  " X2SS9  g )N{Gz?rtol)r   r   r   r   )r   r  r  actual_variances       r   test_nanvar_all_finite,TestNanvarFixedValues.test_nanvar_all_finite  s      --0
tDr   c                 F   [         R                  [         R                  " SUR                  S   -  5      -  nXS S S2'   [        R
                  " USS9n[        R                  " XBSS9  [        R
                  " USS9n[        R                  " U[         R                  SS9  g )Nr   r   Tr   r  r  F)r   rB   onesr   r   r   r   r   )r   r  r  samples_testr  s        r   test_nanvar_nans&TestNanvarFixedValues.test_nanvar_nans  sy    vvGMM!,<(< ==#SqS --TB
tD --UC
TBr   c                 L   [         R                  [         R                  " SUR                  S   -  5      -  nXS S S2'   [        R
                  " USS9n[        R                  " XBS-  SS9  [        R                  " USS9n[        R                  " U[         R                  SS9  g )	Nr   r   Tr  r  r  r  F)	r   rB   r  r   r   r  r   r   r   )r   r  r  r  
actual_stds        r   test_nanstd_nans&TestNanvarFixedValues.test_nanstd_nans  s}    vvGMM!,<(< ==#SqS]]<=

zS=tD]]<>

z266=r   c                     U R                   R                  UR                  S   S9n[        R                  " X/5      n[
        R                  " USS9n[        R                  " U[        R                  " US/5      SS9  g )Nr   r  r   r   UUUUUU?r  r  )
r  uniformr   r   rF   r   r   r   r   r  )r   r  r  samples_unifr  s        r   test_nanvar_axis&TestNanvarFixedValues.test_nanvar_axis  sf    yy((gmmA.>(?))W34 --a8
RXXx&:;$	
r   c                    SnU R                   R                  SUS-   4S9n[        R                  US S 2S4'   [        R
                  " USSSS9R                  5       n[        R
                  " USSSS9R                  5       n[        R
                  " USSS	S9R                  5       nS
n[        R                  " XFSS9  [        R                  " X1S-
  U-  U-  SS9  [        R                  " XQS-
  US-
  -  U-  SS9  g )N   i'  r   r  r   Tr   )r   r   r   r   r  r  r  g      ?g       @)	r  r  r   rB   r   r   r   r   r   )r   nr  
variance_0
variance_1
variance_2r   s          r   test_nanvar_ddof&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
 
zT: 	zGq=3+>TJ 	zGC+@3+FTRr   r   r   r   r   c                 b   [         R                  " S5      n[         R                  " / SQ/ SQ/ SQ/5      US S2S S24'   [         R                  =US'   US S 2S4'   [         R                  " / SQ/ SQ/ SQ// S	Q/ S
Q/ SQ//5      n[        R
                  " USXS9n[        R                  " US S XAU4   5        [         R                  " US   5      (       d   e[        R                  " USXS9n[        R                  " US S XAU4   S-  5        [         R                  " US   5      (       d   eg )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  rB   r   r   r   r   r   r  )r   r   r   r  r  r   r  s          r   test_ground_truth'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                 v    [        S[        R                  " S5      -  5      nUR                  US9nUS:X  d   eg )Ni-r&   )r   r(  )r   r   r  r  )r   r   datar-  s       r   test_nanstd_roundoff*TestNanvarFixedValues.test_nanstd_roundoff  s7     i"''"+-.t$}}r   c                 @    [         R                  R                  S5      $ r   r   r   r   r   s    r   r  TestNanvarFixedValues.prng      yy$$Q''r   r   N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  propertyr  r  r   r   r   r  r  u  s     ^^  ^^B BEC>
S& [[VU1X.[[VU1X.$  / /$ L [[VU1X. / ( (r   r  c                       \ rS rSr\R
                  S 5       r\R
                  S 5       r\R                  R                  S/ SQ5      S 5       r
S rS rS	 rS
 rS r\S 5       rSrg)TestNanskewFixedValuesi  c                 Z    [         R                  " [         R                  " SSS5      5      $ Nr   r      r   sinlinspacer   s    r   r  TestNanskewFixedValues.samples      vvbkk!Q,--r   c                     g)Ng5ȿr   r   s    r   actual_skew"TestNanskewFixedValues.actual_skew      "r   r  gfffff@g@g     @c                 r    U[         R                  " S5      -  n[        R                  " U5      nUS:X  d   eg Ni,  r(  )r   r  r   r3  )r   r  r  r2  s       r   test_constant_series+TestNanskewFixedValues.test_constant_series  0     RWWS\!~~d#s{{r   c                     Su  pU R                   R                  XSS9n[        R                  " U5      S:  d   eSu  pU R                   R                  XSS9n[        R                  " U5      S:  d   eg )N333333?皙?d   r  r   r  r  )r  betar   r3  r   alphar  left_tailedright_taileds        r   test_all_finite&TestNanskewFixedValues.test_all_finite  j    iinnUsn;~~k*Q...yy~~e~<~~l+a///r   c                 \    [         R                  " U5      n[        R                  " X25        g r@   )r   r3  r   r   r   r  r  r2  s       r   r  (TestNanskewFixedValues.test_ground_truth      ~~g&
t1r   c           	      0   [         R                  " U[         R                  [         R                  " [	        U5      5      -  /5      n[
        R                  " USS9n[        R                  " U[         R                  " U[         R                  /5      5        g Nr   r   )
r   rF   rB   r  rE  r   r3  r   r   r  r#  s       r   	test_axis TestNanskewFixedValues.test_axis	  ]    ))Wbffrwws7|/D&DEF~~gA.
tRXX{BFF.C%DEr   c                     [         R                  " U[         R                  /5      n[        R                  " USS9n[         R
                  " U5      (       d   eg NFr  )r   hstackrB   r   r3  r   )r   r  r2  s      r   	test_nans TestNanskewFixedValues.test_nans  ;    ))Wbff-.~~ge4xx~~~r   c                     [         R                  " U[         R                  /5      n[        R                  " USS9n[
        R                  " X25        g NTr  )r   r-  rB   r   r3  r   r   r#  s       r   test_nans_skipna'TestNanskewFixedValues.test_nans_skipna  7    ))Wbff-.~~gd3
t1r   c                 @    [         R                  R                  S5      $ r   r  r   s    r   r  TestNanskewFixedValues.prng  r  r   r   N)r  r  r  r  r  r  r  r  r  r  r  r  r  r(  r.  r3  r  r  r  r   r   r   r  r         ^^. . ^^# # [[U$<= >02F

2
 ( (r   r  c                       \ rS rSr\R
                  S 5       r\R
                  S 5       r\R                  R                  S/ SQ5      S 5       r
S rS rS	 rS
 rS r\S 5       rSrg)TestNankurtFixedValuesi  c                 Z    [         R                  " [         R                  " SSS5      5      $ r  r  r   s    r   r  TestNankurtFixedValues.samples   r	  r   c                     g)Ng|vKr   r   s    r   actual_kurt"TestNankurtFixedValues.actual_kurt$  r  r   r  r  c                 r    U[         R                  " S5      -  n[        R                  " U5      nUS:X  d   eg r  )r   r  r   r9  )r   r  r  kurts       r   r  +TestNankurtFixedValues.test_constant_series(  r  r   c                     Su  pU R                   R                  XSS9n[        R                  " U5      S:  d   eSu  pU R                   R                  XSS9n[        R                  " U5      S:  d   eg )Nr  r  r  r   r  r   )r  r  r   r9  r  s        r   r  &TestNankurtFixedValues.test_all_finite/  r!  r   c                 \    [         R                  " U5      n[        R                  " X25        g r@   )r   r9  r   r   r   r  r>  rA  s       r   r  (TestNankurtFixedValues.test_ground_truth8  r%  r   c           	      0   [         R                  " U[         R                  [         R                  " [	        U5      5      -  /5      n[
        R                  " USS9n[        R                  " U[         R                  " U[         R                  /5      5        g r'  )
r   rF   rB   r  rE  r   r9  r   r   r  rF  s       r   r(   TestNankurtFixedValues.test_axis<  r*  r   c                     [         R                  " U[         R                  /5      n[        R                  " USS9n[         R
                  " U5      (       d   eg r,  )r   r-  rB   r   r9  r   )r   r  rA  s      r   r.   TestNankurtFixedValues.test_nansA  r0  r   c                     [         R                  " U[         R                  /5      n[        R                  " USS9n[
        R                  " X25        g r2  )r   r-  rB   r   r9  r   r   rF  s       r   r3  'TestNankurtFixedValues.test_nans_skipnaF  r5  r   c                 @    [         R                  R                  S5      $ r   r  r   s    r   r  TestNankurtFixedValues.prngK  r  r   r   N)r  r  r  r  r  r  r  r>  r  r  r  r  r  r(  r.  r3  r  r  r  r   r   r   r:  r:    r8  r   r:  c                       \ rS rSr\R
                  " / SQS9S 5       rS r\R                  R                  SSS/5      S	 5       r
S
rg)TestDatetime64NaNOpsiP  )smsusns)paramsc                     UR                   $ r@   )param)r   r  s     r   unitTestDatetime64NaNOps.unitQ  s    }}r   c                 Z   [         R                  " SSS9R                  U5      nUS   nX"R                  4 H   n[        R
                  " U5      nXS:X  a  M    e   UR                  S[         R                  5      nXfR                  4 H   n[        R
                  " U5      nXS:X  a  M    e   g )Nz
2016-01-01r   )periodsr   )pd
date_rangeas_unit_datar   r   insertNaT)r   rY  dtiexpectedr  r-  dti2s          r   r   !TestDatetime64NaNOps.test_nanmeanW  s    mmL!4<<TBq6#C^^C(F%%% $ zz!RVV$**%C^^C(F%%% &r   constructorM8m8c                    U SU S3n[         R                  " S5      R                  [         R                  5      R	                  U5      R                  SS5      nSUS'   [        R                  " USS	9n[         R                  " U5      (       d   eUR                  U:X  d   e[        R                  " US
SS9n[         R                  " / SQUR                  S9n[        R                  " XV5        [        R                  " USSS9n[         R                  " US   US   US   US   /5      n[        R                  " XV5        g )N[]   r  r   rb  )r   r   Fr  r   r   )r  r  rb  r  r   r]  )r   r   )r   r   )r   aranger0   int64viewreshaper   r   isnatr   r  r   assert_numpy_array_equal)r   rg  rY  r   r  r-  rd  s          r   test_nanmean_skipna_false.TestDatetime64NaNOps.test_nanmean_skipna_falsee  s   -qa(iim""288,11%8@@AFFE2xx||u$$$!E:88M;
##F5!E:88SYD	3t9c&kJK
##F5r   r   N)r  r  r  r  r  r  rY  r   r  r  rt  r  r   r   r   rQ  rQ  P  sL    ^^23 4
& [[]T4L96 :6r   rQ  c                  l   [         R                  (       a}  [        R                  " SS5         [        R                  " S5      (       d   e S S S 5        [        R                  " SS5         [        R                  " S5      (       a   e S S S 5        g g ! , (       d  f       NN= f! , (       d  f       g = f)Nuse_bottleneckTF)r   _BOTTLENECK_INSTALLEDr]  option_context
get_optionr   r   r   test_use_bottleneckr{  y  s    ##/6==!12222 7 /7}}%566666 87	 $66 87s   B+B%
B"%
B3znumpy_op, expectedr&   g      @r   r  c                 8    U " [        / SQ5      5      nX!:X  d   eg )N)r   r   r   r  )r   )numpy_oprd  r-  s      r   test_numpy_opsr~    s    " f\*+Fr   	operationc                     [        SS[        R                  S[        R                  S/5      nUR                  5       nU " UR                  5      nU " UR                  US9nX4:X  d   eg )Nr   r   r   r  )mask)r   r   rB   r   _values)r  serr  median_expectedmedian_results        r   %test_nanops_independent_of_mask_paramr    sX    , !Q2661-
.C88:D,Ockk5M+++r   	min_countr   c                 F    [         R                  " SS U 5      nSnX:X  d   eg )N)   %   Fr   check_below_min_count)r  r-  expected_results      r   5test_check_below_min_count_negative_or_zero_min_countr    s)     ))(D)DFO$$$r   r  )FFTT	   Fzmin_count, expected_result)r   F)e   Tc                 D    Sn[         R                  " X0U5      nXB:X  d   eg )N)r&   r&   r  )r  r  r  r   r-  s        r   -test_check_below_min_count_positive_min_countr    s'     E))%yAF$$$r   )l   l$=O Tc                 B    Sn[         R                  " US U S9nX1:X  d   eg )N)i?" i  )r  r  r  )r  r  r   r-  s       r   &test_check_below_min_count_large_shaper    s)    
 E))%diPF$$$r   r   r   r   c                 |    [         R                  " [        R                  " U 5      R                  U5      (       a   eg r@   )r   r  r   r   r)  )any_real_numpy_dtyper   s     r   test_check_bottleneck_disallowr    s0     ""288,@#A#F#FMMMMMr   r  )l          l       l   |H%[<c                     [        U[        S5      [        R                  S9nUR	                  5       nUR
                  R	                  5       nX1:X  d   eX4:X  d   eUR                  [        R                  :X  d   eg )Ni  )indexr   )r   r   r   ro  r   r,  r   float64)r   r  r  r-  	np_results        r   test_nanmean_overflowr    sa     E#Jbhh
7CXXZF

!I==<<2::%%%r   r   float128r`  )r   r  r   r2  rA  r  r+  c                    Uc  [         R                  " S5        [        [        S5      US9n[	        X25      " 5       n[        U5      (       a'  US;  a!  UR                  [        R                  :X  d   eg UR                  U:X  d   eg )Nznp.float128 not availabler&   r  )r  r+  )	r  skipr   r   r   r   r   r   r  )r   r   r`  r  r-  s        r   test_returned_dtyper    sm     }/0
r%
(CS!#F6#?||rzz)))||u$$$r   )f	functoolsr   numpyr   r  pandas.util._test_decoratorsutil_test_decoratorstdpandas.core.dtypes.commonr   pandasr]  r   r   pandas._testing_testingr   pandas.corer   r	   r   r  r   r   r   r#   r)   r+   r1   r5   r:   r>   rC   rG   rJ   rM   rQ   rS   rV   rX   rZ   r]   re   ri   rm   ro   rr   rt   rv   ry   r|   r~   r  r  r  r  r  r  r  r  r  r:  rQ  r{  r   r   r   r   r   r   r  r+  r  r  r~  r  r  r  r   r	  r  r#  r3  r9  r>  r  r  r  r  skip_if_windowsskip_if_32bitr  r  r  int16int32ro  float32r  r   r  r   r   r   <module>r     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.% /% 
T28801288TFQ%[<P3QR 5
K7PQ% R% 5
DV7WX% Y  % )X!67N 8N
  DE
& F
& 








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