
p7]c           @   s   d  Z  d d l m Z m Z m Z d d l m Z m Z m Z m	 Z	 d d l
 Z d d l Z d d l m Z m Z d   Z d e f d     YZ d	 e f d
     YZ d S(   s   The 'handful' tests are intended to aid refactoring. The tests with the
@pytest.mark..slow are empirical (test within error limits) and intended to more
extensively ensure the stability and accuracy of the functionsi(   t   iterkeyst   lzipt   lmap(   t   assert_equalt   assert_almost_equalt   assert_array_almost_equalt   assert_raisesN(   t   qsturngt   psturngc         C   s   t  |    } | j   } Wd  QXt g  | D] } | j d  ^ q+   \ } } } } t t |  t t |  t t |  t t |  f S(   Nt   ,(   t   opent	   readlinesR   t   splitR   t   float(   t   fnamet   ft   linest   Lt   pst   rst   vst   qs(    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyt   read_ch   s    4t   TestQsturngc           B   s_   e  Z d    Z d   Z d   Z d   Z e j j d    Z	 d   Z
 e j j d    Z RS(   c         C   s    t  d t d d d  d  d  S(   Ng/
.@g?i   i   (   R   R   (   t   self(    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyt   test_scalar   s    c         C   sM   t  t j d d d g  t d d d g d d d g d d d g  d	  d  S(
   Ngx>[@gݵB`E@gD\X@g0*?gCl?g58EGr?i   i   i   (   R   t   npt   arrayR   (   R   (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyt   test_vector!   s    	c         C   sx   t  t t d d d  t  t t d d d  t  t t d d d  t  t t d d d  t  t t f t d d d	  d  S(
   Ngi   i   g-?g{Gz?i   g?i    i   (   R   t
   ValueErrorR   t   OverflowError(   R   (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyt   test_invalid_parameters+   s
    c         C   s   d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF g } x6 | D]. \ } } } } t  | t | | |  d2  qI Wd  S(G   Ng      ?g      >@g      (@ga5@g333333?g      .@g      2@gUb@g?g       @g      &@g%3?gףp=
?g      @g      1@g!@g333333?g@gvS@g      N@g      0@g#<U@gGz?g      Y@g       @g.j1I@g?g      D@g[@g?g      4@gL@g?g      ,@g}@	
@g      8@g{@g3?g      @g      ^@gV*ީb@g      3@gkW@g` X77@g      ?g)
@g2v$@g~?@gJf@i   (   g      ?g      >@g      (@ga5@(   g333333?g      .@g      2@gUb@(   g?g       @g      &@g%3?(   gףp=
?g      @g      1@g!@(   g333333?g      .@g      2@g@(   g      ?g      1@g      2@gvS@(   g      ?g      N@g      0@g#<U@(   gGz?g      Y@g       @g.j1I@(   g?g       @g      D@g[@(   g?g      (@g      4@gL@(   g?g       @g      ,@g}@	
@(   g      ?g      >@g      8@g{@(   g      ?g       @g      2@g3?(   gGz?g      @g      ^@gV*ީb@(   g?g      3@g      .@gkW@(   g?g      .@g       @g` X77@(   g      ?g      (@g      &@g)
@(   g333333?g      >@g       @g2v$@(   g?g      4@g      2@g~?@(   g?g      N@g      N@gJf@(   R   R   (   R   t   casest   pt   rt   vt   q(    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyt   test_handful_to_tbl7   s,    	c         C   s  d d l  m } m } g  g  g  g  f \ } } } } x~ | D]v } xm | | D]a } xX t |  D]J }	 | j |  | j |  | j |	  | j | | | | |	  q_ WqL Wq; Wt j |  } t j | t | | |   | }
 t	 t j g   t j
 |
 d k  d  d  S(   Ni(   t   Tt   RgQ?i    (   t&   statsmodels.stats.libqsturng.make_tblsR&   R'   R    t   appendR   R   t   absR   R   t   where(   R   R&   R'   R   R   R   R   R!   R#   R"   t   errors(    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyt   test_all_to_tblR   s    )#c         C   s   dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd g } x6 | D]. \ } } } } t  | t | | |  dP  qI Wd  S(e   NgD:?g      $@g]C}@g~@g{[c?g     E@ggwj@ga@g:kB?g      &@gZӼ(x@g۴
@gWBwI?g     I@g}?5^R@g\oY>@g俛?g     @S@gǘ}@ge@gJ{?g48@g9%@g5?g      @gL
F%kl@gq@g?g      N@gTR'Ut@gy;{.@gH?g     N@g}?5^:@gvzH@g@j?g      R@g_vOs@gvB;&4@gd,	?g      L@g~k.@g(s@g(7H?g     D@gp`@glj@gNl w?g      F@gEGr@g{'g@gt?g      ,@g:Mmo@g25Q@g8?g     F@gjta@g8@gm4@?g      @gyX5/r@g&ؗ
@gRE*k?g     T@gk	@gV%Bc@gF(e?g      2@gDt@g9@P@gqh?g       @g#~j@grDUfL@giDzH?g     W@g.s,&V@g|!@i   (   gD:?g      $@g]C}@g~@(   g{[c?g     E@ggwj@ga@(   g:kB?g      &@gZӼ(x@g۴
@(   gWBwI?g     I@g}?5^R@g\oY>@(   g俛?g     @S@gǘ}@ge@(   gJ{?g     @S@g48@g9%@(   g5?g      @gL
F%kl@gq@(   g?g      N@gTR'Ut@gy;{.@(   gH?g     N@g}?5^:@gvzH@(   g@j?g      R@g_vOs@gvB;&4@(   gd,	?g      L@g~k.@g(s@(   g(7H?g     D@gp`@glj@(   gNl w?g      F@gEGr@g{'g@(   gt?g      ,@g:Mmo@g25Q@(   g8?g     F@gjta@g8@(   gm4@?g      @gyX5/r@g&ؗ
@(   gRE*k?g     T@gk	@gV%Bc@(   gF(e?g      2@gDt@g9@P@(   gqh?g       @g#~j@grDUfL@(   giDzH?g     W@g.s,&V@g|!@(   R   R   (   R   R    R!   R"   R#   R$   (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyt   test_handful_to_chb   s,    	c         C   s   d d  l  } | j j | j j t   } t | j j | j j |  d  d d  \ } } } } t j |  } t j	 | t
 | | |   | } t t j g   t j | d k  d  d  S(   Nii    s   /tests/results/bootleg.csvgQ?(   t   ost   patht   dirnamet   abspatht   __file__R   R   R   R   R*   R   R   R+   (   R   R/   t   curdirR   R   R   R   R,   (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyt   test_10000_to_ch{   s    &#(   t   __name__t
   __module__R   R   R   R%   t   pytestt   markt   skipR-   R.   t   slowR5   (    (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyR      s   		
			t   TestPsturngc           B   sJ   e  Z d    Z d   Z d   Z d   Z d   Z e j j	 d    Z
 RS(   c         C   s    t  d t d d d  d  d S(   s   scalar input -> scalar outputg?g/
.@i   i   N(   R   R   (   R   (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyR      s    c         C   sM   t  t j d d d g  t d d d g d d d g d d d g  d	  d
 S(   s   vector input -> vector outputg,W?g_o(İ?gQx?gx>[@gݵB`E@gD\X@i   i   i   N(   R   R   R   R   (   R   (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyR      s    	c         C   s    t  d t d d d  d  d  S(   Ng?g?i   i   (   R   R   (   R   (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyt   test_v_equal_one   s    c         C   s6   t  t t d d d  t  t t f t d d d  d  S(   Ngi   i   g?i   i   (   R   R   R   R   (   R   (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyR      s    c         C   s   dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc g } x: | D]2 \ } } } } t  dN | t | | |  dO  qI Wd  S(d   Ngjb>?iC   g`Ψ@ge5@g.?i   gi@\@gǭIؒ
@gr:1a?i   gDNm~@gpYs$@g	zP?iB   g
DMjP@gP{3LB@g۹+?iJ   gc@glaHh$@g|-T>?i1   g̜@gts @g)]~9?i   g"B@g7\@gFpa?i2   g<𸺔p@g*(e@gkᾛk?i;   gίQ@g`@g6?i=   g0=x@g.+э{@g~cš?iM   gM̜Z@ga
H@gL\?iS   gL,dT@gDO1@gS?g"&-@gP>@gʠѭ_?i   g4-p@gTT.@gOs6?iQ   gik7 @g9@p@gB\?gkkJ˴1@gɠ	@ggG?iH   gHh{@gae@gdbX?i/   g@% @g>@gA+|T?i$   g@gK@gcπe?g#z@gcK5)@g      ?i   (   gjb>?iC   g`Ψ@ge5@(   g.?i   gi@\@gǭIؒ
@(   gr:1a?i   gDNm~@gpYs$@(   g	zP?iB   g
DMjP@gP{3LB@(   g۹+?iJ   gc@glaHh$@(   g|-T>?i1   g̜@gts @(   g)]~9?i   g"B@g7\@(   gFpa?i2   g<𸺔p@g*(e@(   gkᾛk?i;   gίQ@g`@(   g6?i=   g0=x@g.+э{@(   g~cš?iM   gM̜Z@ga
H@(   gL\?iS   gL,dT@gDO1@(   gS?i   g"&-@gP>@(   gʠѭ_?i   g4-p@gTT.@(   gOs6?iQ   gik7 @g9@p@(   gB\?i   gkkJ˴1@gɠ	@(   ggG?iH   gHh{@gae@(   gdbX?i/   g@% @g>@(   gA+|T?i$   g@gK@(   gcπe?iM   g#z@gcK5)@(   R   R   (   R   R    R!   R"   R#   R$   (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyt   test_handful_to_known_values   s,    	c         C   s   d } t  j j d  } | j |  d d } | j d d |  } | j |  d d } t | | |  } t | | |  } d	 | }	 | |	 }
 t t  j g   t  j	 |
 d
 k  d  d  S(   Nid   i90  g+?g?i   ie   g     0@g       @g      ?gh㈵>i    gS㥛?(
   R   t   randomt   RandomStatet   random_samplet   randintR   R   R   R   R+   (   R   t   reset_randomstatet   nt   random_stateR   R   R   R   t	   estimatest   actualsR,   (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyt   test_100_random_values   s    

(   R6   R7   R   R   R=   R   R>   R8   R9   R;   RH   (    (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyR<      s   					(   t   __doc__t   statsmodels.compat.pythonR    R   R   t   numpy.testingR   R   R   R   t   numpyR   R8   t   statsmodels.stats.libqsturngR   R   R   t   objectR   R<   (    (    (    sN   lib/python2.7/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyt   <module>   s   "	k