
    0hhw                    H   S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKJr  SSKJrJr  SSKJr  SSKJr  SSKrSu  r r\ \-   S:H  rS	 rS
 rS rSzS jr " S S5      r\R:                  " SS/S9r\R:                  " SS/S9r " S S\R@                  5      r! " S S\R@                  5      r" " S S\R@                  5      r# " S S\R@                  5      r$ " S S\R@                  5      r% " S S\R@                  5      r& " S S \R@                  5      r' " S! S"\R@                  5      r( " S# S$\R@                  5      r) " S% S&\R@                  5      r* " S' S(\R@                  5      r+ " S) S*\R@                  5      r, " S+ S,\R@                  5      r- " S- S.\R@                  5      r. " S/ S0\R@                  5      r/ " S1 S2\R@                  5      r0 " S3 S4\R@                  5      r1 " S5 S6\R@                  5      r2 " S7 S85      r3 " S9 S:5      r4 " S; S<\3\45      r5 " S= S>\"5      r6 " S? S@\"5      r7 " SA SB\"5      r8 " SC SD\35      r9 " SE SF\"\9\45      r: " SG SH\"\9\45      r; " SI SJ\"\95      r< " SK SL\"\45      r= " SM SN\<\45      r> " SO SP\<\45      r? " SQ SR\<5      r@ " SS ST\"\9\45      rA " SU SV\R@                  5      rB " SW SX\R@                  5      rC " SY SZ\35      rD " S[ S\\D\"\45      rE " S] S^\D\"\45      rF " S_ S`\D\"5      rG " Sa Sb\R@                  5      rH " Sc Sd\D\"5      rI " Se Sf\R@                  5      rJ " Sg Sh\R@                  5      rK " Si Sj\R@                  5      rL " Sk Sl\R@                  5      rM " Sm Sn\R@                  5      rN " So Sp\R@                  5      rO " Sq Sr5      rP " Ss St\R@                  \P5      rQ\R                  " \Su5       " Sv Sw\R@                  \P5      5       rSSx rT\USy:X  a  \R                  " 5         gg){z_Test suite for statistics module, including helper NumericTestCase and
approx_equal function.

    N)support)import_helperrequires_IEEE_754)DecimalFraction)g 7yACg):@g7yACc                 0    [         R                  " SU 5      $ )N   )mathcopysignxs    =/opt/python-3.13.8/usr/lib/python3.13/test/test_statistics.pysignr   %   s    ==A    c                 .   [        U 5      [        U5      La  g[        U [        5      (       a3  [        R                  " U 5      =(       a    [        R                  " U5      $ U R                  5       S   nUR                  5       S   nX#:H  =(       a    US;   $ )NF   )nN)type
isinstancefloatr   isnanas_tuple)abaexpbexps       r   
_nan_equalr   )   so    , Awd1g!Uzz!}.A.::<?D::<?DL2tz12r   c                     [        [        U 5      [        U5      5      n[        X-
  5      nU(       a  X2-  O
[        S5      nX44$ Ninf)maxabsr   )actualexpectedbaseabs_errrel_errs        r   _calc_errorsr*   H   s=     s6{CM*D&#$G"gleGr   c           
         US:  d  US:  a  [        S5      e[        R                  " U 5      (       d  [        R                  " U5      (       a  gX:X  a  g[        R                  " U 5      (       d  [        R                  " U5      (       a  g[	        X-
  5      n[        X#[        [	        U 5      [	        U5      5      -  5      nXE:*  $ )Nr   z%error tolerances must be non-negativeFT)
ValueErrorr   r   isinfr$   r#   )r   ytolrelactual_errorallowed_errors         r   approx_equalr3   X   s    D Qw#'@AAzz!}}

1vzz!}}

1 qu:LSVSV!445M((r   c                       \ rS rSrSrg)
_DoNothing    N__name__
__module____qualname____firstlineno____static_attributes__r7   r   r   r5   r5      s    H 	r   r5   
statistics_statistics)blocked)freshc                   R    \ rS rSrS/rS r\R                  " \S5      S 5       r	Sr
g)TestModules   _normal_dist_inv_cdfc                 ~    U R                    H-  nU R                  [        [        U5      R                  S5        M/     g Nr>   )
func_namesassertEqualgetattrpy_statisticsr:   selffnames     r   test_py_functionsTestModules.test_py_functions   s-    __EW]E:EE|T %r   requires _statisticsc                 ~    U R                    H-  nU R                  [        [        U5      R                  S5        M/     g )Nr?   )rH   rI   rJ   c_statisticsr:   rL   s     r   test_c_functionsTestModules.test_c_functions   s-    __EW\59DDmT %r   r7   N)r9   r:   r;   r<   rH   rO   unittest
skipUnlessrS   rT   r=   r7   r   r   rC   rC      s4    ()JU '=>U ?Ur   rC   c                   H    \ rS rSrS=rr S	S jrS rS
S jr\	S 5       r
Srg)NumericTestCase   r   Nc                 *   Uc  U R                   nUc  U R                  n[        U[        R                  R
                  5      (       a6  [        U[        R                  R
                  5      (       a  U R                  nOU R                  nU" XX4U5        g N)r/   r0   r   collectionsabcSequence_check_approx_seq_check_approx_num)rM   firstsecondr/   r0   msgchecks          r   assertApproxEqual!NumericTestCase.assertApproxEqual   sp    > ;((C;((C5+//":":;;6;??#;#;<<**E**EeSs+r   c           	         [        U5      [        U5      :w  a;  S[        U5      [        U5      4-  nU R                  XV5      nU R                  U5      e[        [	        X5      5       H  u  nu  pU R                  XX4XW5        M     g )Nz0sequences differ in length: %d items != %d items)len_formatMessagefailureException	enumeratezipra   )
rM   rb   rc   r/   r0   rd   standardMsgir   es
             r   r`   !NumericTestCase._check_approx_seq  s~    u:V$Bu:s6{+,  %%c7C'',,!#e"45HAu""13: 6r   c                     [        XX45      (       a  g U R                  XX4U5      nU R                  XW5      nU R                  U5      er\   )r3   _make_std_err_msgrj   rk   )rM   rb   rc   r/   r0   rd   idxrn   s           r   ra   !NumericTestCase._check_approx_num  sG    s00,,UCcJ!!#3##C((r   c                 H    SnUb	  SU-  nXe-   n[        X5      u  pxXPXX7U4-  $ )Nzk  %r != %r
  values differ by more than tol=%r and rel=%r
  -> absolute error = %r
  -> relative error = %rz,numeric sequences first differ at index %d.
)r*   )	rb   rc   r/   r0   rt   templateheaderr(   r)   s	            r   rs   !NumericTestCase._make_std_err_msg  sD    
' 	 ?DsJF(H'6&sWEEEr   r7   )NNNr\   )r9   r:   r;   r<   r/   r0   rf   r`   ra   staticmethodrs   r=   r7   r   r   rY   rY      s8     MC# :>*,X	;) F Fr   rY   c                       \ rS rSrS rSrg)TestSigni/  c                 p    U R                  [        S5      S5        U R                  [        S5      S5        g )N        r
          )rI   r   rM   s    r   
testZeroesTestSign.testZeroes1  s*    cB'dR(r   r7   N)r9   r:   r;   r<   r   r=   r7   r   r   r|   r|   /  s    )r   r|   c                   ,    \ rS rSrS rS rS rS rSrg)ApproxEqualSymmetryTesti9  c                     SSS[        S5      [        SS5      /nSSS	[        S
5      [        SS5      /n[        X5       H  u  p4U R                  X45        M     g )Ni	  gfffffB@gfffff(z2.54   6   i	  gB@gR(z2.59   )r   r   rm   do_relative_symmetry)rM   args1args2r   r   s        r   test_relative_symmetry.ApproxEqualSymmetryTest.test_relative_symmetry<  sY     tVWV_hr26FGtVWV_hr26FG%DA%%a+ &r   c           	          [        X5      [        X5      p!X!-
  n[        X1-  5      [        X2-  5      pTXE-   S-  nU R                  [	        XSUS95        U R                  [	        X!SUS95        g )Nr   r   r/   r0   )minr#   r$   
assertTruer3   )rM   r   r   deltarel_err1rel_err2r0   s          r   r   ,ApproxEqualSymmetryTest.do_relative_symmetryL  sd    1y#a)1 \3uw<("A% 	Qqc:;Qqc:;r   c           	         / SQnSnU H  n[         [        [        [        4 H  nU" U5      S-  nXR-   n[	        U[        XV5      -  5      nU R                  XVX'S9  U R                  XVUS-   SU-  S9  U R                  XVUS-
  US-  S9  U R                  XVX'S-  S9  U R                  XVUS-
  US9  U R                  XVUS-
  SU-  S9  U R                  XUSSS9  U R                  XVSSS9  M     M     g )N)i   k   im r   d   r   r
   r   )intr   r   r   r$   r#   do_symmetry_test)rM   argsr   r   type_r   r.   rs           r   test_symmetry%ApproxEqualSymmetryTest.test_symmetryX  s   'Augx8!HSLIc!i( %%a%=%%aaQqS%A%%aaQqS%A%%aQ3%?%%aaQ%?%%aaQqS%A%%aq%9%%aq%9# 9 r   c           
      ~    Sn[        XX45      n[        X!X45      nU R                  XgUR                  XX445      5        g )Nz+approx_equal comparisons don't match for %r)r3   rI   format)rM   r   r   r/   r0   rw   flag1flag2s           r   r   (ApproxEqualSymmetryTest.do_symmetry_testp  s=    @Q3,Q3,xc7G'HIr   r7   N)	r9   r:   r;   r<   r   r   r   r   r=   r7   r   r   r   r   9  s    , 
<:0Jr   r   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)ApproxEqualExactTestiw  c                     [        XX#S9nU R                  USU-  5        [        U* U* X#S9nU R                  USU* -  5        g )Nr   zequality failure for x=%r)r3   r   )rM   r   r/   r0   results        r   do_exactly_equal_test*ApproxEqualExactTest.do_exactly_equal_test}  sJ    a5 ;a ?@qb1"#7 ;qb @Ar   c                 <    S H  nU R                  USS5        M     g )N)*   iM  i~:     i  iU
 i  r   r   rM   r   s     r   test_exactly_equal_ints,ApproxEqualExactTest.test_exactly_equal_ints  s    =A&&q!Q/ >r   c                 <    S H  nU R                  USS5        M     g )N)gzG?g/$?ge@g      7@g     pf@g!rhQ@gB`"KB@r   r   rM   r   s     r   test_exactly_equal_floats.ApproxEqualExactTest.test_exactly_equal_floats  s    EA&&q!Q/ Fr   c           	          [         nU" SS5      U" S5      U" SS5      U" SS5      U" SS	5      U" SS5      4 H  nU R                  USS5        M     g )
Nr
   r   r   r      	      #   $   )r   r   rM   Ffs      r   test_exactly_equal_fractions1ApproxEqualExactTest.test_exactly_equal_fractions  sS    Aq'1Q41a!Aq'1R9a1gFA&&q!Q/ Gr   c                 x    [         n[        USR                  5       5       H  nU R                  USS5        M     g )Nz8.2 31.274 912.04 16.745 1.2047r   )r   mapsplitr   )rM   Dds      r   test_exactly_equal_decimals0ApproxEqualExactTest.test_exactly_equal_decimals  s5    Q9??ABA&&q!Q/ Cr   c                     S HK  nU R                  USS5        U R                  US-  SS5        [        US5      nU R                  USS5        MM     g )N)     i\  i       {Gz?r   
   i  )r   r   )rM   r   r   s      r   test_exactly_equal_absolute0ApproxEqualExactTest.test_exactly_equal_absolute  sR    /A&&q$2&&qtT15D!A&&q$2 0r   c                     U R                  [        S5      [        S5      S5        U R                  [        S5      * [        S5      S5        g )Nz3.5710.01r   z81.3971)r   r   r   s    r   $test_exactly_equal_absolute_decimals9ApproxEqualExactTest.test_exactly_equal_absolute_decimals  s;    ""77#3WV_aH""GI$6#6Kr   c                     SSS[        SS5      4 H  nU R                  USS5        M     U R                  [        S5      S[        S	5      5        g )
Ni   g33333SY@gzGr      r   r   z11.68r   r   r   r   r   s     r   test_exactly_equal_relative0ApproxEqualExactTest.test_exactly_equal_relative  sH    x!R9A&&q!T2 :""77#3QHr   c                     SSS[        SS5      4 H  nU R                  USS5        M     [        nU R                  U" S5      U" S	5      U" S
5      5        g )Ni9  gˡE0@g\(hr      皙?r   z7.2z0.1r   r   )rM   r   r   s      r   test_exactly_equal_both,ApproxEqualExactTest.test_exactly_equal_both  sP    (1a.9A&&q#t4 :""1U8QuXqyAr   r7   N)r9   r:   r;   r<   r   r   r   r   r   r   r   r   r   r=   r7   r   r   r   r   w  s3    B0
0
00	3L
IBr   r   c                   2    \ rS rSrS rS rS rS rS rSr	g)	ApproxEqualUnequalTesti  c                 `    X* 4 H&  n[        X"S-   SSS9nU R                  USU-  5        M(     g )Nr
   r   r   zinequality failure for x=%r)r3   assertFalse)rM   r   r   r   s       r   do_exactly_unequal_test.ApproxEqualUnequalTest.do_exactly_unequal_test  s8    RA!!qSaQ7FV%BQ%FG r   c                 8    S H  nU R                  U5        M     g )N)  i i  i  iXC  r   r   s     r   test_exactly_unequal_ints0ApproxEqualUnequalTest.test_exactly_unequal_ints  s    /A((+ 0r   c                 8    S H  nU R                  U5        M     g )N)gQ#@g[@gfffffG@gףp=
W"@g=
ףp=1@r   r   s     r   test_exactly_unequal_floats2ApproxEqualUnequalTest.test_exactly_unequal_floats  s    3A((+ 4r   c                     [         nU" SS5      U" SS5      U" SS5      U" SS5      4 H  nU R                  U5        M     g )	Nr
   r   r   r         e   iς )r   r   r   s      r   test_exactly_unequal_fractions5ApproxEqualUnequalTest.test_exactly_unequal_fractions  s@    Aq'1Q7Ab"Iqe}=A((+ >r   c                 p    [        [        SR                  5       5       H  nU R                  U5        M     g )Nz!3.1415 298.12 3.47 18.996 0.00245)r   r   r   r   rM   r   s     r   test_exactly_unequal_decimals4ApproxEqualUnequalTest.test_exactly_unequal_decimals  s,    WAGGIJA((+ Kr   r7   N)
r9   r:   r;   r<   r   r   r   r   r   r=   r7   r   r   r   r     s    H
,
,
,,r   r   c                   t    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrg)ApproxEqualInexactTesti  c           
          SnX-   X-
  4 HP  nUR                  X5      nU R                  [        XSU-  SS9U5        U R                  [        XUS-  SS9U5        MR     g )NTest failure for x={!r}, y={!r}r   r   r   r   r   r3   r   rM   r   r   rw   r.   rd   s         r   do_approx_equal_abs_test/ApproxEqualInexactTest.do_approx_equal_abs_test  s`    4)QY'A//!'COOL1U7BCH\!E!GCSI (r   c                 ^    S H'  nU R                  US5        U R                  US5        M)     g )N)iiIir   r   r
   r   %   i  i&  i6jr   r   r   r   s     r   test_approx_equal_absolute_ints6ApproxEqualInexactTest.test_approx_equal_absolute_ints  s-    JA))!R0))!Q/ Kr   c                     S H9  nU R                  US5        U R                  US5        U R                  US5        M;     g )N)	gtqgfffffFXg333333g333333      ?      ?333333@gQ@gҭ@      ?r   -C6?r  r   s     r   !test_approx_equal_absolute_floats8ApproxEqualInexactTest.test_approx_equal_absolute_floats  s=    LA))!S1))!T2))!V4 Mr   c                     [        SS5      n/ SQnS U 5        H/  nU R                  X15        U R                  U[        U5      5        M1     g )Nr
      )ir   r   r   r
   r   r      "   G   c              3   :   #    U  H  n[        US 5      v   M     g7f)r  Nr   ).0r   s     r   	<genexpr>NApproxEqualInexactTest.test_approx_equal_absolute_fractions.<locals>.<genexpr>  s     6:a(1b//:s   )r   r   r   )rM   r   
numeratorsr   s       r   $test_approx_equal_absolute_fractions;ApproxEqualInexactTest.test_approx_equal_absolute_fractions  sC    B@
6:6A))!3))!U5\: 7r   c                     [        S5      n[        [         SR                  5       5       H'  nU R                  X!5        U R                  U* U5        M)     g )Nr   z1.0 3.5 36.08 61.79 7912.3648)r   r   r   r   )rM   r   r   s      r   #test_approx_equal_absolute_decimals:ApproxEqualInexactTest.test_approx_equal_absolute_decimals  sG    W=CCEFA))!3))1"e4 Gr   c           	      :    U R                  [        SSSSS95        g )Ngh㈵>gh㈵r  r   r   )r   r3   r   s    r   test_cross_zero&ApproxEqualInexactTest.test_cross_zero  s    T5dBCr   c           
          SnUSU-   -  USU-
  -  4 HP  nUR                  X5      nU R                  [        XSSU-  S9U5        U R                  [        XSUS-  S9U5        MR     g )Nr   r
   r   r   r   r   r   s         r   do_approx_equal_rel_test/ApproxEqualInexactTest.do_approx_equal_rel_test  sl    4QuW+q!E'{+A//!'COOL1!E'BCH\!A57CSI ,r   c           	         U R                  [        SSSSS95        U R                  [        SSSSS95        U R                  [        SSSS	S95        U R                  [        S
SSS	S95        U R                  [        SSSS	S95        g )N@   /   r   g
ףp=
?r   gGz?i  i         ?i  i  )r   r3   r   r   s    r   test_approx_equal_relative_ints6ApproxEqualInexactTest.test_approx_equal_relative_ints  sw    R=>R=>S#1%@AS#1%@Ac3A5ABr   c                 ^    S H'  nU R                  US5        U R                  US5        M)     g )N)g{GJf皙r   r	  g\(|B@gʡE>@gx@{Gz?r  )r#  r   s     r   !test_approx_equal_relative_floats8ApproxEqualInexactTest.test_approx_equal_relative_floats  s-    EA))!T2))!V4 Fr   c                     [         n[        SS5      nU" SS5      U" SS5      U" SS5      U" SS	5      4 H;  nU[        U5      4 H'  nU R                  X45        U R                  U* U5        M)     M=     g )
Nr   r   T   r      1   2   \   U   )r   r   r#  )rM   r   r   r   r   s        r   $test_approx_equal_relative_fractions;ApproxEqualInexactTest.test_approx_equal_relative_fractions  sp    AAr(Ab"IqRy!B)<AU5\*--a3--qb!4 + =r   c                     [        [        SR                  5       5       H:  nU R                  U[        S5      5        U R                  U* [        S5      5        M<     g )Nz$0.02 1.0 5.7 13.67 94.138 91027.93210.0010.05)r   r   r   r#  r   s     r   #test_approx_equal_relative_decimals:ApproxEqualInexactTest.test_approx_equal_relative_decimals$  sI    WDJJLMA))!WW-=>))1"gfo> Nr   c           	      0   U(       a  U R                   OU R                  nU" [        XUSS95        U(       a  U R                   OU R                  nU" [        XSUS95        U(       d  U(       a  U R                   OU R                  nU" [        XX4S95        g )Nr   r   )r   r   r3   )rM   r   r   r/   r0   tol_flagrel_flagre   s           r   do_check_both$ApproxEqualInexactTest.do_check_both2  sn    #+1A1Al1Sa01#+1A1Al1QC01$,t?O?Ol1S23r   c                 \    U R                  SSSSSS5        U R                  SSSS	SS5        g )
NR@+@Mbp?W8?Tg?5^Ig%CMb`?g-C6*?rA  r   s    r   test_approx_equal_both1.ApproxEqualInexactTest.test_approx_equal_both1:  s2    5%dC665&$Er   c                 0    U R                  SSSSSS5        g )NrD  rE  rF  gVF?8?TFrI  r   s    r   test_approx_equal_both2.ApproxEqualInexactTest.test_approx_equal_both2?  s    5%eDr   c                 0    U R                  SSSSSS5        g )NrD  rE  MbP?rG  FTrI  r   s    r   test_approx_equal_both3.ApproxEqualInexactTest.test_approx_equal_both3C  s    5%tDr   c                 \    U R                  SSSSSS5        U R                  SSSS	SS5        g )
Ng=
ףp=@      @r   rP  FgQ[@g(\[@r-  giUMu>rI  r   s    r   test_approx_equal_both4.ApproxEqualInexactTest.test_approx_equal_both4G  s2    4tUE5A664ueDr   r7   N)r9   r:   r;   r<   r   r  r  r  r  r   r#  r)  r.  r7  r<  rA  rJ  rM  rQ  rU  r=   r7   r   r   r   r     sZ    J05;5DJC55?4F
EEEr   r   c                   ,    \ rS rSrS rS rS rS rSrg)ApproxEqualSpecialsTestiM  c           	         [         [        4 H  nU" S5      nU R                  [        X"5      5        U R                  [        X"SS5      5        U R                  [        X"SS5      5        U R                  [        U* U* 5      5        U R	                  [        X"* 5      5        U R	                  [        US5      5        M     g )Nr"   r   r
   r     )r   r   r   r3   r   )rM   r   r"   s      r   test_inf ApproxEqualSpecialsTest.test_infP  s    W%E,COOL23OOL1a89OOL1d;<OOL#t45\#t45\#t45 &r   c                     [         [        4 H6  nU" S5      nX!" S5      S4 H  nU R                  [        X#5      5        M     M8     g )Nnanr"   rZ  )r   r   r   r3   )rM   r   r^  others       r   test_nan ApproxEqualSpecialsTest.test_nanZ  sB    W%E,CuU|T2  c!9: 3 &r   c           	      h    [         R                  " SS5      nU R                  [        USSSS95        g )Nr~   r   r   r   )r   r   r   r3   rM   nzeros     r   test_float_zeroes)ApproxEqualSpecialsTest.test_float_zeroes`  s)    c2&UCScBCr   c           	      b    [        S5      nU R                  [        U[        S5      SSS95        g )Nz-0.0r   r   r   )r   r   r3   rc  s     r   test_decimal_zeroes+ApproxEqualSpecialsTest.test_decimal_zeroesd  s&    UGAJCSIJr   r7   N)	r9   r:   r;   r<   r[  r`  re  rh  r=   r7   r   r   rX  rX  M  s    6;DKr   rX  c                        \ rS rSrS rS rSrg)TestApproxEqualErrorsi  c                 @    U R                  [        [        SSSS5        g )Nr   r   r   assertRaisesr,   r3   r   s    r   test_bad_tol"TestApproxEqualErrors.test_bad_toll  s    *lCb#Fr   c                 @    U R                  [        [        SSSS5        g )Nr   r
   r,  rn  r   s    r   test_bad_rel"TestApproxEqualErrors.test_bad_relp  s    *lCaFr   r7   N)r9   r:   r;   r<   rp  rs  r=   r7   r   r   rk  rk  i  s    GGr   rk  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestNumericTestCaseiz  c                 |    [         R                  " U6 nU R                  " U6 nU H  nU R                  XB5        M     g r\   )rY   rs   generate_substringsassertIn)rM   r   
actual_msgr&   	substrings        r   do_testTestNumericTestCase.do_test  s8    $66=
++T2!IMM)0 "r   c                 ^    U R                  [        [        [        R                  5      5        g r\   )r   
issubclassrY   rV   TestCaser   s    r    test_numerictestcase_is_testcase4TestNumericTestCase.test_numerictestcase_is_testcase  s    
?H4E4EFGr   c                 *    SnU R                  U5        g )N)      @      @r        ?Nr|  rM   r   s     r   test_error_msg_numeric*TestNumericTestCase.test_error_msg_numeric  s    *Tr   c                 *    SnU R                  U5        g )N)      @g      @g      ?r  r   r  r  s     r   test_error_msg_sequence+TestNumericTestCase.test_error_msg_sequence  s    )Tr   c                 r    [        X5      u  pgSU-  SU-  SU-  SU-  /nUb  UR                  SU-  5        U$ )Nztol=%rzrel=%rzabsolute error = %rzrelative error = %rzdiffer at index %d)r*   append)	rM   rb   rc   r/   r0   rt   r(   r)   
substringss	            r   rx  'TestNumericTestCase.generate_substrings  sU    '633%/%/	
 ?2S89r   r7   N)
r9   r:   r;   r<   r|  r  r  r  rx  r=   r7   r   r   rv  rv  z  s    1H

r   rv  c                   ,    \ rS rSr\rSS/rS rS rSr	g)GlobalsTesti  __doc____all__c                 |    U R                    H,  nU R                  [        U R                  U5      SU-  5        M.     g )Nz%s not present)expected_metadatar   hasattrmodule)rM   metas     r   	test_metaGlobalsTest.test_meta  s3    **DOOGDKK6,t35 +r   c                     U R                   nUR                   HE  nU R                  UR                  S5      SU-  5        U R	                  [        X5      SU-  5        MG     g )N_zprivate name "%s" in __all__zmissing name "%s" in __all__)r  r  r   
startswithr   r  )rM   r  names      r   test_check_allGlobalsTest.test_check_all  sY    NNDT__S1;dBD OOGF1:TAC #r   r7   N)
r9   r:   r;   r<   r>   r  r  r  r  r=   r7   r   r   r  r    s    F"I.5	Cr   r  c                       \ rS rSrS rSrg)StatisticsErrorTesti  c                     SnU R                  [        [        S5      5        U R                  [        [        R                  [
        5      U[        R                  R                  -  5        g )NzNExpected StatisticsError to be a ValueError, but got a subclass of %r instead.StatisticsError)r   r  r>   r  r  r,   __base__)rM   errmsgs     r   test_has_exception&StatisticsErrorTest.test_has_exception  sR    + 	 	
,=>?:55zB33<<<	r   r7   N)r9   r:   r;   r<   r  r=   r7   r   r   r  r    s    	r   r  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)ExactRatioTesti  c                 f    S H+  nU R                  [        R                  " U5      US45        M-     g )N)r   r   c   l      Fx:^V r
   )rI   r>   _exact_ratio)rM   ro   s     r   test_intExactRatioTest.test_int  s+    ,AZ44Q7!Q@ -r   c                     SnU H7  n[        US5      nU R                  [        R                  " U5      US45        M9     g )N)r
   r   &   r  )r   rI   r>   r  )rM   r  r   r   s       r   test_fractionExactRatioTest.test_fraction  s;    $
ABAZ44Q7!RA r   c                 p   U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        [        S5       Vs/ s H  n[        R
                  " SS5      PM     nnU H/  n[        R                  " U5      u  pEU R                  X4U-  5        M1     g s  snf )Nr(  r
   r         ?)r   r   r   )rI   r>   r  rangerandomuniform)rM   r  datar   numdens         r   
test_floatExactRatioTest.test_float  s    007@007@38:>:atS):>A!..q1HCQC(  ?s   !B3c                     [         n[        R                  nU R                  U" U" S5      5      S5        U R                  U" U" S5      5      S5        U R                  U" U" S5      5      S5        g )Nz0.125r  z12.345)i	     z-1.98)ir4  )r   r>   r  rI   )rM   r   r  s      r   test_decimalExactRatioTest.test_decimal  s]    !..aj16:ak2K@aj19=r   c                    [        S5      n " S S[         5      n " S S[        5      nX* 4 H  n[         U[        U4 Hz  nU" U5      n[        R                  " U5      nU R	                  XvS 45        U R	                  [        US   5      U5        U R                  [        R                  " US   5      5        M|     M     g )NINFc                       \ rS rSrSrg)(ExactRatioTest.test_inf.<locals>.MyFloati  r7   Nr8   r7   r   r   MyFloatr        r   r  c                       \ rS rSrSrg)*ExactRatioTest.test_inf.<locals>.MyDecimali  r7   Nr8   r7   r   r   	MyDecimalr    r  r   r  r   )	r   r   r>   r  rI   r   r   r   r-   )rM   r  r  r  r"   r   r   ratios           r   r[  ExactRatioTest.test_inf  s    El	e 		 	;C'9=#J"//2  D	2  eAh7

58 45 > r   c                 L   [        S5      n " S S[         5      nX" U5      4 H}  n[        R                  " U5      nU R                  [        R
                  " US   5      5        U R                  US   S 5        U R                  [        US   5      [        U5      5        M     g )NNANc                       \ rS rSrSrg).ExactRatioTest.test_float_nan.<locals>.MyFloati  r7   Nr8   r7   r   r   r  r    r  r   r  r   r
   )	r   r>   r  r   r   r   assertIsrI   r   )rM   r  r  r^  r  s        r   test_float_nanExactRatioTest.test_float_nan  s    El	e 	&C++C0EOODJJuQx01MM%(D)T%(^T#Y7	 'r   c                 \   [        S5      n[        S5      n " S S[         5      nX" U5      X#" U5      4 Hs  n[        R                  " U5      nU R                  [	        US   U5      5        U R                  US   S 5        U R                  [        US   5      [        U5      5        Mu     g )Nr  sNANc                       \ rS rSrSrg)2ExactRatioTest.test_decimal_nan.<locals>.MyDecimali  r7   Nr8   r7   r   r   r  r    r  r   r  r   r
   )r   r>   r  r   r   r  rI   r   )rM   r  r  r  r^  r  s         r   test_decimal_nanExactRatioTest.test_decimal_nan   s    env	 	3y?C++C0EOOJuQx56MM%(D)T%(^T#Y7	 @r   r7   N)r9   r:   r;   r<   r  r  r  r  r[  r  r  r=   r7   r   r   r  r    s'    AB)>68	8r   r  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
DecimalToRatioTesti  c                     [        S5      nU R                  [        R                  " U5      US 45        U R                  [        R                  " U* 5      U* S 45        g )Nr  )r   rI   r>   r  )rM   r"   s     r   test_infinity DecimalToRatioTest.test_infinity  sM    en005T{C00#6#tEr   c                     [        S5      [        S5      4 HG  n[        R                  " U5      u  p#U R                  [	        X!5      5        U R                  US 5        MI     g )Nr  r  )r   r>   r  r   r   r  )rM   r^  r  r  s       r   r`  DecimalToRatioTest.test_nan  sL    ENGFO4C!..s3HC OOJs01MM#t$ 5r   c                 4   [        S5      [        S5      /nU H|  n[        R                  " U5      u  p4U R                  US5        U R	                  US5        [        R                  " U* 5      u  p4U R                  US5        U R	                  US5        M~     g )Nz	9.8765e12z
9.8765e-12r   )r   r>   r  assertGreaterEqualassertGreaterassertLessEqual)rM   numbersr   r  r  s        r   	test_signDecimalToRatioTest.test_sign  s    ;')>?A "..q1HC##C+sA&!..r2HC  a(sA& r   c                 f    [         R                  " [        S5      5      nU R                  US5        g )Nz0.1234)rl    r>   r  r   rI   rM   ts     r   test_negative_exponent)DecimalToRatioTest.test_negative_exponent-  s'    ##GH$56K(r   c                 f    [         R                  " [        S5      5      nU R                  US5        g )Nz1.234e7)i K r
   r  r  s     r   test_positive_exponent)DecimalToRatioTest.test_positive_exponent2  s'    ##GI$67M*r   c                     [         R                  " [        S5      5      nU R                  US5        [         R                  " [        S5      5      nU R                  US5        g )N1e2)r   r
   z1.47e5)i8> r
   r  r  s     r   test_regression_20536(DecimalToRatioTest.test_regression_205367  sM     ##GEN3H%##GH$56K(r   r7   N)r9   r:   r;   r<   r  r`  r  r  r  r  r=   r7   r   r   r  r    s!    F%')
+
)r   r  c                   &    \ rS rSrS rS rS rSrg)IsFiniteTesti@  c                     S[        SS5      S[        S5      4 H(  nU R                  [        R                  " U5      5        M*     g )Nr   r
   r   r  5.5)r   r   r   r>   	_isfiniter   s     r   test_finiteIsFiniteTest.test_finiteC  s6    Xa^S'%.9AOOJ0034 :r   c                     [        S5      [        S5      4 H(  nU R                  [        R                  " U5      5        M*     g r!   r   r   r   r>   r  r   s     r   r  IsFiniteTest.test_infinityH  s2    ,/AZ11!45 0r   c                     [        S5      [        S5      [        S5      4 H(  nU R                  [        R                  " U5      5        M*     g Nr^  r  r  r  r   s     r   r`  IsFiniteTest.test_nanM  s9    ,@AZ11!45 Ar   r7   N)r9   r:   r;   r<   r  r  r`  r=   r7   r   r   r  r  @  s    5
6
6r   r  c                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)
CoerceTestiS  c                     [         [        [        [        4 Hd  nU R	                  [
        R                  " U[        5      U5         " S SU5      nU R	                  [
        R                  " U[        5      U5        Mf     g )Nc                       \ rS rSrSrg)%CoerceTest.test_bool.<locals>.MyClassin  r7   Nr8   r7   r   r   MyClassr  n      dr   r  )r   r   r   r   r  r>   _coercebool)rM   Tr  s      r   	test_boolCoerceTest.test_boolh  sU     uh0AMM*,,Q5q9"!"MM*,,Wd;WE 1r   c                     U R                  [        R                  " X5      U5        U R                  [        R                  " X!5      U5        g r\   )r  r>   r  rM   ABs      r   assertCoerceToCoerceTest.assertCoerceToq  s4    j((.2j((.2r   c                     U R                  X5         " S SU5      nU R                  X25         " S SU5      nU R                  X5        U R                  X45        g )Nc                       \ rS rSrSrg)/CoerceTest.check_coerce_to.<locals>.SubclassOfAi{  r7   Nr8   r7   r   r   SubclassOfAr  {  r  r   r   c                       \ rS rSrSrg)/CoerceTest.check_coerce_to.<locals>.SubclassOfBi~  r7   Nr8   r7   r   r   SubclassOfBr"  ~  r  r   r#  )r  )rM   r  r  r   r#  s        r   check_coerce_toCoerceTest.check_coerce_tov  sL     	A!"!"K+"!"A+K5r   c                     U R                  [        [        R                  X45        U R                  [        [        R                  X!45        g r\   )ro  	TypeErrorr>   r  r  s      r   assertCoerceRaisesCoerceTest.assertCoerceRaises  s6    )Z%7%7!@)Z%7%7!@r   c                 0   U R                  [        R                  " X5      U5         " S SU5      n " S SU5      n " S SU5      nX#U4 H  nU R                  X5        M     U R                  X$5        U R	                  X#5        U R	                  X45        g )Nc                       \ rS rSrSrg)*CoerceTest.check_type_coercions.<locals>.Ui  r7   Nr8   r7   r   r   Ur,        Dr   r-  c                       \ rS rSrSrg)*CoerceTest.check_type_coercions.<locals>.Vi  r7   Nr8   r7   r   r   Vr0    r.  r   r1  c                       \ rS rSrSrg)*CoerceTest.check_type_coercions.<locals>.Wi  r7   Nr8   r7   r   r   Wr3    r.  r   r4  )r  r>   r  r  r(  )rM   r  r-  r1  r4  typs         r   check_type_coercionsCoerceTest.check_type_coercions  s{     	j((.2!9C' A!%%r   c                     U R                  [        5        [        [        [        4 H  nU R                  [        U5        M     g r\   )r6  r   r   r   r   r$  )rM   r5  s     r   r  CoerceTest.test_int  s1    !!#&8W-C  c* .r   c                 b    U R                  [        5        U R                  [        [        5        g r\   )r6  r   r$  r   r   s    r   r  CoerceTest.test_fraction  s     !!(+Xu-r   c                 .    U R                  [        5        g r\   )r6  r   r   s    r   r  CoerceTest.test_decimal  s    !!'*r   c                 .    U R                  [        5        g r\   )r6  r   r   s    r   r  CoerceTest.test_float  s    !!%(r   c                     [         [        [        S 5      [        [        4 H1  n[
        [        [        [        4 H  nU R                  X!5        M     M3     g r\   )
strlistr   tupledictr   r   r   r   r(  )rM   bad_type	good_types      r   test_non_numeric_types!CoerceTest.test_non_numeric_types  s<    dDJt<H!5(G<	''	< = =r   c                     [         [        4 H:  n " S SU5      nU R                  U[        5        U R                  U[        5        M<     g )Nc                       \ rS rSrSrg)6CoerceTest.test_incompatible_types.<locals>.MySubclassi  r7   Nr8   r7   r   r   
MySubclassrK    s    r   rL  )r   r   r(  r   )rM   r  rL  s      r   test_incompatible_types"CoerceTest.test_incompatible_types  s9    "A%Q%##Aw/##J8 #r   r7   N)r9   r:   r;   r<   r  r  r$  r(  r6  r  r  r  r  rG  rM  r=   r7   r   r   r  r  S  s;    *F3

6A
& +.
+)=
9r   r  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)ConvertTestr   c                 n    U R                  X5        U R                  [        U5      [        U5      5        g r\   )rI   r  r   rM   r   r.   s      r   check_exact_equalConvertTest.check_exact_equal  s&    d1gtAw'r   c                     [         R                  " [        S5      [        5      nU R	                  US5         " S S[        5      n[         R                  " [        S5      U5      nU R	                  X" S5      5        g )Nr  c                       \ rS rSrSrg)#ConvertTest.test_int.<locals>.MyInti  r7   Nr8   r7   r   r   MyIntrW    s    $r   rX  r   )r>   _convertr   r   rS  )rM   r   rX  s      r   r  ConvertTest.test_int  sZ    c2q"%Ce4q%),r   c                    [         R                  " [        SS5      [        5      nU R                  U[        SS5      5         " S S[        5      n[         R                  " [        SS5      U5      nU R                  X" SS5      5        g )N_   r  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )-ConvertTest.test_fraction.<locals>.MyFractionr   c                 @   > U R                  [        TU ]	  U5      5      $ r\   	__class__super__truediv__rM   r_  ra  s     r   rc  9ConvertTest.test_fraction.<locals>.MyFraction.__truediv__      ~~eg&9%&@AAr   r7   r9   r:   r;   r<   rc  r=   __classcell__ra  s   @r   
MyFractionr^        B Br   rj  r     )r>   rY  r   rS  )rM   r   rj  s      r   r  ConvertTest.test_fraction  sr    R 0(;q(2r"23	B 	B R 0*=q*R"45r   c                     [         R                  " [        SS5      [        5      nU R	                  US5         " S S[        5      n[         R                  " [        SS5      U5      nU R	                  X" S5      5        g )	Nr   r   g      c                   (   ^  \ rS rSrU 4S jrSrU =r$ )'ConvertTest.test_float.<locals>.MyFloati  c                 @   > U R                  [        TU ]	  U5      5      $ r\   r`  rd  s     r   rc  3ConvertTest.test_float.<locals>.MyFloat.__truediv__  rf  r   r7   rg  ri  s   @r   r  rp    rk  r   r  r   r   r  )r>   rY  r   r   rS  )rM   r   r  s      r   r  ConvertTest.test_float  sf    Q7q$'	Be 	B A8q'%.1r   c                    [         R                  " [        SS5      [        5      nU R	                  U[        S5      5         " S S[        5      n[         R                  " [        SS5      U5      nU R	                  X" S5      5        g )	Nr
   (   z0.025c                   (   ^  \ rS rSrU 4S jrSrU =r$ )+ConvertTest.test_decimal.<locals>.MyDecimali  c                 @   > U R                  [        TU ]	  U5      5      $ r\   r`  rd  s     r   rc  7ConvertTest.test_decimal.<locals>.MyDecimal.__truediv__  rf  r   r7   rg  ri  s   @r   r  rw    rk  r   r  r  r   z-0.9375)r>   rY  r   r   rS  )rM   r   r  s      r   r  ConvertTest.test_decimal  sm    B9q''"23	B 	B b 19=q)I"67r   c                     [        S5      [        S5      4 H?  nX* 4 H4  n[        R                  " U[	        U5      5      nU R                  X25        M6     MA     g r!   )r   r   r>   rY  r   rS  )rM   r  r"   r   s       r   r[  ConvertTest.test_inf  sK    %L'%.1CT{''T#Y7&&q. # 2r   c                     [        S5      [        S5      [        S5      4 H=  n[        R                  " U[	        U5      5      nU R                  [        X!5      5        M?     g r	  )r   r   r>   rY  r   r   r   )rM   r^  r   s      r   r`  ConvertTest.test_nan  sG    %L'%.'&/BC##Cc3AOOJq./ Cr   c                     U R                  [        5         [        R                  " S [        5        S S S 5        g ! , (       d  f       g = fr\   )ro  r'  r>   rY  r   r   s    r   test_invalid_input_type#ConvertTest.test_invalid_input_type  s,    y)e, *))s	   ;
A	r7   N)r9   r:   r;   r<   rS  r  r  r  r  r[  r`  r  r=   r7   r   r   rP  rP    s*    (
-628/0
-r   rP  c                   &    \ rS rSrS rS rS rSrg)FailNegTestr   c                     SS[        S5      [        S5      /n[        [        R                  " U5      5      nU R                  X5        g Nr
          @r   r   )r   r   rB  r>   	_fail_negrI   )rM   valuesnews      r   test_pass_throughFailNegTest.test_pass_through  s;    S(1+wqz2:''/0%r   c                     SS[        S5      [        S5      4 HB  nU* /n[        R                  " U5      nU R	                  [        R
                  [        U5        MD     g r  )r   r   r>   r  ro  r  next)rM   r   seqits       r   test_negatives_raise FailNegTest.test_negatives_raise  sN    S(1+wqz2A2$C%%c*Bj88$C 3r   c                 "   S[         R                  " SS5      -  n [        [        R                  " S/U5      5        U R                  S5        U R                  WU5        g ! [        R                   a  nUR                  S   n S nAN;S nAff = f)Nzbadness #%d'  i r   z(expected exception, but it didn't happenr   )	r  randintr  r>   r  failr  r   rI   )rM   rd   rp   r  s       r   test_error_msgFailNegTest.test_error_msg  sx    fnnUE::	B%%rdC01 II@A%	 )) 	VVAYF	s   !A! !B5B		Br7   N)r9   r:   r;   r<   r  r  r  r=   r7   r   r   r  r    s    &D	&r   r  c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)UnivariateCommonMixini  c                 D    U R                  [        U R                  5        g r\   ro  r'  funcr   s    r   test_no_args"UnivariateCommonMixin.test_no_args  s    )TYY/r   c                     / S[        / 5      4 H.  nU R                  [        R                  U R                  U5        M0     g )Nr7   )iterro  r>   r  r  )rM   emptys     r   test_empty_data%UnivariateCommonMixin.test_empty_data  s3    "d2h'Ej88$))UK (r   c                     [        [        S5      5      nU[        U5      :X  a'  [        R                  " U5        U[        U5      :X  a  M'  U$ Nr   rB  r  sortedr  shufflerM   r  s     r   prepare_data"UnivariateCommonMixin.prepare_data  s:    E"IfTl"NN4  fTl"r   c                 t    U R                  5       nUS S  nU R                  U5      nU R                  XS5        g )Nzdata has been modified)r  r  assertListEqual)rM   r  savedr  s       r   test_no_inplace_modifications3UnivariateCommonMixin.test_no_inplace_modifications&  s9      " QIIdOT*BCr   c                     / SQS-  nU R                  U5      n[        R                  " U5        U R                  U5      nU R                  X#5        g )N)r
   r   r   r   r   r   r      r   )r  r  r  rI   )rM   r  r&   r%   s       r   test_order_doesnt_matter.UnivariateCommonMixin.test_order_doesnt_matter0  sB     (+99T?t4*r   c                     " S S[         5      n " S S[        5      nS nU R                  5       nU R                  U5      n[         [        [        XU4 H+  nU R                  U" U5      5      nU R                  Xu5        M-     g )Nc                       \ rS rSrSrg)BUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyListi?  r7   Nr8   r7   r   r   MyListr  ?  r  r   r  c                       \ rS rSrSrg)CUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyTupleiA  r7   Nr8   r7   r   r   MyTupler  A  r  r   r  c                     S U  5       $ )Nc              3   $   #    U  H  ov   M     g 7fr\   r7   )r  objs     r   r  XUnivariateCommonMixin.test_type_of_data_collection.<locals>.generator.<locals>.<genexpr>D  s     (4CC4s   r7   r  s    r   	generatorEUnivariateCommonMixin.test_type_of_data_collection.<locals>.generatorC  s    (4((r   )rB  rC  r  r  r  rI   )rM   r  r  r  r  r&   kindr   s           r   test_type_of_data_collection2UnivariateCommonMixin.test_type_of_data_collection=  sp    	T 		e 		)  "99T?5$CDYYtDz*FV. Dr   c                     [        SSS5      nU R                  [        U5      5      nU R                  U R                  U5      U5        g N   r4  r   )r  r  rB  rI   rM   r  r&   s      r   test_range_data%UnivariateCommonMixin.test_range_dataK  s:    RQ99T$Z(4(3r   c                     U R                  S 5        U R                  S5        U R                  S5        U R                  [        5       5        g )Nr  g      E@)check_for_type_errorobjectr   s    r   test_bad_arg_types(UnivariateCommonMixin.test_bad_arg_typesQ  s>     	!!$'!!"%!!$'!!&(+r   c                 H    U R                   " [        U R                  /UQ76   g r\   r  r  s     r   r  *UnivariateCommonMixin.check_for_type_error`  s    )TYY66r   c                 0    " S S[         5      nU R                  5       nU R                  U5      n[         U[        [        4 HK  nU Vs/ s H
  oT" U5      PM     nn[        U5      " U R                  U5      5      nU R                  Xs5        MM     g s  snf )Nc                   8   ^  \ rS rSrU 4S jrU 4S jr\rSrU =r$ )@UnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloatig  c                 @   > [        U 5      " [        TU ]	  U5      5      $ r\   r   rb  rc  rd  s     r   rc  LUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__truediv__h      Dz%'"5e"<==r   c                 @   > [        U 5      " [        TU ]	  U5      5      $ r\   r   rb  __add__rd  s     r   r  HUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__add__j      Dz%'/%"899r   r7   )	r9   r:   r;   r<   rc  r  __radd__r=   rh  ri  s   @r   r  r  g  s    >:Hr   r  )r   r  r  r   r   r   rI   )rM   r  rawr&   r  r   r  r   s           r   test_type_of_data_element/UnivariateCommonMixin.test_type_of_data_elementc  s}    	e 	 !99S>GWh7D%()SDGSD)(^DIIdO4FV. 8)s   
Br7   N)r9   r:   r;   r<   r  r  r  r  r  r  r  r  r  r  r=   r7   r   r   r  r    s6    0L
D+/4,7/r   r  c                        \ rS rSrS rS rSrg)UnivariateTypeMixiniv  c                 D     " S S[         5      n[         [        [        U4$ )Nc                   x   ^  \ rS rSrU 4S jrU 4S jrU 4S jrU 4S jrU 4S jrU 4S jr	\	r
U 4S jr\rS	rU =r$ )
HUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloati  c                 @   > [        U 5      " [        TU ]	  U5      5      $ r\   r  rd  s     r   rc  TUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__truediv__  r  r   c                 @   > [        U 5      " [        TU ]	  U5      5      $ r\   )r   rb  __rtruediv__rd  s     r   r  UUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rtruediv__  s    Dz%'"6u"=>>r   c                 @   > [        U 5      " [        TU ]	  U5      5      $ r\   )r   rb  __sub__rd  s     r   r  PUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__sub__  r  r   c                 @   > [        U 5      " [        TU ]	  U5      5      $ r\   )r   rb  __rsub__rd  s     r   r  QUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rsub__  s    Dz%'"25"9::r   c                 @   > [        U 5      " [        TU ]	  U5      5      $ r\   )r   rb  __pow__rd  s     r   r  PUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__pow__  r  r   c                 @   > [        U 5      " [        TU ]	  U5      5      $ r\   r  rd  s     r   r  PUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__add__  r  r   c                 @   > [        U 5      " [        TU ]	  U5      5      $ r\   )r   rb  __mul__rd  s     r   r  PUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__mul__  r  r   r7   )r9   r:   r;   r<   rc  r  r  r  r  r  r  r  __rmul__r=   rh  ri  s   @r   r  r    s0    >?:;::H:Hr   r  )r   r   r   )rM   r  s     r   #prepare_types_for_conservation_test7UnivariateTypeMixin.prepare_types_for_conservation_test  s    	e 	" w'22r   c                     U R                  5       nU R                  5        HF  nU Vs/ s H
  o2" U5      PM     nnU R                  U5      nU R                  [	        U5      U5        MH     g s  snf r\   )r  r  r  r  r   )rM   r  r  r   r   r   s         r   test_types_conserved(UnivariateTypeMixin.test_types_conserved  s_       "<<>D"&'$Qa$A'YYq\FMM$v,- ?'s   A,r7   N)r9   r:   r;   r<   r  r  r=   r7   r   r   r  r  v  s    3*.r   r  c                       \ rS rSrS rSrg)TestSumCommoni  c                     S nXl         g )Nc                  Z    [         R                  " U 6 u  pn[         R                  " X!5      $ r\   )r>   _sumr  )r   r  valuer   s       r   simplified_sum+TestSumCommon.setUp.<locals>.simplified_sum  s%    $//40KAa%%e//r   r  )rM   r  s     r   setUpTestSumCommon.setUp  s    	0 #	r   r	  N)r9   r:   r;   r<   r
  r=   r7   r   r   r  r    s    
#r   r  c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)TestSumi  c                 .    [         R                  U l        g r\   )r>   r  r  r   s    r   r
  TestSum.setUp      OO	r   c                     / S[        / 5      4 H4  nU R                  U R                  U5      [        [	        S5      S45        M6     g )Nr7   r   )r  rI   r  r   r   r  s     r   r  TestSum.test_empty_data  s:    T"X&DTYYt_sHQK.CD 'r   c                 j    U R                  U R                  / SQ5      [        [        S5      S45        g )N)r
   r   r   ir  r   r
   <   r   )rI   r  r   r   r   s    r   	test_intsTestSum.test_ints  s*    #?@x|Q/	1r   c                 n    U R                  U R                  S/S-  5      [        [        S5      S45        g )Nr  r        @)rI   r  r   r   r   s    r   test_floatsTestSum.test_floats  s/    D6"9-#3	5r   c                     U R                  U R                  [        SS5      /S-  5      [        [        SS5      S45        g )Nr
   rZ    r   )rI   r  r   r   s    r   test_fractionsTestSum.test_fractions  s:    HQ$5#6s#:;"HQNC8	:r   c           
          [         nU" S5      U" S5      U" S5      U" S5      U" S5      U" S5      U" S5      U" S5      /nU R                  U R                  U5      [         [        S	5      S
45        g )Nr:  z5.246z1.702z-0.025z3.974z2.328z4.617z2.843z20.686r   )r   rI   r  rM   r   r  s      r   test_decimalsTestSum.test_decimals  si    '
AgJ'
AhK'
AgJ'
AgJ 	4!78#4a8	:r   c                     [        S5       Vs/ s H  n[        R                  " SS5      PM     nnU R                  [	        U R                  U5      S   5      [        R                  " U5      SS9  g s  snf )NrZ  r  r
   gؗҬ<r0   )r  r  r  rf   r   r  r   fsum)rM   r  r  s      r   test_compare_with_math_fsum#TestSum.test_compare_with_math_fsum  s\     5:$K@KqtT*K@uTYYt_Q%78$))D/uU As   !A2c                     U R                  [        U R                  / SQS5        U R                  [        U R                  / SQ5        g )Nr
   r   r   999)r
   r   r   r+  r  r   s    r   test_strings_failTestSum.test_strings_fail  s1    )TYY	5A)TYY0@Ar   c                     U R                  [        U R                  / SQS5        U R                  [        U R                  / SQ5        g )Nr*     999)r
   r   r   r/  r  r   s    r   test_bytes_failTestSum.test_bytes_fail  s1    )TYY	6B)TYY0ABr   c           	          U R                  [        U R                  SS[        S5      /5        U R                  [        U R                  SS/[        S5      5        g )Nr
   r  )ro  r'  r  r   r   s    r   test_mixed_sumTestSum.test_mixed_sum  sE     	)TYYC0DE)TYYC'!*Er   r	  N)r9   r:   r;   r<   r
  r  r  r  r  r"  r'  r,  r0  r3  r=   r7   r   r   r  r    s9    
$E
15::VB
C
Fr   r  c                       \ rS rSrS rSrg)SumTortureTesti  c                    U R                  [        R                  " / SQS-  5      [        [	        S5      S45        U R                  [        R                  " / SQS-  5      [        [	        S5      S45        [        R                  " / SQS-  5      u  pnU R                  U[        5        U R                  US5        U R                  [        U5      SSS	9  g )
N)r
   }Ô%ITr
   }Ô%Ir  g     @i@  )r8  r
   r
   r9  )0.++r
   r:  r   g^,gV瞯<r%  )rI   r>   r  r   r   r  rf   )rM   r  r  counts       r   test_tortureSumTortureTest.test_torture  s    )>u)DE'!2E:	<)>u)DE'!2E:	<"(?(EFa&uSz7>r   r7   N)r9   r:   r;   r<   r<  r=   r7   r   r   r6  r6    s    	?r   r6  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)SumSpecialValuesi  c                     [         [        4 Hg  nU" S5      n[        R                  " SUS/5      S   nU R	                  [        U5      U5        U R                  [        R                  " U5      5        Mi     g )Nr^  r
   r   )	r   r   r>   r  r  r   r   r   r   )rM   r   r^  r   s       r   r`  SumSpecialValues.test_nan  sZ    W%E,C__aa[1!4FMM$v,.OODJJv./	 &r   c                     U R                  [        R                  " U5      5        U R                  [	        U5      [	        U5      5        U R                  US:  US:  5        g Nr   )r   r   r-   r  r   rI   )rM   r   r"   s      r   check_infinitySumSpecialValues.check_infinity  sD    

1&d1gtCy)Qa(r   c                     [         R                  " SSUS/5      S   nU R                  X!5        [         R                  " SSUSUS/5      S   nU R                  X!5        g )Nr
   r   r   r   )r>   r  rD  rM   r"   r   s      r   do_test_infSumSpecialValues.do_test_inf  sY    !QQ03F(!QQQ!78;F(r   c                 R    [        S5      nS H  nU R                  X!-  5        M     g Nr"   r
   r   )r   rH  rM   r"   r   s      r   test_float_infSumSpecialValues.test_float_inf  s%    ElDTX& r   c                 R    [        S5      nS H  nU R                  X!-  5        M     g rK  )r   rH  rM  s      r   test_decimal_inf!SumSpecialValues.test_decimal_inf  s%    enDTX& r   c                     [        S5      n[        R                  " SSUSU* S/5      S   nU R                  [        R
                  " U5      5        g Nr"   r
   r   r   r   )r   r>   r  r   r   r   rG  s      r   test_float_mismatched_infs+SumSpecialValues.test_float_mismatched_infs  sB    El!QQa!89!<

6*+r   c                     [        S5      nSSUSU* S/n[        R                  " [        R                  5         U R	                  [
        R                  " [        R                  " U5      S   5      5        S S S 5        g ! , (       d  f       g = frT  )	r   decimallocalcontextExtendedContextr   r   r   r>   r  rM   r"   r  s      r   3test_decimal_extendedcontext_mismatched_infs_to_nanDSumSpecialValues.test_decimal_extendedcontext_mismatched_infs_to_nan  sb    en1c1sdA&!!'"9"9:OODJJzt'<Q'?@A ;::s   =A??
Bc                    [        S5      nSSUSU* S/n[        R                  " [        R                  5         U R	                  [        R
                  [        R                  U5        S S S 5        g ! , (       d  f       g = frT  )r   rX  rY  BasicContextro  InvalidOperationr>   r  r[  s      r   0test_decimal_basiccontext_mismatched_infs_to_nanASumSpecialValues.test_decimal_basiccontext_mismatched_infs_to_nan#  s[    en1c1sdA&!!'"6"67g66
N 877s   0A22
B c                     [        S5      nSUS/nU R                  [        R                  [        R
                  U5        g )Nr  r
   r   )r   ro  rX  r`  r>   r  )rM   r  r  s      r   test_decimal_snan_raises)SumSpecialValues.test_decimal_snan_raises*  s2    v4|'22JOOTJr   r7   N)r9   r:   r;   r<   r`  rD  rH  rN  rQ  rU  r\  ra  rd  r=   r7   r   r   r?  r?    s2    0)'
'
,BOKr   r?  c                   &    \ rS rSrS rS rS rSrg)AverageMixini3  c                     SSS[        SS5      [        S5      4 H%  nU R                  U R                  U/5      U5        M'     g Nr  g     @E@g  X_yCr      z0.28r   r   rI   r  r   s     r   test_single_valueAverageMixin.test_single_value6  s=    dFHR$4gfoFATYYs^Q/ Gr   c                 6    SSS[        SS5      [        S5      4$ )N      @r    7y!C=   C   z4.9712r   r   r   s    r   'prepare_values_for_repeated_single_test4AverageMixin.prepare_values_for_repeated_single_test;  s    R"b!1783DEEr   c                     U R                  5        HK  nS HB  nU R                  XS9   U/U-  nU R                  U R                  U5      U5        S S S 5        MD     MM     g ! , (       d  f       MZ  = f)Nr   r   r   r  )r   r;  )rt  subTestrI   r  rM   r   r;  r  s       r   test_repeated_single_value'AverageMixin.test_repeated_single_value>  s`    ==?A'\\A\33u9D$$TYYt_a8 43 ( @33s   (A!!
A0r7   N)r9   r:   r;   r<   rl  rt  rz  r=   r7   r   r   rg  rg  3  s    0
F9r   rg  c                   b    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)TestMeaniG  c                 .    [         R                  U l        g r\   )r>   meanr  r   s    r   r
  TestMean.setUpH  r  r   c                 J    U R                  U R                  / SQ5      S5        g )N)r8  r
   r   r9  r
   rI   r  r   s    r   test_torture_pepTestMean.test_torture_pepK  s    #891=r   c                 z    / SQn[         R                  " U5        U R                  U R                  U5      S5        g )N)r   r
   r   r   r   r   r   r   r   r  r   r   r   r   r   r   g     @@r  r  rI   r  r  s     r   r  TestMean.test_intsO  s+    ?t4&1r   c                 z    / SQn[         R                  " U5        U R                  U R                  U5      S5        g )N)g     @1@g     3@      4@g     5@g     5@g     @7@g      9@g     ;@g     6@r  r  s     r   r  TestMean.test_floatsU  s+    Et4)4r   c                     [         nU" S5      U" S5      U" S5      U" S5      U" S5      /n[        R                  " U5        U R                  U R	                  U5      U" S5      5        g )Nz1.634z2.517z3.912z4.072z5.813z3.5896r   r  r  rI   r  r!  s      r   r"  TestMean.test_decimals[  sS    '
AgJ'
AgJ'
Kt4!H+6r   c           
          [         nU" SS5      U" SS5      U" SS5      U" SS5      U" SS5      U" SS5      U" SS5      /n[        R                  " U5        U R                  U R	                  U5      U" S	S
5      5        g )Nr
   r   r   r   r   r  r   r   i  i  r   r  r  rI   r  rM   r   r  s      r   r  TestMean.test_fractionsb  so    !Q1a!Aq'1Q7AaGQq!Wa1gNt4!D$-8r   c                     / SQn[         [        4 Hc  nS HZ  nU" S5      U-  nX/-   nU R                  U5      nU R                  [        R
                  " U5      5        U R                  Xd5        M\     Me     g )Nr
   r   r   r   r   rL  r"   )r   r   r  r   r   r-   rI   )rM   r  r  r   r"   r  r   s          r   r[  TestMean.test_infi  sg    G$D5k$&U{4

6 23  -   %r   c           
          SSS[        S5      SSS[        S5      /nU R                  U5      nU R                  [        R                  " U5      5        g )	Nr   r   r  r"   r
   r   r   z-inf)r   r  r   r   r   rM   r  r   s      r   test_mismatched_infsTestMean.test_mismatched_infst  sB    1auq!Qf>4

6*+r   c                     / SQn[         [        4 HF  nU" S5      nX/-   nU R                  U5      nU R                  [        R
                  " U5      5        MH     g )Nr  r^  )r   r   r  r   r   r   )rM   r  r  r"   r  r   s         r   r`  TestMean.test_nanz  sJ    G$Du+C;DYYt_FOODJJv./	 %r   c                     Sn/ SQnU R                  U5      U-   nU R                  U Vs/ s H  oDU-   PM	     sn5      nU R                  XS5        g s  snf )Ng    eA	333333@      @g@g@g333333@@g       @g333333 @g"@r  rI   rM   cr  r&   r   r   s         r   test_big_dataTestMean.test_big_data  sP    <99T?Q&.AaC./* /   Ac                     [        S5       Vs/ s H  n[        R                  " SS5      PM     nnU R                  U5      nU R                  US-  5      nU R	                  XC5        g s  snf )NrZ  r  r   r   r  r  r  r  rf   rM   r  r  r&   r%   s        r   test_doubled_dataTestMean.test_doubled_data  sW    /4T{;{!r1%{;99T?46"v0 <   !A(c                 h    [        S5      nU R                  [        R                  " U/5      U5        g )N1e4)r   rI   r>   r  r   s     r   test_regression_20561TestMean.test_regression_20561  s(     EN!-q1r   c                    U R                  [        R                  " SS/5      S5        SnSnS HW  nU R                  [        R                  " U/U-  5      U5        U R                  [        R                  " U/U-  5      U5        MY     g )Ngg      g       )r   r   r   r  )rI   r>   r  )rM   bigtinyr   s       r   test_regression_25177TestMean.test_regression_25177  s}     	#%:;=!	# $AZ__cU1W5s;Z__dVAX6=  r   r	  N)r9   r:   r;   r<   r
  r  r  r  r"  r  r[  r  r`  r  r  r  r  r=   r7   r   r   r}  r}  G  sC    $>2579	.,0+12>r   r}  c                      ^  \ rS rSrS rU 4S jrS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrU =r$ )TestHarmonicMeani  c                 .    [         R                  U l        g r\   )r>   harmonic_meanr  r   s    r   r
  TestHarmonicMean.setUp  s    ,,	r   c                 F   > [         TU ]  5       nUR                  S5        U$ rC  )rb  r  remove)rM   r  ra  s     r   r  TestHarmonicMean.prepare_data  s!    %'ar   c                 6    SSS[        SS5      [        S5      4$ )Nro  r   rp  rq  rr  z4.125rs  r   s    r   rt  8TestHarmonicMean.prepare_values_for_repeated_single_test  s    R"b!1773CDDr   c                 N    / SQnU R                  U R                  U5      S5        g )N)r
   r   r   r   r  rM   r  s     r   	test_zeroTestHarmonicMean.test_zero  s     6*A.r   c                     [         R                  nS// SQ4 H7  nU R                  US9   U R                  XR                  U5        S S S 5        M9     g ! , (       d  f       MK  = f)Nr   )r
   r   r   )r  )r>   r  rx  ro  r  )rM   excr  s      r   test_negative_error$TestHarmonicMean.test_negative_error  sO    ((tZ(FV,!!#yy&9 -, ),,s   A
A#	c                     S// SQ/ SQ/ SQ4 HJ  nU R                  US9   U R                  [        5         U R                  U5        S S S 5        S S S 5        ML     g ! , (       d  f       N= f! , (       d  f       Mo  = f)Nz3.14)123)r
   r  r   4r   )ffffff@r  r  z5.6r  )rx  ro  r'  r  r  s     r   test_invalid_type_error(TestHarmonicMean.test_invalid_type_error  sf     H"	
D 4(&&y1IIdO 2 )(
 21 )(s"   A.AA.
A+'A..
A=	c                 z    / SQn[         R                  " U5        U R                  U R                  U5      S5        g )N)r   r   r   r   r   r   g333333@r  r  s     r   r  TestHarmonicMean.test_ints  s+    #t4%0r   c                     / SQn[         R                  " U5        U R                  U R                  U5      S5        U R                  U R                  / SQ5      S5        g )N)r(  r  r  r  r  r  )r  r  r	  r	  r  r  r  s     r   test_floats_exact"TestHarmonicMean.test_floats_exact  sE    (t4#.#893?r   c                 n    [        SS5       H%  nU R                  U R                  U/5      U5        M'     g )Nr
   r   r  rI   r  r   s     r   test_singleton_lists%TestHarmonicMean.test_singleton_lists  s,    q#ATYYs^Q/ r   c           
         [         nU R                  U R                  U" S5      U" S5      U" S5      U" S5      /5      U" S5      5        U" S5      U" S5      U" S5      U" S5      /n[        R                  " U5        U R                  U R                  U5      U" S5      5        U" S5      U" S5      U" S	5      U" S
5      /n[        R                  " U5        U R                  U R                  U5      U" S5      S-  5        g )Nr   r2  r  r;  z0.10z0.20z1.68z0.32z5.94z2.75i iC )r   rI   r  r  r  r!  s      r   test_decimals_exact$TestHarmonicMean.test_decimals_exact  s    AbE1R5!B%2#?@!B%H&	1V9ai6;t4!F)4&	1V9ai6;t4!E(5.9r   c           
          [         nU" SS5      U" SS5      U" SS5      U" SS5      U" SS5      U" SS5      U" SS5      /n[        R                  " U5        U R                  U R	                  U5      U" S	S
5      5        g )Nr
   r   r   r   r   r  r   r   i|  i  r  r  s      r   r  TestHarmonicMean.test_fractions  so    !Q1a!Aq'1Q7AaGQq!Wa1gNt4!E4.9r   c                 b    S[        S5      S/nU R                  U R                  U5      S5        g )Nr  r"   r	  )r   rI   r  r  s     r   r[  TestHarmonicMean.test_inf  s+    uU|S)6*C0r   c                     S[        S5      S/nU R                  [        R                  " U R	                  U5      5      5        g )Nr  r^  r	  )r   r   r   r   r  r  s     r   r`  TestHarmonicMean.test_nan  s0    uU|S)

499V#456r   c                     Sn/ SQnU R                  U5      U-  nU R                  U Vs/ s H  oDU-  PM	     sn5      nU R                  XS5        g s  snf )No   r  r  r  s         r   test_multiply_data_points*TestHarmonicMean.test_multiply_data_points  sP    <99T?1$.AaC./* /r  c                     [        S5       Vs/ s H  n[        R                  " SS5      PM     nnU R                  U5      nU R                  US-  5      nU R	                  XC5        g s  snf )NrZ  r
   r   r   r  r  s        r   r  "TestHarmonicMean.test_doubled_data  sW    .3Dk:kq!$k:99T?46"v0 ;r  c           
         U R                  U R                  SS/SS/5      S5        U R                  U R                  SS/SS/S9S5        U R                  U R                  [        SS/5      [        SS/5      5      S5        U R                  U R                  [        SS5      [        S	S5      [        S
S5      // SQ5      U R                  [        SS5      /S-  [        S	S5      /S-  -   [        S
S5      /S-  -   5      5        U R                  U R                  S/S
/5      S5        U R	                  [
        5         U R                  / SQ/ SQ5        S S S 5        U R	                  [        R                  5         U R                  / SQSS/5        S S S 5        U R	                  [        R                  5         U R                  S/S/5        S S S 5        U R	                  [        R                  5         U R                  SS/SS/5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       No= f! , (       d  f       g = f)Nru  r  r   r2  g      L@)weightsr   r   r  r   r   )r   r   r   r*  )r
   r7   r   r
   r   r  )rI   r  r  r   ro  r'  r>   r  r   s    r   test_with_weights"TestHarmonicMean.test_with_weights
  s   B8aW5t<B8,-r7 # 459	;4R>#'B=237	9IIxAQ!QH*UIIxA'!+A'!+,1~&+, -	.
 	B4!-r2y)IIi, *z99:IIi!Q( ;z99:IIrdQC  ;z99:IIr2hA' ;: *)::::::s0    H>H)<H:8I
H&)
H7:
I
Ir	  )r9   r:   r;   r<   r
  r  rt  r  r  r  r  r  r  r  r  r[  r`  r  r  r  r=   rh  ri  s   @r   r  r    sZ    -E/
:
$1@0
	::1
7
+1( (r   r  c                   R   ^  \ rS rSrS rU 4S jrS rS rS rS r	S r
S	 rS
rU =r$ )
TestMediani   c                 .    [         R                  U l        g r\   r>   medianr  r   s    r   r
  TestMedian.setUp"      %%	r   c                 j   > [         TU ]  5       n[        U5      S-  S:w  a  UR                  S5        U$ )Nr   r
   )rb  r  ri   r  )rM   r  ra  s     r   r  TestMedian.prepare_data%  s0    w#%t9Q;!KKNr   c                 N    / SQnU R                  U R                  U5      S5        g )Nr
   r   r   r   r   r  ro  r  r  s     r   test_even_intsTestMedian.test_even_ints,  s    !4#.r   c                 N    / SQnU R                  U R                  U5      S5        g )N)r
   r   r   r   r   r  r   r   r  r  s     r   test_odd_intsTestMedian.test_odd_ints2  s    $4!,r   c                     [         nU" SS5      U" SS5      U" SS5      U" SS5      U" SS5      /n[        R                  " U5        U R                  U R	                  U5      U" SS5      5        g )Nr
   r   r   r   r   r   r  r  s      r   test_odd_fractionsTestMedian.test_odd_fractions8  s_    !Q1a!Aq'1Q7AaG<t4!Aq'2r   c           	          [         nU" SS5      U" SS5      U" SS5      U" SS5      U" SS5      U" SS5      /n[        R                  " U5        U R                  U R	                  U5      U" SS5      5        g Nr
   r   r   r   r   r   r  r  r  s      r   test_even_fractionsTestMedian.test_even_fractions@  g    !Q1a!Aq'1Q7AaGQq!WEt4!Aq'2r   c                     [         nU" S5      U" S5      U" S5      U" S5      U" S5      /n[        R                  " U5        U R                  U R	                  U5      U" S5      5        g )N2.53.14.25.75.8r  r!  s      r   test_odd_decimalsTestMedian.test_odd_decimalsH  sS    %!E(AeHah%At4!E(3r   c                     [         nU" S5      U" S5      U" S5      U" S5      U" S5      U" S5      /n[        R                  " U5        U R                  U R	                  U5      U" S5      5        g )Nz1.2r  r  r  r  r  z3.65r  r!  s      r   test_even_decimalsTestMedian.test_even_decimalsP  sY    %!E(AeHah%!E(Kt4!F)4r   r	  )r9   r:   r;   r<   r
  r  r  r  r  r   r	  r  r=   rh  ri  s   @r   r  r     s0    &/-3345 5r   r  c                        \ rS rSrS rS rSrg)TestMedianDataTypeiY  c                 .    [         R                  U l        g r\   r  r   s    r   r
  TestMedianDataType.setUp[  r  r   c                     [        [        S5      5      nU[        U5      :X  a'  [        R                  " U5        U[        U5      :X  a  M'  U$ )Nr   r  r  s     r   r  TestMedianDataType.prepare_data^  s:    E"IfTl"NN4  fTl"r   r	  N)r9   r:   r;   r<   r
  r  r=   r7   r   r   r  r  Y  s    &r   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestMedianLowif  c                 .    [         R                  U l        g r\   )r>   
median_lowr  r   s    r   r
  TestMedianLow.setUpg  s    ))	r   c                 N    / SQnU R                  U R                  U5      S5        g )Nr  r   r  r  s     r   r  TestMedianLow.test_even_intsj      !4!,r   c           	          [         nU" SS5      U" SS5      U" SS5      U" SS5      U" SS5      U" SS5      /n[        R                  " U5        U R                  U R	                  U5      U" SS5      5        g r  r  r  s      r   r   !TestMedianLow.test_even_fractionsp  r  r   c                     [         nU" S5      U" S5      U" S5      U" S5      U" S5      U" S5      /n[        R                  " U5        U R                  U R	                  U5      U" S5      5        g Nz1.1z2.2z3.3z4.4r  z6.6r  r!  s      r   r   TestMedianLow.test_even_decimalsx  Y    %!E(AeHah%!E(Kt4!E(3r   r	  N	r9   r:   r;   r<   r
  r  r   r  r=   r7   r   r   r  r  f  s    *-34r   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestMedianHighi  c                 .    [         R                  U l        g r\   )r>   median_highr  r   s    r   r
  TestMedianHigh.setUp  s    **	r   c                 N    / SQnU R                  U R                  U5      S5        g )Nr  r   r  r  s     r   r  TestMedianHigh.test_even_ints  r  r   c           	          [         nU" SS5      U" SS5      U" SS5      U" SS5      U" SS5      U" SS5      /n[        R                  " U5        U R                  U R	                  U5      U" SS5      5        g r  r  r  s      r   r   "TestMedianHigh.test_even_fractions  r  r   c                     [         nU" S5      U" S5      U" S5      U" S5      U" S5      U" S5      /n[        R                  " U5        U R                  U R	                  U5      U" S5      5        g r  r  r!  s      r   r  !TestMedianHigh.test_even_decimals  r!  r   r	  Nr"  r7   r   r   r$  r$    s    +-34r   r$  c                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestMedianGroupedi  c                 .    [         R                  U l        g r\   )r>   median_groupedr  r   s    r   r
  TestMedianGrouped.setUp  s    --	r   c                 .   / SQnU R                  U R                  U5      S5        / SQnU R                  U R                  U5      S5        / SQnU R                  U R                  US5      S5        / SQnU R                  U R                  US	5      S
SS9  g )N)r   rl     r4  r4  r   r   r4  )r   rl  r4  r4  r4  r4  r   g     +@)r   r   r   r   r  r  r  r     r5  r2  r   g     `3@)r      r6  r6  r6  r  r  r     r7  r7     r8        r   g4@:0yE>r/   rI   r  rf   r  s     r   test_odd_number_repeated*TestMedianGrouped.test_odd_number_repeated  s    +4"-+4&1:4+V4Ktyyq1;DIr   c                 *   / SQnU R                  U R                  US5      SSS9  / SQnU R                  U R                  U5      SSS9  / SQnU R                  U R                  U5      S	5        / S
QnU R                  U R                  U5      S5        g )N)
r   r   r   r   r  r  r  r5  r5  r2  r   g*3@r;  r<  )r   r   r   r   r   r   g["8@)r   r   r   r   r   r   r   r   r   r   r  r  r  )
r   r   r   r   r   r   r   r   r  r        @)rf   r  rI   r  s     r   test_even_number_repeated+TestMedianGrouped.test_even_number_repeated  s    6tyyq1;DI!tyy
E34#.-4$/r   c                     SSS[        SS5      [        S5      4 H<  nS H3  nU/U-  nU R                  U R                  U5      [	        U5      5        M5     M>     g )N333333@D   g ޗCr  r   z32.9714rw  r   r   rI   r  r   ry  s       r   rz  ,TestMedianGrouped.test_repeated_single_value  sW     r68B#4gi6HIA's5y  4%(; ( Jr   c                     SSS[        SS5      [        S5      4 H.  nU R                  U R                  U/5      [	        U5      5        M0     g ri  rG  r   s     r   rl  #TestMedianGrouped.test_single_value  sC     dFHR$4gfoFATYYs^U1X6 Gr   c                     [         nU" SS5      U" SS5      U" SS5      U" SS5      U" SS5      /n[        R                  " U5        U R                  U R	                  U5      S5        g )Nr   r   r   rl  r         @r  r  s      r   r  $TestMedianGrouped.test_odd_fractions  sY    !Q1a!B(Ab!HaAh?t4#.r   c           	          [         nU" SS5      U" SS5      U" SS5      U" SS5      U" SS5      U" SS5      /n[        R                  " U5        U R                  U R	                  U5      S5        g )Nr   r   r   rl  r         
@r  r  s      r   r   %TestMedianGrouped.test_even_fractions  sa    !Q1a!B(Ab!HaAh"aIt4$/r   c                     [         nU" S5      U" S5      U" S5      U" S5      U" S5      /n[        R                  " U5        U R                  U R	                  U5      S5        g )Nr  6.57.58.5g      @r  r!  s      r   r	  #TestMedianGrouped.test_odd_decimals  sO    %!E(AeHah%At4$/r   c                    [         nU" S5      U" S5      U" S5      U" S5      U" S5      U" S5      /n[        R                  " U5        U R                  U R	                  U5      S5        U" S5      U" S5      U" S5      U" S5      U" S5      U" S5      /n[        R                  " U5        U R                  U R	                  U5      S5        g )Nr  rR  rS  rT        @      @r  r!  s      r   r  $TestMedianGrouped.test_even_decimals  s    %!E(AeHah%!E(Kt4#.%!E(AeHah%!E(Kt4#.r   c                     / SQnU R                  U R                  US5      S5        / SQnU R                  U R                  US5      SSS9  / SQnU R                  U R                  US	5      S
5        g )N)
      @r  r  rT  rT  rL  rL  rO  ro  r  r  g      @)r[  r  r  rT  rT  rT  rL  rL  rO  ro  r  g["8@r;  r<  )   r\       r^  r^  r^    r_  ,  @  iT  r  g     p@r=  r  s     r   test_intervalTestMedianGrouped.test_interval  sg    F4.6Ltyyt4jdKK4,e4r   c                 4   / SQnU R                  [        U R                  U5        / SQnU R                  [        U R                  U5        / SQnSnU R                  [        U R                  X5        / SQnSnU R                  [        U R                  X5        g )N) re  re  )r   r   r   r*  re  r   r  )rM   r  intervals      r   test_data_type_error&TestMedianGrouped.test_data_type_error  sx    )TYY5)TYY5)TYY?)TYY?r   r	  N)r9   r:   r;   r<   r
  r>  rB  rz  rl  r  r   r	  r  rb  rg  r=   r7   r   r   r/  r/    s;    .J$0$<7/00/5@r   r/  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestModei  c                 .    [         R                  U l        g r\   )r>   moder  r   s    r   r
  TestMode.setUp  r  r   c                 
    / SQ$ )N)r
   r
   r
   r
   r   r   r   r   r   r   r   r7   r   s    r   r  TestMode.prepare_data  s
     10r   c                 `    [        SSS5      nU R                  U R                  U5      S5        g r  r  r  s     r   r  TestMode.test_range_data  s(    RQ4"-r   c                     SnU R                  U R                  U5      S5        SR                  5       nU R                  U R                  U5      S5        g )Nabcbdbr   zfe fi fo fum fi fifi)rI   r  r   r  s     r   test_nominal_dataTestMode.test_nominal_data#  sE    4#.#))+4$/r   c                     [        [        S5      5      n[        S5       H?  nX/-   n[        R                  " U5        U R	                  U R                  U5      U5        MA     g r  rB  r  r  r  rI   r  )rM   r  ro   r   s       r   test_discrete_dataTestMode.test_discrete_data*  sJ    E"IrAs
ANN1TYYq\1- r   c                 N    / SQnU R                  U R                  U5      S5        g )N)r
   r
   r   r   r   r   r   r   r   r  r  r  r  r   r   r   r   r   r  r  s     r   test_bimodal_dataTestMode.test_bimodal_data2  s!    B 	4!,r   c                 n    [        [        S5      5      nU R                  U R                  U5      S5        g )Nr   r   )rB  r  rI   r  r  s     r   test_unique_dataTestMode.test_unique_data9  s'    E"I4!,r   c                 F    U R                  [        U R                  S 5        g r\   r  r   s    r   test_none_dataTestMode.test_none_data?  s    
 	)TYY5r   c                 p    [         R                  " SSS9nU R                  U R                  U5      S5        g )Nr
   r   )r   r   r   )r]   CounterrI   r  )rM   r  s     r   test_counter_dataTestMode.test_counter_dataF  s0    
 !q) 	1s+r   r	  N)r9   r:   r;   r<   r
  r  r  ru  ry  r|  r  r  r  r=   r7   r   r   rj  rj    s/    $1
.
0.--6,r   rj  c                       \ rS rSrS rSrg)TestMultiModeiQ  c                     [         R                  nU R                  U" S5      S/5        U R                  U" S5      / SQ5        U R                  U" S5      / 5        g )Naabbbbbbbbccr   aabbbbccddddeeffffgg)r   r   r   re  )r>   	multimoderI   )rM   r  s     r   test_basicsTestMultiMode.test_basicsS  sN    ((	>2SE:#9:OL2+r   r7   N)r9   r:   r;   r<   r  r=   r7   r   r   r  r  Q  s    ,r   r  c                   ,    \ rS rSrS rS rS rS rSrg)	TestFMeaniZ  c           
         [         R                  n[        n[        n/ SQSS4U" S5      U" S5      U" S5      /SS4U" SS	5      U" S
S5      U" SS
5      /SS4/ SQSS4SS
U" SS
5      /SS4S[	        / SQ5      SS44 H@  u  pEnU" U5      nU R                  [        U5      [        U5        U R                  XuU5        MB     g )Nro  r        @      @floats3.54.05.25decimalsr   r   r   r
   r   	fractions)TFTTF333333?booleansro  mixed types)r  r  rC  iterator)	r>   fmeanr   r   r  r  r   r   rI   )rM   r  r   r   r  expected_meanr  actual_means           r   r  TestFMean.test_basics\  s      tX.h%!F),dJ?1gqAw"a)4=-tZ@1aAh}5-"#T:6*%D  +KMM${+UD9[>*r   c                    [         R                  n[         R                  nU R                  U5         U" / 5        S S S 5        U R                  U5         U" [	        / 5      5        S S S 5        U R                  [
        5         U" S 5        S S S 5        U R                  [
        5         U" / SQ5        S S S 5        U R                  [
        5         U" 5         S S S 5        U R                  [
        5         U" / SQS5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N|= f! , (       d  f       g = f)Nr   Nr  r   r  r  F   )r>   r  r  ro  r  r'  rM   r  r  s      r   test_error_casesTestFMean.test_error_casesm  s      $44/"I 0/$r(O 0y)$K *y).! *y)G *y),# *) 0///))))))))sG   	DD	D-)D>E6E 
D
D*-
D;>
E
E 
E.c                    [         R                  n[        S5      n[        S5      nU R                  [        R
                  " U" SU/5      5      S5        U R                  [        R
                  " U" X#/5      5      S5        U R                  [        R                  " U" SU/5      5      S5        U R                  [        5         U" X3* /5        S S S 5        g ! , (       d  f       g = f)NNanInfr   r^  nan and infinityinfinity)	r>   r  r   r   r   r   r-   ro  r,   )rM   r  NaNr  s       r   test_special_valuesTestFMean.test_special_values}  s      ElEl

5"c#34e<

5##457IJ

5"c#34jAz*3+ +**s   C
C'c           	      R   [         R                  n[         R                  nU R                  U" / SQS/S-  5      U" / SQ5      5        U R                  U" / SQ/ SQ5      U" / SQ5      5        U R                  U" [	        / SQ5      [	        / SQ5      5      U" / SQ5      5        U R                  U5         U" / SQSS	/5        S S S 5        U R                  U5         U" [	        / SQ5      [	        SS	/5      5        S S S 5        U R                  U5         U" S
S/SS/5        S S S 5        U R                  U5         U" [	        S
S/5      [	        SS/5      5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nj= f! , (       d  f       g = f)N)r   r   r   r4  r  r   )r   r   r  )r  r  r  )r   r   r  r  r   r  r2  r
   r   r   r  r   )r>   r  r  rI   r  ro  r  s      r   test_weightsTestFMean.test_weights  sR     $44"TFQJ/"#	% 	, 23"#	% 	$|$d+=&>?"#	% /,A' 0/$|$dAq6l3 0/2r(RG$ 0/$Bx.$Aw-0 0/ 0///////s0   5E% E6F< F%
E36
F
F
F&r7   N)	r9   r:   r;   r<   r  r  r  r  r=   r7   r   r   r  r  Z  s    ?"$ 	1r   r  c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)VarianceStdevMixini  -q=c                     SSS[        SS5      [        S5      4 H%  nU R                  U R                  U/5      S5        M'     g )Nr   g3@g  %Br   r  z8.392r   rk  r   s     r   rl  $VarianceStdevMixin.test_single_value  s>    dFHR$4gg6FGATYYs^Q/ Hr   c                     SSS[        SS5      [        S5      4 H3  nS H*  nU/U-  nU R                  U R                  U5      S5        M,     M5     g )	Nr  r3  g @6<Cr   r   z62.4802)r   r   r   r   r   rk  ry  s       r   rz  -VarianceStdevMixin.test_repeated_single_value  sP    r68Aq>793EFA&s5y  4!4 ' Gr   c                 x    S/S-  nU R                  U5      nU R                  USSS9  U R                  US5        g )Ng.F7ݚ?r  r~   gؗҌ<r<  r   )r  rf   r  r  s      r   test_domain_error_regression/VarianceStdevMixin.test_domain_error_regression  sE     ""5( 4vs6*r   c                     / SQnU R                  U5      nSnU Vs/ s H  oDU-   PM	     nnU R                  U R                  U5      U5        g s  snf )N)
g{Gz?gRQ?g
ףp=
?gRQ @gp=
ף@gQ	@rA  gQ@gGz@gQ@g     j@)r  rf   rM   r  r&   shiftr   r  s         r   test_shift_data"VarianceStdevMixin.test_shift_data  sO     K99S>#&'3aE	3'tyy9 (   Ac                     / SQnU R                  U5      nSnU Vs/ s H  oDU-   PM	     nnU R                  U R                  U5      U5        g s  snf )N)
r
   r   r   r   r   r   r   r   r   r   i ʚ;r  r  s         r   test_shift_data_exact(VarianceStdevMixin.test_shift_data_exact  sL    /99S>#&'3aE	3'4(3 (r  c                     [        S5       Vs/ s H  n[        R                  " SS5      PM     nnU R                  U5      nU R	                  U R                  [        U5      5      U5        g s  snf )NrZ  r  r   )r  r  r  r  rI   r  rM   r  r  r&   s       r   test_iter_list_same&VarianceStdevMixin.test_iter_list_same  sV     05T{;{!r1%{;99T?4:.9 <s   !A-r7   N)r9   r:   r;   r<   r0   rl  rz  r  r  r  r  r=   r7   r   r   r  r    s'     C0
5+:4
:r   r  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestPVariancei  c                 .    [         R                  U l        g r\   )r>   	pvariancer  r   s    r   r
  TestPVariance.setUp  s    ((	r   c                     [        [        S5      5      n[        R                  " U5        SnU R	                  U R                  U5      U5        g )Nr  g   P_Arx  r  s      r   test_exact_uniform TestPVariance.test_exact_uniform  s9    E%L!t$4(3r   c                 R    / SQnSnU R                  U R                  U5      U5        g )Nr   r   rl  r   g     6@r  rM   r  exacts      r   r  TestPVariance.test_ints  s$    4%0r   c                     [         nU" SS5      U" SS5      U" SS5      U" SS5      /nU" SS5      nU R                  U5      nU R                  XC5        U R                  U[         5        g )Nr
   r   r   r   r   r   r  rI   assertIsInstancerM   r   r  r  r   s        r   r  TestPVariance.test_fractions  c    !Q1a!Aq'1Q73!Q4'fh/r   c                     [         nU" S5      U" S5      U" S5      U" S5      /nU" S5      nU R                  U5      nU R                  XC5        U R                  U[         5        g )Nz12.1z12.2z12.5z12.9z0.096875r   r  rI   r  rM   r   r  r  r   s        r   r"  TestPVariance.test_decimals  sY    &	1V9ai6;*4'fg.r   c                     / SQnSnU R                  U5      nU R                  X25        U R                  U[        5        g )N)r   r   r
   gqq?r  rI   r  r   rM   r  r  r   s       r   test_accuracy_bug_20499%TestPVariance.test_accuracy_bug_20499  7    4'fe,r   r	  N)r9   r:   r;   r<   r
  r  r  r  r"  r  r=   r7   r   r   r  r    s     )410/-r   r  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestVariancei  c                 .    [         R                  U l        g r\   )r>   variancer  r   s    r   r
  TestVariance.setUp  s    ''	r   c                     SSS[        SS5      [        S5      4 H/  nU R                  [        R                  U R
                  U/5        M1     g )Nr   g333338@g (G!=Crj  r2  z4.2084r   r   ro  r>   r  r  r   s     r   rl  TestVariance.test_single_value  sB    dFHR$4gh6GHAj88$))aSI Ir   c                 R    / SQnSnU R                  U R                  U5      U5        g )Nr  r2  r  r  s      r   r  TestVariance.test_ints  s$    4%0r   c                     [         nU" SS5      U" SS5      U" SS5      U" SS5      /nU" SS5      nU R                  U5      nU R                  XC5        U R                  U[         5        g )Nr
   r   r   r   r   r  r  s        r   r  TestVariance.test_fractions  r  r   c                     [         nU" S5      U" S5      U" S5      U" S5      /nSU" S5      -  U" S5      -  nU R                  U5      nU R                  XC5        U R                  U[         5        g )Nr   r   r   r   z9.5r   r  r  s        r   r"  TestVariance.test_decimals'  se    !adAaD!A$'!E(
1Q44'fg.r   c                     SnU R                  U R                  U5      S5        U R                  U R                  USS9S5        g )Nr	  r  r  r  xbarr	  r  r  s     r   test_center_not_at_mean$TestVariance.test_center_not_at_mean0  s<    4#.4c2C8r   c                     / SQnSnU R                  U5      nU R                  X25        U R                  U[        5        g )N)r   r   r   gUUUUUU?r  r  s       r   r  $TestVariance.test_accuracy_bug_204995  r  r   r	  N)r9   r:   r;   r<   r
  rl  r  r  r"  r  r  r=   r7   r   r   r  r    s&    (J
10/9
-r   r  c                   &    \ rS rSrS rS rS rSrg)
TestPStdevi<  c                 .    [         R                  U l        g r\   )r>   pstdevr  r   s    r   r
  TestPStdev.setUp>  r  r   c                    [        S5       Vs/ s H  n[        R                  " SS5      PM     nn[        R                  " [
        R                  " U5      5      nU R                  U R                  U5      U5        g s  snf )NrZ  ir8  )	r  r  r  r   sqrtr>   r  rI   r  r  s       r   test_compare_to_variance#TestPStdev.test_compare_to_varianceA  s[    16t=AsB'=99Z11$784(3 >   !A=c                     SnU R                  U R                  U5      S5        U R                  U R                  USS9S5        g )N)r   r  r   r   r  r  )murW  r  r  s     r   r  "TestPStdev.test_center_not_at_meanG  s<    4#.4C0#6r   r	  N)r9   r:   r;   r<   r
  r  r  r=   r7   r   r   r  r  <  s    &47r   r  c                   Z    \ rS rSrS r\\R                  " S5      S 5       5       rS r	Sr
g)TestSqrtHelpersiM  c                 n   [         R                  " [        S5      [        SS5      5       H  u  p[        R                  " X5      nU R                  U[        5        X3-  U-  U:X  a  M>  U R                  US-  S5        U R                  X#S-
  S-  -  Us=:  =(       a    X#S-   S-  -  :  Os  5        M     g )Nr   r
   rZ  r   )		itertoolsproductr  r>   _integer_sqrt_of_frac_rtor  r   rI   r   )rM   r   mr   s       r   test_integer_sqrt_of_frac_rto-TestSqrtHelpers.test_integer_sqrt_of_frac_rtoO  s    %%eCj%4.ADA44Q:A!!!S)s1uzQqS!$OOAQ
NQ??!eaZ?@ Br   cpuc                    S[         S[        S[        4S jn[        R                  n[        S5       Hx  nU" SU" S5      -  5      nU" SU" S5      -  5      S-   nU R                  XES	9   [        XE5      n[        R                  " XE5      nU R                  U" Xg5      5        S S S 5        Mz     U R                  [        R                  " S
S5      S5        U R                  [        5         [        R                  " SS5        S S S 5        U R                  [        5         [        R                  " SS5        S S S 5        U R                  [        5         [        R                  " SS
5        S S S 5        U R                  [        R                  " SS5      [        R                  " SS5      5        g ! , (       d  f       GM  = f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)Nr   rootreturnc                 @   U (       d  US:H  $ [         R                  " U[         R                  5      n[         R                  " U[         R                  * 5      n[        U5      nU[        U5      -   S-  nU[        U5      -   S-  nUS-  U s=:*  =(       a    US-  :*  $ s  $ )Nr~   r   )r   	nextafterr"   r   )r   r  r_upr_down	frac_roothalf_way_uphalf_way_downs          r   is_root_correctly_roundedJTestSqrtHelpers.test_float_sqrt_of_frac.<locals>.is_root_correctly_rounded_  s    s{" ..txx8D NN4$((;F #+4.I%.$%?1$DK'08F3C'Cq&HM !A%>>kQ.>>>>>r   i`  r   r4  r
   )	numeratordenonimatorr   r~   r   r   r   )r   r   r  r  	randranger  rx  r>   _float_sqrt_of_fracr   rI   ro  r,   ZeroDivisionError)rM   r"  r&  ro   r$  r%  r   r  s           r   test_float_sqrt_of_frac'TestSqrtHelpers.test_float_sqrt_of_frac[  s   	? 	? 	?4 	?$ $$	vA&rYr]':;I(y})<=AK	K&y>(<<YT 9! BC LK  	771=sCz***2q1 +z***1b1 + 01**1a0 2 	77B?A_A_`acdAef# LK +*** 21s0   *9F2+G GG'2
G	
G
G$'
G5c                    [        S5      SS4[        S5      SS4[        S5      SS44 GH  u  pn[        R                  " [        R                  5         U R	                  [
        R                  " X#5      U5        S S S 5        [        R                  " [        R                  5       nU=R                  S-  sl        [        U5      [        U5      -  n[        R                  Ul	        UR                  5       nS S S 5        [        R                  " [        R                  5         W7nS S S 5        U R	                  UW5        GM     U R	                  [
        R                  " S	S
5      S5        U R                  [        R                  5         [
        R                  " SS
5        S S S 5        U R                  [        R                  5         [
        R                  " S
S5        S S S 5        U R                  [        5         [
        R                  " S
S	5        S S S 5        U R	                  [
        R                  " SS5      [
        R                  " SS
5      5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNa= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)Nz0.4481904599041192673635338663l   :jt9)4]! l       73Me'z0.7924949131383786609961759598l   Q_Ar,NE*z0.8500554152289934068192208727l   kr"-D9}ZGr   r   r
   r~   r   r   r   )r   rX  rY  DefaultContextrI   r>   _decimal_sqrt_of_fracprec
ROUND_05UProundingr  ro  r`  r(  )rM   r  r$  denominatorctxhigh_prec_ratiohigh_prec_roottarget_roots           r   test_decimal_sqrt_of_frac)TestSqrtHelpers.test_decimal_sqrt_of_frac  s    568VXwx568VXwx568VXwx-
(D[
 %%g&<&<=  !A!A)!Y[_` > %%g&<&<=A"))"4w{7K"K&11!0!5!5!7	 >
 %%g&<&<=-o >T;/!-
& 	99!Q?Ew778,,R3 9w778,,Q3 9 01,,Q2 2 	99"bA:CcCcdeghCij3 >= >=
 >= 9888 21sI   'I (AI2&JJJ'J8 
I/	2
J	
J	
J$'
J58
Kr7   N)r9   r:   r;   r<   r  r   r   requires_resourcer)  r6  r=   r7   r   r   r  r  M  s8    
A u%*g & *gX#kr   r  c                   ,    \ rS rSrS rS rS rS rSrg)	TestStdevi  c                 .    [         R                  U l        g r\   )r>   stdevr  r   s    r   r
  TestStdev.setUp  s    $$	r   c                     SSS[        SS5      [        S5      4 H/  nU R                  [        R                  U R
                  U/5        M1     g )NQ   gHzwi@g  f7?+Br   r   z35.719r  r   s     r   rl  TestStdev.test_single_value  sA    ffhq"owx7HIAj88$))aSI Jr   c                    [        S5       Vs/ s H  n[        R                  " SS5      PM     nn[        R                  " [
        R                  " U5      5      nU R                  U R                  U5      U5        g s  snf )NrZ  r   r   )	r  r  r  r   r  r>   r  assertAlmostEqualr  r  s       r   r  "TestStdev.test_compare_to_variance  s[    /4T{;{!r1%{;99Z0067tyy9 <r
  c                 H    SnU R                  U R                  USS9S5        g )Nr  r  r  r	  r  r  s     r   r  !TestStdev.test_center_not_at_mean  s$    4c2C8r   r	  N)	r9   r:   r;   r<   r
  rl  r  r  r=   r7   r   r   r:  r:    s    %J
:9r   r:  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestGeometricMeani  c                    [         R                  nU R                  U" / SQ5      S5        U R                  U" SS/5      S5        U R                  U" S/5      S5        [        R                  " S5        [        SS	5      [        SS
5      [        SS5      [        SSS5      [        SSS5      / SQ[        S
5       Vs/ s H  n[        R                  " S5      PM     sn[        S5       Vs/ s H  n[        R                  " SS5      PM     sn[        S5       Vs/ s H  n[        R                  " SSS5      PM     sn4	 Hv  n[        R                  " [        [        U5      5      [        S5      [        U5      -  -  nU" U5      nU R                  [        R                  " U[!        U5      5      5        Mx     g s  snf s  snf s  snf )N)r   r8  r         B@r  g      "@g      @g     1@l   ; r
   r   rZ  r  r  r   r  )r   r   rl  r   x   r         I@  r  rL  i  i  )r>   geometric_meanrB  r  seedr  expovariatelognormvariate
triangularr   prodr   r   ri   r   iscloser   )rM   rM  ro   rng
gm_decimalgm_floats         r   r  TestGeometricMean.test_basics  se   #22~l;TB~sCj93?~vh7@N#aaa c61%fc2&'38<@<a##D)<@;@<H<a&&tS1<H>CElKl""4t4lK
C 3w#45'!*s3x:OPJ%c*HOODLL53DEF
 AHKs   = F=,!G"Gc           	      n   [         R                  n[        n[        nSn/ SQS4U" S5      U" S5      U" S5      /S4U" SS	5      U" S
S5      U" SS
5      /S4SS
U" SS
5      /S4S[	        / SQ5      S44 H=  u  pVU" U5      nU R                  [        U5      [        U5        U R                  XtSS9  M?     g )Ngd@r  r  r  r  r  r  r   r   r   r
   r   r  ro  r  )r  rC  r  r   places)	r>   rM  r   r   r  r  r   r   rB  )rM   rM  r   r   r  r  r  r  s           r   test_various_input_types*TestGeometricMean.test_various_input_types  s    #22x(h%!F),j91gqAw"a);71aAh/'"#Z0JD ).KMM${+UD9"";a"Hr   c                    [         R                  nSnU" SU-  SU-  SU-  /5      nU R                  [        R                  " USU-  5      5        U R                  [        R                  " U5      5        SnU" SU-  SU-  SU-  /5      nU R                  [        R                  " USU-  5      5        U R                  US5        g )Ng      p~g      K@g      8@rI  g      pr~   )r>   rM  r   r   rS  r   r-   assertNotEqual)rM   rM  largebig_gmsmallsmall_gms         r   test_big_and_small$TestGeometricMean.test_big_and_small  s    #22 te|TE\ JKVTE\:;F+, !4%<te|"LMXte|<=Hc*r   c                 H   [         R                  n[         R                  nU R                  U5         U" / 5        S S S 5        U R                  U5         U" / SQ5        S S S 5        U R                  U5         U" / SQ5        S S S 5        U R                  U5         U" S[        R
                  * S/5        S S S 5        U R                  U5         U" [        / 5      5        S S S 5        U R                  [        5         U" S 5        S S S 5        U R                  [        5         U" / SQ5        S S S 5        U R                  [        5         U" 5         S S S 5        U R                  [        5         U" / SQS5        S S S 5        g ! , (       d  f       GNS= f! , (       d  f       GNA= f! , (       d  f       GN/= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)N)ro        r  )r~   rf  r  ro  r  r  r  r  )r>   rM  r  ro  r   r"   r  r'  )rM   rM  r  s      r   r  "TestGeometricMean.test_error_cases  sb   #22$44/2 0/,- 0/,- 0/C$((D12 0/48$ 0y)4  *y)>* *y) *y)<, *)! 0/////////))))))))sk   	FF8F+F=G?	G %G1H2H
F
F(+
F:=
G
G 
G.1
G?
H
H!c                    [         R                  n[        S5      n[        S5      nU R                  [        R
                  " U" SU/5      5      S5        U R                  [        R
                  " U" X#/5      5      S5        U R                  [        R                  " U" SU/5      5      S5        U R                  [        5         U" X3* /5        S S S 5        U R                  U" / SQ5      S5        U R                  U" / S	Q5      S5        U R                  [        R
                  " U" S
U/5      5      5        U R                  [        R
                  " U" S
U/5      5      5        g ! , (       d  f       N= f)Nr  r  r   r^  r  r  )r   r~   r   r~   )r   r   r   r   )
r>   rM  r   r   r   r   r-   ro  r,   rI   )rM   rM  r  r  s       r   r  %TestGeometricMean.test_special_values	  s   #22ElEl

>2s)#<=uE

>3*#=>@RS

>2s)#<=zJz*C;' + 	4c:5s;

>1c(#;<=

>1c(#;<= +*s   E''
E5c                     [         R                  nSn/ SQ/ SQ/ SQ/ SQ/ SQ/nU H3  nU R                  US9   U" U5      nU R                  XRSS	9  S S S 5        M5     g ! , (       d  f       MG  = f)
NgY};t@)r   r   r   r   )r   r   r   rX  )r   r   r  rX  )r   rL  r  rX  )r  rL  r  rX  )vr   rY  )r>   rM  rx  rB  )rM   rM  r  r  rk  r  s         r   test_mixed_int_and_float*TestGeometricMean.test_mixed_int_and_float#	  sn    #22( 
 A",Q/&&{!&L #" ""s   A
A-	r7   N)r9   r:   r;   r<   r  r[  rc  r  r  rl  r=   r7   r   r   rG  rG    s#    G,I$+-,>"Mr   rG  c                   z    \ rS rSr\R
                  " S5      S 5       rS r\R
                  " S5      S 5       rSr	g)TestKDEi4	  r  c           	      H   [         R                  n[         R                  n/ SQn/ SQnS$S jnU H>  nU R                  US9   U" USUS9nU" USS5      nU R	                  US	S
S9  S S S 5        M@     / SQn	Sn
SnU HN  nU R                  US9   U" XUSS9nU" XU5      nU" USUS5      nU R	                  U" U5      US
S9  S S S 5        MP     U R                  U5         U" / S	S9  S S S 5        U R                  [        5         U" SS/S5        S S S 5        U R                  [        5         U" [        U5      S5        S S S 5        U R                  U5         U" USS9  S S S 5        U R                  U5         U" USS9  S S S 5        U R                  [        5         U" USS9  S S S 5        U R                  U5         U" US	SS9  S S S 5        U R                  [        5         U" US	SS5        S S S 5        Sn
SnU" XJU5      nU R                  UR                  S5        U R                  XgR                  5        U R                  [        U
5      UR                  5        U" S/S	S5      nU R                  U" S5      S5        U R                  U" S	5      S5        SS /n	U" U	S!S"5      nU R                  U" S#5      S5        U	R                  S#5        U R                  U" S#5      S5        g ! , (       d  f       GM  = f! , (       d  f       GM  = f! , (       d  f       GN4= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f)%Nnormalgausslogisticsigmoidrectangularr  rQ  	parabolicepanechnikovquarticbiweight	triweightcosine 皙ٿffffff?ffffff@@c                 p   ^^ UT-
  U-  mUU4S j[        U5       5       n[        [        X5      5      T-  $ )Nc              3   :   >#    U  H  nTUS -   T-  -   v   M     g7f)r  Nr7   )r  ro   dxlows     r   r  6TestKDE.test_kde.<locals>.integrate.<locals>.<genexpr>F	  s     D|!C2~-|s   )r  sumr   )r  r  highsteps	midpointsr  s    `   @r   	integrate#TestKDE.test_kde.<locals>.integrateC	  s4    *%BDuU|DIs4+,r11r   kernelr  hr  r  r  r	  r   rY  )r   r   r   r   r  g      %@T
cumulativei r  r^   defr~         rA  bogusrs  r|  pdfr   r  r  r
   r   r  rQ  r   )r  )r>   kder  rx  rB  ro  r'  r  rI   r9   ry  r  reprr  r  )rM   r  r  kernelssampler  r  f_hatarear  r  r   cdfs                r   test_kdeTestKDE.test_kde6	  s   nn$44A 3	2 FV,Fc&9 R0&&tS&; -,  FV,$6d;DV, Q8&&s1vtA&>	 -,  /cN 0y)$ *y)Vc" */# 0/$ 0y)%  */#g. 0y)Wd+ *
 Fv&/fmm,d1gu}}-
 QCi(tc*sS) 1vD#|,sS)C5:s+u -, -, 0/))))////))//))sx   $K.4LLL&-L8M
:MM. 	N &N.
K>	
L	
L#&
L58
M

M
M+.
M= 
N
N!c           
      p   [         R                  n[         R                  n[        SS5       Vs/ s H  o3S-  PM	     nnUR	                  5        HM  u  pVU R                  US9   U" S/SUSS9nU H   nU R                  U" U" U5      5      US	S
9  M"     S S S 5        MO     g s  snf ! , (       d  f       Mf  = f)Nr  r   r   r  r~   r	  T)r  r  r  r   rY  )r>   _kernel_invcdfsr  r  itemsrx  rB  )	rM   kernel_invcdfsr  ro   xarrr  invcdfr  r   s	            r   test_kde_kernel_invcdfsTestKDE.test_kde_kernel_invcdfs	  s    #33nn  %T3/0/!#/0,224NFV,3%3v$GA**6#a&>1Q*G  -, 5 1,,s   B!#1B&&
B5	c                   ^^^^ [         R                  n[         R                  n/ SQn/ SQnU HC  nU R                  US9   U" USUS9m[	        S5       Vs/ s H
  nT" 5       PM     nnS S S 5        ME     U R                  U5         U" / SS9  S S S 5        U R                  [        5         U" S	S
/S5        S S S 5        U R                  [        5         U" [        U5      S5        S S S 5        U R                  U5         U" USS9  S S S 5        U R                  U5         U" USS9  S S S 5        U R                  [        5         U" USS9  S S S 5        U R                  U5         U" USSS9  S S S 5        SnSnU" XHU5      mU R                  TR                  S5        U R                  UTR                  5        U R                  [        U5      TR                  5        / SQn	[	        SS5       V
s/ s H  oS-  PM	     nn
SnSnSmUU4S jnUU4S jnU H  nU R                  US9   U" XUSS9m[        [	        U5       Vs/ s H
  nT" 5       PM     sn5      m[         R                  " XUSS9mU H4  n
U R                  [         R"                  " U" U
5      U" U
5      SS95        M6     S S S 5        M     SS /n	U" U	S!S"5      mU R%                  ['        [	        S#5       Vs/ s H
  nT" 5       PM     sn5      S5        U	R)                  S$5        U R+                  ['        U4S% j[	        S#5       5       5      S5        g s  snf ! , (       d  f       GM*  = f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNn= f! , (       d  f       GN^= fs  sn
f s  snf ! , (       d  f       GM  = fs  snf )&Nrq  r}  r  r  r  r   r	  r  r^   r  r  r~   rA  r  r|  rand)r~  r  r  r  r  r  r
  g,@g333333.@g.@g/@g      1@r     i@B g      ?r   c                    > [         R                  " TU 5      n[         R                  " TU T-   5      nX!-
  [        T5      -  $ r\   )bisectbisect_leftri   )r   ro   j
big_sampler  s      r   
p_observed+TestKDE.test_kde_random.<locals>.p_observed	  s<    "":q1A"":q2v6AES_,,r   c                 ,   > T" U T-   5      T" U 5      -
  $ r\   r7   )r   F_hatr  s    r   
p_expected+TestKDE.test_kde_random.<locals>.p_expected	  s    R=58++r   l   iA  rN  Tr  gMb@?abs_tolr
   r   r   rQ  r  r   c              3   2   >#    U  H  nT" 5       v   M     g 7fr\   r7   )r  ro   r  s     r   r  *TestKDE.test_kde_random.<locals>.<genexpr>	  s     ;{!tvv{s   )r>   
kde_randomr  rx  r  ro  r'  r  rI   r9   ry  r  r  r  r  r   r   rS  
assertLessr#   r  r  )rM   r  r  r  r  r  ro   
selectionsr  r  r   r  r   r  r  r  r  r  r  s                  @@@@r   test_kde_randomTestKDE.test_kde_random	  s.   **
$44A 3 FV,!&C?.3Bi8idfi
8 -,  /rS! 0y)u~s+ *y)tF|S) */v& 0/v% 0y)v' */vW5 0
 &V,/fdll+d1gt||, T %dC 01 01B 01	-	, FV,!$6
C#U1X$>XTVX$>?
"t4HAOODLLA
1W]$^_  -,  1v$<0U4[9[TV[9:B?C3;uT{;;R@} 9 -, 0/))))////))// 2& %? -, :s   M	M(M	M,M.N N"N$N6(	O5O-O$OAO$'O7M		
M	
M+.
M= 
N
N!$
N36
O
OO$$
O4	r7   N)
r9   r:   r;   r<   r   r8  r  r  r  r=   r7   r   r   ro  ro  4	  sK    u%M, &M,^
H u%KA &KAr   ro  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestQuantilesi	  c                 V  ^ [         R                  n/ SQn[        R                  " U5        S/ 4SS/4SSS/4S/ S	Q4S
/ SQ4S/ SQ4S/ SQ4S/ SQ4S/ SQ4S/ SQ44
 GHf  u  p4U R	                  XA" X#S95        U R	                  [        U" X#S95      US-
  5        [        [        [        4 HT  mU" [        TU5      US9nU R                  U4S jU 5       5        U R	                  U[        [        TU5      5      5        MV     [        U5      S:  a  U R	                  U" XCS9U5        [        U5      nSUS   -  US   -
  nSUS   -  US   -
  nX'U/-   n	U R	                  U" X#S9U" XSS9X245        S n
[        [        X5      5      nU" [        X5      US9nU R                  [        S [        X5       5       5      5        GMi     [        SS5       HR  n[        R                   " [        S 5      US!9nU" U5      u  pnU R	                  U[         R"                  " U5      5        MT     g )"N)rJ  r  r  ra  i^  r
   r        @o@r         i@      t@r   )      d@r       t@r   )      a@     k@     @r@     u@r  )      ^@r  r  r       u@r   )      Y@r  g     j@r  g     r@r  g     Xv@r   )	g      V@r  g      g@r  r  r  g     `t@r  g     v@r   )      T@r  r  r        l@r  g     q@r  r  r  g     v@r   )g      R@g      Z@r  g      e@r  r        n@g     p@r  r  g     t@r  g     @v@g      w@r   c              3   R   >#    U  H  n[        [        U5      T:H  5      v   M     g 7fr\   allr   r  r   datatypes     r   r  4TestQuantiles.test_specific_cases.<locals>.<genexpr>	  "     I&QDGx$7 8 8&   $'r   r   r   	inclusiver   methodc                     SU -  S-
  $ Nro  g3333J@r7   r   s    r   r   ,TestQuantiles.test_specific_cases.<locals>.f
      Qw))r   c              3   R   #    U  H  u  p[         R                  " X5      v   M     g 7fr\   r   rS  r  rp   r   s      r   r  r  
       M}tqQ 2 2}   %'r  r   k)r>   	quantilesr  r  rI   ri   r   r   r   r   r   rB  r  r  rm   r  choicesr  )rM   r  r  r   r&   r   sdatalohipadded_datar   expactr  q1q2q3r  s                    @r   test_specific_cases!TestQuantiles.test_specific_cases	  s2    ((	(tGL%&,-34ABOP   ! 5 6KA Xy';<S4!56A>"GX6"3x#6!<I&II  c(H.E)FG 7
 8}!  8!98D 4LEU1Xa(BU2Yr*Bb/K$$+;?	*s1'(CCLA.COOCMs3}MMNSV q"A>>%*2D"4JBBR!2!24!89 r   c                 t  ^ [         R                  n/ SQn[        R                  " U5        S/ 4SS/4SSS/4S/ S	Q4S
/ SQ4S/ SQ4S/ SQ4S/ SQ4S/ SQ4S/ SQ44
 H  u  p4U R	                  XA" X#SS95        U R	                  [        U" X#SS95      US-
  5        [        [        [        4 HU  mU" [        TU5      USS9nU R                  U4S jU 5       5        U R	                  U[        [        TU5      5      5        MW     S n[        [        Xd5      5      nU" [        Xb5      USS9nU R                  [        S [        Xx5       5       5      5        M     U R	                  U" SS/SSS9/ SQ5        U R	                  U" [        SS5      SSS9/ SQ5        [        S5       V	s/ s H  n	[        R                  " S 5      PM     nn	U" US!SS9n
UR!                  [#        U5      5        UR!                  [%        U5      5        U" US!S"9nU R	                  XJ5        [        SS#5       HQ  n[        R&                  " [        S5      US$9nU" USS%9u  pnU R	                  U[         R(                  " U5      5        MS     U R	                  U" S/SS"9/ S&Q5        U R	                  U" S/SS'S9/ S&Q5        g s  sn	f )(N)r   r  i  i   r
   r        r@r   r        y@r   )     e@r       @@r   )r  r       v@     @r  )     b@r  r  r       @r   )g     0a@   r  r  g     pw@r  g     P@r   )	g     @`@r  g     g@r  r  r  g     {@r  g     @@r   )g     @_@r   r  r  r  r  r  r  r  r  g     @r   )r  g     a@r  g     f@r  r  g     q@r  r  r  g      ~@r  g      @g     @r  r  c              3   R   >#    U  H  n[        [        U5      T:H  5      v   M     g 7fr\   r  r  s     r   r  >TestQuantiles.test_specific_cases_inclusive.<locals>.<genexpr>3
  r  r  c                     SU -  S-
  $ r  r7   r   s    r   r   6TestQuantiles.test_specific_cases_inclusive.<locals>.f6
  r  r   c              3   R   #    U  H  u  p[         R                  " X5      v   M     g 7fr\   r  r  s      r   r  r  :
  r  r  r   r   )	      $@r  g      >@g      D@rK  g      N@g     Q@r  g     V@r   i  r      r  r  r  r  r  r  r  	exclusive)r>   r  r  r  rI   ri   r   r   r   r   r   rB  r  rm   r  r&  r  r   r#   r  r  )rM   r  r  r   r&   r   r   r  r  ro   r%   r  r  r  r  r  s                  @r   test_specific_cases_inclusive+TestQuantiles.test_specific_cases_inclusive
  s    ((	#tGL%&,-34>?PQ ' ( 5 6KA Xy;'OPS4[!IJAPQER"GX6"3x#6!KPI&II  c(H.E)FG 7
*s1'(CCLAkBCOOCMs3}MMN58 	As8r+FO	Q5C=B{KO	Q
 38*=*Q  (*=42k:CICITR(*q"A>>%*2D"4<JBBR!2!24!89  	B41-/ABB41[ACUV >s   ( J5c                     [         R                  n[        SS5       H<  nS/U-  nU R                  U" U5      / SQ5        U R                  U" USS9/ SQ5        M>     g )Nr   r   r  r  r  r
  )r>   r  r  rI   )rM   r  r   r  s       r   test_equal_inputsTestQuantiles.test_equal_inputsT
  sW    ((	q"A6A:DYt_.@AYtK@.0 r   c                    [         R                  nSn[        U5       Vs/ s H  n[        R                  " S5      PM     nn[        [        U5      5      U:w  a?  UR                  [        R                  " S5      5        [        [        U5      5      U:w  a  M?  UR                  5         S HU  nX%-  nU R                  U" XES9 Vs/ s H  n[        R                  " XG5      PM     sn[        [        XbU5      5      5        MW     S Ho  nX%-  X%-  S-   1nU" XES9 Vs/ s H  n[        R                  " XG5      PM     n	n[        XSS  5       V
Vs1 s H	  u  pXz-
  iM     nn
nU R                  X:*  5        Mq     g s  snf s  snf s  snf s  snn
f )Nr  皙?)r
   r   r   r   r  r4  r   r  r  rZ  rL  r  r  r  )
rl  rj  ;   m      i;  i  is  i  i)&  r
   )r>   r  r  r  rO  ri   setr  sortrI   r  rB  rm   r   )rM   r  totalro   r  r   
group_sizeqgroup_sizespospsizess               r   test_equal_sized_groups%TestQuantiles.test_equal_sized_groups\
  sW   ((	16u>A""3'>#d)n%KK**3/0 #d)n%		 OAJ1:41EF1EAt'1EFU:j9:< O EA :uzA~6K3<T3GH3Ga6==)3GCH'*3AB'89'8tqQU'8E9OOE01	 E ? G I9s    E: E?
 FF	c                     [         R                  n[         R                  nU R                  [        5         U" 5         S S S 5        U R                  [        5         U" / SQSSS9  S S S 5        U R                  [        5         U" / SQS5        S S S 5        U R                  U5         U" / SQSS9  S S S 5        U R                  U5         U" / SQSS9  S S S 5        U R                  [        5         U" / SQSS9  S S S 5        U R                  [
        5         U" / SQSS	9  S S S 5        U R                  U5         U" / SS9  S S S 5        U R                  [        5         U" / S
QSS9  S S S 5        g ! , (       d  f       GN== f! , (       d  f       GN'= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr  rl  r   r  r   r   r  Xr
  )r   Nr2  )r>   r  r  ro  r'  r,   )rM   r  r  s      r   r  TestQuantiles.test_error_casess
  s^   ((	$44y)K *y)lB!, *y)lA& */la( 0/lb) 0y)lc* *z*l3/ +/bA 0y)n* *)! *)))))////))**//))sk   E4FF(
F*
F;2
G
G<G.!
G?4
F
F
F'*
F8;
G	
G
G+.
G<?
Hr7   N)
r9   r:   r;   r<   r  r  r  r   r  r=   r7   r   r   r  r  	  s    4:l9Wv02.+r   r  c                        \ rS rSrS rS rSrg)TestBivariateStatisticsi
  c                    / SQSS/4SS// SQ44 H  u  pU R                  [        R                  5         [        R                  " X5        S S S 5        U R                  [        R                  5         [        R                  " X5        S S S 5        U R                  [        R                  5         [        R
                  " X5        S S S 5        M     g ! , (       d  f       N= f! , (       d  f       Nb= f! , (       d  f       M  = f)Nr*  r
   r   ro  r>   r  
covariancecorrelationlinear_regressionrR  s      r   test_unequal_size_error/TestBivariateStatistics.test_unequal_size_error
  s    AVY
DA "":#=#=>%%a+ ?"":#=#=>&&q, ?"":#=#=>,,Q2 ?>
 ?>>>>>s#   C3C&1C7
C#	&
C4	7
D	c                 2   / / 4/ SS/4SS// 4S/S/4S/SS/4SS/S/44 H  u  pU R                  [        R                  5         [        R                  " X5        S S S 5        U R                  [        R                  5         [        R                  " X5        S S S 5        U R                  [        R                  5         [        R
                  " X5        S S S 5        M     g ! , (       d  f       N= f! , (       d  f       Nb= f! , (       d  f       M  = f)Nr
   r   r(  rR  s      r   test_small_sample_error/TestBivariateStatistics.test_small_sample_error
  s    H!QMWbMTA4LTAq7OWqdO
DA "":#=#=>%%a+ ?"":#=#=>&&q, ?"":#=#=>,,Q2 ?>
 ?>>>>>s$   C%C6D%
C3	6
D	
D	r7   N)r9   r:   r;   r<   r,  r/  r=   r7   r   r   r&  r&  
  s    
33r   r&  c                       \ rS rSrS rS rS r\\R                  " \
S5      \R                  S 5       5       5       rS rSrg	)
TestCorrelationAndCovariancei
  c                    / SQ/ SQS4/ SQ/ SQS4/ SQ/ SQS4/ SQ/ SQS4/ SQ/ SQS	44 HR  u  pnU R                  [        R                  " X5      U5        U R                  [        R                  " X5      U5        MT     g )
Nr*  r
   r   r   r  r   )r   r   r
   )r
   r   r
   r   )r
   r   r   r  rB  r>   r*  r)  )rM   r   r.   r   s       r   test_results)TestCorrelationAndCovariance.test_results
  s|    	1%b)	2&	1%	3'
LA& "":#9#9!#?H"":#8#8#>G
r   c                 L   / SQn/ SQnU R                  [        R                  " X5      S5        U R                  [        R                  " X5      S5        / SQnU R                  [        R                  " X5      S5        U R                  [        R                  " X5      S5        g )Nr*  )r   r2  r  r  r   )r   r  g333333?r
   r   r5  rR  s      r   test_different_scales2TestCorrelationAndCovariance.test_different_scales
  s}    z55a;SAz44Q:A>z55a;Q?z44Q:C@r   c           
         [        S5       H  n[        R                  " 5       n[        R                  " 5       n[        R                  " X#-  5      n[
        R                  " X#5      nU R                  X#XES9   U R                  XE5        S S S 5        M     Su  p#nU R                  [
        R                  " X#5      U5        U R                  [        R                  " X#-  5      U5        [        R                  R                  [        R                  R                  -  nU R                  [
        R                  " Xw5      U5        [        R                  R                  nU R                  [
        R                  " X5      U5        SSSSSS	[        R                   [        R                   * [        R"                  [        R"                  * /
n	[$        R&                  " U	S
S9 GH  u  p# [        R                  " X#-  5      n [
        R                  " X#5      nU R                  X#XES9   [+        U[,        5      (       a#  US:X  a  U R                  US5         S S S 5        M  U R/                  U[0        5        [        R2                  " U5      (       a0  U R5                  [        R2                  " U5      5         S S S 5        M  U R                  XT5        U R                  [7        U5      [7        U5      5        S S S 5        GM      g ! , (       d  f       GM  = f! [(         a    Sn GN&f = f! [(         a    Sn GN"f = f! , (       d  f       GMl  = f)Nr   )r   r.   r&   r%   g?4ܶ?gҚzv?gSdP?r~   r   r	  r  r  rf  r   )repeatr,   )r  r  rO  r   r  r>   	_sqrtprodrx  rB  rI   r^  sys
float_infor   epsilonr#   r^  r"   r  r  r,   r   rA  r  r   r   r   r   )
rM   ro   r   r.   r&   r%   targetsmallestbiggestspecial_valuess
             r   *test_sqrtprod_helper_function_fundamentalsGTestCorrelationAndCovariance.test_sqrtprod_helper_function_fundamentals
  s   sA""$A""$Ayy'H))!/FI&&x8 JI  Rf--a3V<DIIae,f5 >>%%(>(>>--hA8L..$$--g?I tS$T((TXXItxx$((D%%nQ?DA(99QU+&#--a3 Ih,,\1I$$V\: JI %%fe4::h''OODJJv$67 JI   2  ftH~> JI @! JI&  ('(  &%&IIsI   7L%L>L'$/L:AL:>5L:
L	L$#L$'L76L7:
M
	z8accuracy not guaranteed on machines with double roundingc                    Su  pnU R                  [        R                  " X5      U5        U R                  [        R
                  " X-  5      U5        S[        S[        S[        4S jnSnSn[        S5       Hq  n[        R                  " 5       n[        R                  " 5       n[        R                  " X5      n[        R
                  " X-  5      n	U" X5      n
XXU
:H  -  nXiU
:H  -  nMs     U R                  XV5        g )Nr<  r   r.   r  c                     [         R                  " U 5      n [         R                  " U5      n[         R                  " 5        nSUl        [	        X-  R                  5       5      sS S S 5        $ ! , (       d  f       g = f)Nr  )rX  r   rY  r.  r   r  )r   r.   r2  s      r   reference_valueeTestCorrelationAndCovariance.test_sqrtprod_helper_function_improved_accuracy.<locals>.reference_value
  sO    "A"A%%'3ae\\^, (''s   "A..
A<r   r  )rI   r>   r>  r^  r   r  r   r  r  rO  r  )rM   r   r.   rB  rJ  new_agreementsold_agreementsro   r  oldrefs              r   /test_sqrtprod_helper_function_improved_accuracyLTestCorrelationAndCovariance.test_sqrtprod_helper_function_improved_accuracy
  s     Rf--a3V<DIIae,f5	-u 	- 	-5 	- vA""$A""$A&&q,C))AE"C!!'Ccz*Ncz*N  	>:r   c                     / SQn/ SQnU R                  [        R                  " XSS9S5        U R                  [        5         [        R                  " XSS9  S S S 5        g ! , (       d  f       g = f)N)
8   K   -   r  rq  r&  :   P   L   rq  )
B   r  ru  r  A   rS  r  M   rr  ?   rankedr
  gl\e?
bad_method)rB  r>   r*  ro  r,   )rM   readingmathematicss      r   test_correlation_spearman6TestCorrelationAndCovariance.test_correlation_spearman
  s[     ;>z55gS[\1	3 z*""7M +**s   A""
A0r7   N)r9   r:   r;   r<   r6  r9  rF  r   rV   skipIfHAVE_DOUBLE_ROUNDINGr   cpython_onlyrP  ra  r=   r7   r   r   r2  r2  
  sU    	HA)?V __)OQ; Q ;6Nr   r2  c                   ,    \ rS rSrS rS rS rS rSrg)TestLinearRegressioni  c                     / SQn/ SQnU R                  [        R                  5         [        R                  " X5        S S S 5        g ! , (       d  f       g = f)N)r
   r
   r
   r*  )ro  r>   r  r+  rR  s      r   test_constant_input_error.TestLinearRegression.test_constant_input_error  s:    z99:((. ;::s   A
Ac           
         / SQ/ SQSS4/ SQ/ SQSS4/ SQ/ SQSS4/ SQ/ SQSS	4/ SQ/ S
QSS4/ SQ/ SQSS4/ SQ/ SQSS44 H@  u  pp4[         R                  " X5      u  pVU R                  Xc5        U R                  XT5        MB     g )Nr*  )r   r   r   r   r
   )r   r   r   r   )r   r4  r   r   r   r4  r   )r   r7  r  r  )r  g@rE  r   r   )r>   r+  rB  )rM   r   r.   true_intercept
true_slopeslope	intercepts          r   r6  !TestLinearRegression.test_results"  s    	1a(	1a(a0b!,a,b!,C01
,A.  *;;AAE""9=""551
r   c                     / SQn/ SQn[         R                  " XSS9u  p4U R                  US5        U R                  US5        g )N)r   r  r2  ru  )   i  ib  i  TproportionalgN4@r~   )r>   r+  rB  rI   rM   r   r.   rn  ro  s        r   test_proportional&TestLinearRegression.test_proportional0  sA     %774Puj1C(r   c                    [        SS5      [        SS5      /n[        SS5      [        SS5      /n[        R                  " X5      u  p4U R                  [	        U[
        5      5        U R                  [	        U[
        5      5        [        R                  " XSS9u  p4U R                  [	        U[
        5      5        U R                  [	        U[
        5      5        g )Nr   r   r   r   r  Trs  )r   r>   r+  r   r   r   ru  s        r   test_float_output&TestLinearRegression.test_float_output7  s    a^Xa^,a^Xa^,%77=
5%01
9e45%774P
5%01
9e45r   r7   N)	r9   r:   r;   r<   ri  r6  rv  ry  r=   r7   r   r   rg  rg    s    /6)6r   rg  c                       \ rS rSrS rS rS rS rS rS r	\
R                  \
R                  " S5      S	 5       5       rS
 rS rS rS rS rS rS rS rS rS rS rS rSrg)TestNormalDistiA  c                     U R                   R                  SS5      nU R                  [        5         [	        U5        S S S 5        U R                  [        UR                  5      S5        g ! , (       d  f       N4= f)Nr`  r  )_mu_sigma)r  
NormalDistro  r'  varsrI   rC  	__slots__rM   nds     r   
test_slotsTestNormalDist.test_slotsJ  sU    [[##C,y)H *r||,.?@ *)s   A,,
A:c                    U R                   R                  SS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                   R                  5       nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  U R                   R                  5         U R                   R                  SS5        S S S 5         " S SU R                   R                  5      nU" S	S
5      nU R                  [        U5      U5        g ! , (       d  f       NR= f)Nr  r   i!  r   r
   ic                       \ rS rSrSrg)GTestNormalDist.test_instantiation_and_attributes.<locals>.NewNormalDistia  r7   Nr8   r7   r   r   NewNormalDistr  a  r  r   r  r  r   )	r  r  rI   r  r<  r  ro  r  r   )rM   r  r  nnds       r   !test_instantiation_and_attributes0TestNormalDist.test_instantiation_and_attributesP  s   [[##C,#&2&e, [[##%!$1%d+ t{{::;KK""3, <	DKK22 	C#cM2 <;s   E--
E;c                    U R                   R                  n/ SQnU R                  UR                  U5      U" SS5      5        U R                  UR                  [	        U5      5      U" SS5      5        U R                  UR                  [        U5      5      U" SS5      5        U R                  U R                   R                  5         UR                  / 5        S S S 5        U R                  U R                   R                  5         UR                  S/5        S S S 5         " S SU5      nUR                  U5      nU R                  [        U5      U5        g ! , (       d  f       N= f! , (       d  f       NW= f)N)`   r   Z   r5  n   r  r   r   c                       \ rS rSrSrg)BTestNormalDist.test_alternative_constructor.<locals>.NewNormalDistiv  r7   Nr8   r7   r   r   r  r  v  r  r   r  )	r  r  rI   from_samplesrC  r  ro  r  r   )rM   r  r  r  r  s        r   test_alternative_constructor+TestNormalDist.test_alternative_constructorf  s   [[++
%006
2q8IJ00t=z"a?PQ00d<jQ>OPt{{::;##B' <t{{::;##RD) <	J 	((.cM2 <;;;s   
E	E-
E*-
E;c                 |   U R                   R                  nSu  p#U" X#5      nSnUR                  U5      nU R                  [	        U5      U5        U R                  [        [        [        U5      5      [        15        U R                   R                  U5      nU R                  X#S-  -
  Us=:*  =(       a
    X#S-  -   :*  Os  5        SnUR                  USS9nUR                  USS9n	UR                  USS9n
UR                  USS9nU R                  X5        U R                  X5        U R                  X5        g )N)r  rL  rZ  r   r   zhappiness and joyr  ztrouble and despair)r  r  samplesrI   ri   r  r   r   r   r  r   r^  )rM   r  r  sigmar#  r   r  r  data1data2data3data4s               r   test_sample_generation%TestNormalDist.test_sample_generation{  s   [[++
	r!yy|TA&St_-w7{{%1W<<1W<= 		!"5	6		!"7	8		!"5	6		!"7	8&&E)r   c           	         U R                   R                  nU" SS5      nU R                  UR                  S5      UR                  S5      5        U R                  UR                  S5      UR                  S5      5        [	        S5       H9  nU R                  UR                  SU-
  5      UR                  SU-   5      5        M;     Sn[	        SS5       HK  nUR                  XT-   5      UR                  U5      -
  U-  nU R                  UR                  U5      US	S
9  MM     U" 5       n[        / SQ5       HL  u  pXU R                  UR                  US-  5      US	S
9  U R                  UR                  U* S-  5      US	S
9  MN     U" SS5      n	U R                  U R                   R                  5         U	R                  S5        S S S 5        U R                  UR                  [        S5      5      S5        U R                  UR                  [        S5      5      S5        U R                  [        R                  " UR                  [        S5      5      5      5        g ! , (       d  f       N= f)Nr   r   r  r   r4  g      P?r  r  r   rY  )2+ݓ?r  r  ggDio?g?gV}b?gQ|?gFx?ggs?g٬\m?g rh?gK7A`?g|гY?gQ?gQI?gsh|??g=yX5?g|a2U0*?gQ?gN@?g/$?g~k	?g]C?gw/?g~:p?g>W[?gMO?gW[?g鷯?g{Gz?gqh?g|a2U?gK7A?gvq-?gjt?gc]F?g\C?gףp=
?g?ga2U0*?gy):?g(y?gN@a?gfc]F?g"lxz,?gOn?g37?gec]?gn?gT?r  r   -Infr~   r  r  )r  r  r  r  r  rB  r  rl   ro  r  rI   r   r   r   r   )
rM   r  r#  ro   r  r   est_pdfZpxYs
             r   test_pdfTestNormalDist.test_pdf  s   [[++
sBb	155:.c
AEE#J/rA""155q>155q>B  r3AuuQV}quuQx/25G""1558WQ"?   L  
 EA ""155U#3R"B""155!e#4b"C sAt{{::;EE"I < 	uV}-s3uU|,c2

155u#678 <;s   7I##
I1c           	         U R                   R                  nU" SS5      n[        SS5       Vs/ s H  o2R                  U5      PM     nnU R	                  [        [        [        U5      5      [        15        U R	                  U[        U5      5        U R	                  UR                  S5      S5        U" 5       nS HI  u  pgU R                  UR                  U5      USS9  U R                  UR                  U* 5      S	U-
  SS9  MK     U" SS
5      nU R                  U R                   R                  5         UR                  S5        S S S 5        U R	                  UR                  [        S5      5      S5        U R	                  UR                  [        S5      5      S	5        U R                  [        R                  " UR                  [        S5      5      5      5        g s  snf ! , (       d  f       N= f)Nr   r   r
   r  r  ))r~   r  )r   gqZ ?)r-  gE_A?)gQ?gGɫs?)g(\?g؞Y?)gQ?g9#?)gHzG?g&S?)r  gMbX9?)gQ?gT㥛 ?)g?g??)gffffff @g_xZ?)gQ@g#0?)g)\(@gu<f2?)gףp=
@gVe?)gHzG@g9?r   rY  r	  r   r  r  r~   r  r  )r  r  r  r  rI   r  r   r   r   r  rB  ro  r  r   r   r   )	rM   r  r#  r   cdfsr  zcum_probr  s	            r   test_cdfTestNormalDist.test_cdf  s   [[++
sB"'3-0-Qa-0St_-w7vd|,sT* LKA ""1558Xa"@""155!9cHnQ"G sAt{{::;EE"I < 	uV}-s3uU|,c2

155u#6783 1( <;s   G$8G))
G7r  c           	      Z   U R                   R                  nU" SS5      nU R                  UR                  S5      UR                  5        U" 5       nSSSS.nUR                  5        Hg  u  pV[        USS	9 HT  u  pxUS
U* -  -  n	U R                  UR                  U	5      * USS9  SU	-
  n	U R                  UR                  U	5      USS9  MV     Mi     U R                  U" SS5      R                  S5      S5        Sn
[        SU
5       H7  n	X-  n	U R                  UR                  UR                  U	5      5      U	5        M9     [        SS5       Hn  nSU* -  n	U R                  UR                  UR                  U	5      5      U	5        SU	-
  n	U R                  UR                  UR                  U	5      5      U	5        Mp     [        S5       H2  nU R                  UR                  UR                  U5      5      USS9  M4     U R                  U R                   R                  5         UR                  S5        S S S 5        U R                  U R                   R                  5         UR                  S5        S S S 5        U R                  U R                   R                  5         UR                  S5        S S S 5        U R                  U R                   R                  5         UR                  S5        S S S 5        U" SS5      nU R                  UR                  S5      S5        U R                  [        R                  " UR                  [        S5      5      5      5        g ! , (       d  f       GN4= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)Nr   r   r  )
r~   gRQ?gS㥛@gS
@gT㥛 @g^I@g rh@g+N@gC@gV-o@)
g rh?g\(\?g~jt@g+@gMbX9@g(\B@gv@g@gSc@gK7A@)
gPn?gS㥛@gQ@gn@g(\@gPn@g@g r@gˡE@glq@)r  r  r	  r
   )startr  r   rY  r	  ru  r  g>?g  E@i   3   r  r  r   r~   r,  g?r   r  )r  r  rI   inv_cdfr  r  rl   rB  r  r  ro  r  r   r   r   r   )rM   r  iqr  ppr'   rowr  r   r  r   rp   s               r   test_inv_cdfTestNormalDist.test_inv_cdf  s    [[++
 R D)2773
 L777	8 ID#Cq14SD>)&&		!}a&B!G&&qyy|Qq&A	 2 $ 	z"c2::8DiP q!AFA""266"**Q-#8!<  q"AA""266"**Q-#8!<aA""266"**Q-#8!<	  sA""2::bffQi#8!A"F  t{{::;JJsO <t{{::;JJt <t{{::;JJsO <t{{::;JJsO < QC#. 	

199U5\#:;< <;;;;;;;s0   (M''M9&N%N'
M69
N
N
N*c           
          U R                   R                  5       nS/ 4SS/4SSS/4S/ SQ44 H>  u  p#UR                  US	9nU R                  [	        S
 [        X45       5       5      5        M@     g )Nr
   r   r~   r   gǘۿgǘ?r   )g/$r~   g/$?r  c              3   P   #    U  H  u  p[         R                  " XS S9v   M     g7f)r  r  Nr  r  s      r   r  0TestNormalDist.test_quantiles.<locals>.<genexpr>#  s$       ?(= !%Q6 B(=s   $&)r  r  r  r   r  rm   )rM   r  r   r&   r%   s        r   test_quantilesTestNormalDist.test_quantiles  s    KK""$GJ&!"&'	KA [[1[%FOOC  ?(+H(= ? ? @r   c                    U R                   R                  nU" SS5      U" SS5      S4U" SS5      U" SS5      S44 HF  u  p#nU R                  UR                  U5      USS9  U R                  UR                  U5      USS9  MH     SS	S
.S jnU" SS5      U" SS5      4U" SS5      U" SS5      4U" SS5      U" SS5      4U" SS5      U" SS5      4U" SS5      U" SS5      4U" SS5      U" SS5      4U" SS5      U" SS5      4U" SS5      U" SS5      4U" SS5      U" SS5      4U" SS5      U" SS5      4U" SS5      U" SS5      4U" SS5      U" SS5      4U" SS5      U" SS5      4U" SS5      U" SS5      44 HQ  u  p#U R                  UR                  U5      U" X#5      S	S9  U R                  UR                  U5      U" X#5      S	S9  MS     U" 5       nU R	                  [
        5         UR                  5         S S S 5        U R	                  [
        5         UR                  Xf5        S S S 5        U R	                  [
        5         UR                  S 5        S S S 5        U R	                  U R                   R                  5         UR                  U" SS5      5        S S S 5        U R	                  U R                   R                  5         U" SS5      R                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr~   r  r	  gɎ@?gM-[닄?r   rY  i    r   )r  r  c                   [         R                  nU R                  UR                  -   S-  nU[        U R                  UR                  5      -  nXV-
  nSU-  U-  n[        U5       V	s/ s H	  oX-  -   PM     n
n	[        [        U R                  U
5      5      n[        [        UR                  U
5      5      n[        U" U5      U" U5      5      nU" [        [        X5      5      U-  $ s  sn	f )Nr  )
r   r&  r  r#   r<  r  rB  r   r  r   )r#  r  r  r  r&  centerwidthr  r  ro   x_arrxpypr  s                 r   overlap_numeric4TestNormalDist.test_overlap.<locals>.overlap_numeric2  s    99Dffqvvo,FAGGQWW--ENEuu$B+0<8<aQT\<E8c!%%'(Bc!%%'(BR$r(+EC()E11	 9s   )C*r  rZ  ro  r   r   r  r  ir      r   rH  gjt?g~jth?gjt?ga2U0*3?gMbX?r
   r   )r  r  rB  overlapro  r'  r  )rM   r  X1X2published_resultr  r#  s          r   test_overlapTestNormalDist.test_overlap&  s   [[++
 C%z#s';WEC%z#s';WE)$B$ ""2::b>3CA"N""2::b>3CA"N) ,1A 	2 C%z#s';<C%z#s';<C%z#s';<B"Jr3$78C$jb&9:D"%z#r':;D"%z$';<C$jb&9:C$jb&9:C$jb&9:C$jb&9:E5):eU+CDE5):eV+DEE5):eU+CD)FB, ""2::b>?23JST"U""2::b>?23JST"U/4 Ly)IIK *y)IIaO *y)IIdO *t{{::;IIjA&' <t{{::;q!$$Q' <; *)))));;;;s<   0K4LLL'L84
L
L
L$'
L58
Mc                 6   U R                   R                  nU" SS5      nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R	                  [
        5         UR                  5         S S S 5        U R	                  [
        5         UR                  SS5        S S S 5        U R	                  [
        5         UR                  S 5        S S S 5        U R	                  U R                   R                  5         U" SS	5      R                  S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       g = f)
Nr   r      gffffff@rV  gffffffr~   r
   r   )r  r  rI   zscorero  r'  r  )rM   r  r#  s      r   test_zscoreTestNormalDist.test_zscoree  s   [[++
sB#,"t,#,y)HHJ *y)HHQN *y)HHTN *t{{::;q!##C( <; *)))));;s0   EE(6E95F

E%(
E69
F

Fc                 T   U R                   R                  SS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        g )Nr   r      )r  r  rI   r  r  rl  r<  r  )rM   r#  s     r   test_propertiesTestNormalDist.test_propertiest  s|    KK""3+%3'%"%S)r   c                     U R                   R                  nU" SS5      nU" SS5      nU R                  X#-   U" SS5      5        U R                  X#-
  U" SS5      5        g )Nr   r   ru  r      rl  r  )r  r  rI   rM   r  r#  r  s       r   'test_same_type_addition_and_subtraction6TestNormalDist.test_same_type_addition_and_subtraction|  s[    [[++
sBr1
3 34
2r 23r   c                    U R                   R                  nU" SS5      nSnU R                  U7U" SS5      5        U R                  U* U" SS5      5        U R                  X#-   U" SS5      5        U R                  X2-   U" SS5      5        U R                  X#-
  U" SS5      5        U R                  X2-
  U" SS5      5        U R                  X#-  U" SS	5      5        U R                  X2-  U" SS	5      5        U R                  X#-  U" SS
5      5        U R                  [        5         X2-    S S S 5        g ! , (       d  f       g = f)Nr   r   r   r  r  r  irZ  r  r  )r  r  rI   ro  r'  )rM   r  r#  r.   s       r   test_translation_and_scaling+TestNormalDist.test_translation_and_scaling  s"   [[++
sB!ZR01!Zb12
3 34
3 34
2r 23
3 34
4 56
4 56
2s 34y)E *))s   (D66
Ec                    U R                   R                  nU" SS5      nU7nU R                  X#5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        U* nU R                  X#5        U R                  UR                  UR                  * 5        U R                  UR
                  UR
                  5        g )Nr   r   )r  r  assertIsNotrI   r  r<  r  s       r   test_unary_operations$TestNormalDist.test_unary_operations  s    [[++
sBB(!''*B!&&)!''*r   c                    U R                   R                  nU" 5       nU" SS5      nU" 5       nU" SS5      nU" SS5      nU" SS5      nU R                  X#5        U R                  X$5        U R                  X55        U R                  X65        U R                  X75         " S S5      nU" 5       n	U R                  UR	                  U	5      [
        5        U R                  X):H  S5        U R                  X:H  S5         " S SU5      n
U
" S	S
S5      nU" S	S
5      nU R                  X5         " S S5      nU" S	S
5      nU" S	S
5      nU R                  X5        g )Nr   r   r   c                       \ rS rSrS rSrg)'TestNormalDist.test_equality.<locals>.Ai  c                     gr  r7   )rM   r_  s     r   __eq__.TestNormalDist.test_equality.<locals>.A.__eq__  s    r   r7   N)r9   r:   r;   r<   r  r=   r7   r   r   r  r    s    r   r  r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )5TestNormalDist.test_equality.<locals>.SizedNormalDisti  c                 0   > [         TU ]  X5        X0l        g r\   )rb  __init__r   )rM   r  r  r   ra  s       r   r  >TestNormalDist.test_equality.<locals>.SizedNormalDist.__init__  s     +r   r  )r9   r:   r;   r<   r  r=   rh  ri  s   @r   SizedNormalDistr    s     r   r  r   r   9   c                       \ rS rSrS rSrg)3TestNormalDist.test_equality.<locals>.LognormalDisti  c                     Xl         X l        g r\   r  r  )rM   r  r  s      r   r  <TestNormalDist.test_equality.<locals>.LognormalDist.__init__  s    "
r   r  N)r9   r:   r;   r<   r  r=   r7   r   r   LognormalDistr    s    #r   r  )r  r  r^  rI   r  NotImplemented)rM   r  nd1nd2nd3nd4nd5nd6r  r   r  sr  lndr  s                  r   test_equalityTestNormalDist.test_equality  sL   [[++
lAlAAAC%""C%C%	 	 CA72&2&	j 	 CR(b! 
	# 	# C$R B$r   c                     U R                   R                  SS5      n[        R                  " U5      nU R                  X5        [        R                  " U5      nU R                  X5        g )N     B@     @)r  r  copyrI   deepcopy)rM   r  r  r  s       r   	test_copyTestNormalDist.test_copy  sO    [[##D%0iim!mmB!r   c           	      H   U R                   R                  SS5      n[        [        R                  S-   5       HT  nU R                  US9   [        R                  " [        R                  " XS95      nU R                  X5        S S S 5        MV     g ! , (       d  f       Mh  = f)Nr  r  r
   )proto)protocol)	r  r  r  pickleHIGHEST_PROTOCOLrx  loadsdumpsrI   )rM   r  r  pickleds       r   test_pickleTestNormalDist.test_pickle  st    [[##D%0622Q67EE* ,,v||B'GH  - +* 8**s   :B
B!	c                     U R                   R                  nU" SS5      U" SS5      U" SS5      U" SS5      U" SS5      1nU R                  [        U5      S5        g )Nr   r   r  g      .@r   r\  r   )r  r  rI   ri   )rM   NDr  s      r   test_hashabilityTestNormalDist.test_hashability  sS    [[##R["UD/2c2;2r
BsBKPQ#r   c                 r    U R                   R                  SS5      nU R                  [        U5      S5        g )Nr  r  z NormalDist(mu=37.5, sigma=5.625))r  r  rI   r  r  s     r   	test_reprTestNormalDist.test_repr  s-    [[##D%0b#EFr   r7   N)r9   r:   r;   r<   r  r  r  r  r  r  r   skip_if_pgo_taskr8  r  r  r  r  r  r  r  r  r  r  r  r  r  r=   r7   r   r   r|  r|  A  s    A3,3**,%9N9< u%?= & ?=B@=(~)*4 
+*%X".$
Gr   r|  c                   $    \ rS rSr\rS rS rSrg)TestNormalDistPythoni  c                 >    U R                   [        R                  S'   g rG   r  r?  modulesr   s    r   r
  TestNormalDistPython.setUp      $(KKL!r   c                 2    [         [        R                  S'   g rG   r>   r?  r  r   s    r   tearDownTestNormalDistPython.tearDown      $.L!r   r7   N)	r9   r:   r;   r<   rK   r  r
  r"  r=   r7   r   r   r  r    s    F0/r   r  rQ   c                   $    \ rS rSr\rS rS rSrg)TestNormalDistCi  c                 >    U R                   [        R                  S'   g rG   r  r   s    r   r
  TestNormalDistC.setUp  r  r   c                 2    [         [        R                  S'   g rG   r!  r   s    r   r"  TestNormalDistC.tearDown  r$  r   r7   N)	r9   r:   r;   r<   rS   r  r
  r"  r=   r7   r   r   r&  r&    s    F0/r   r&  c                     UR                  [        R                  " 5       5        [        R                  S:X  a)  UR                  [        R                  " [
        5      5        U$ )Nshort)addTestsdoctestDocTestSuiter?  float_repr_styler>   )loadertestsignores      r   
load_testsr4    sA    	NN7'')*
w&w++J78Lr   __main__)r  gHz>)Wr   r  r]   collections.abcr  rX  r.  r  r   r
  r  r?  rV   testr   test.supportr   r   r   r  r   r>   r.   rd  r   r   r*   r3   r5   import_fresh_modulerK   rS   r  rC   rY   r|   r   r   r   r   rX  rk  rv  r  r  r  r  r  r  rP  r  r  r  r  r  r6  r?  rg  r}  r  r  r  r  r$  r/  rj  r  r  r  r  r  r  r  r:  rG  ro  r  r&  r2  rg  r|  r  rW   r&  r4  r9   mainr7   r   r   <module>r;     sx  
           
   9    1A) 3> 2)t$	 $	V 11,;H/K008EH
U(## 
UXFh'' XF~)x   );Jh// ;J|=B8,, =B@,X.. ,>tEX.. tEnKh// K8	GH-- 	G"%(++ %ZC(## C,
(++ 
=8X&& =8@1)** 1)h68$$ 6&a9"" a9H;-(## ;-|&(## &<`/ `/F'. '.T	#)+> 	#7Fo 7Ft
?_ 
?;K ;K@9( 9(]>.A ]>@v(6I v(r65, 65r
*= 
4J 3 464Z!4 46u@
 u@p:,.A :,z,H%% ,A1!! A1L?:. ?:D)-&9L )-X,-%8K ,-\7#_ 7"_kh'' _kD9"O 9(nM)) nMbjAh jAZf+H%% f+R3h// 3>oN8#4#4 oNb%68,, %6N_G _GJ/8,,n / 
\#9:/h'' / ;/ zMMO r   