
    'YHh"                     ~    d Z ddl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 G d d      Z G d	 d
      Zy)zThe '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 functions    )lziplmap)assert_equalassert_almost_equalassert_array_almost_equalassert_raisesN)qsturngpsturngc                 @   t        | d      5 }|j                         }d d d        t        D cg c]  }|j                  d       c} \  }}}}t	        t
        |      t	        t
        |      t	        t
        |      t	        t
        |      fS # 1 sw Y   qxY wc c}w )Nzutf-8)encoding,)open	readlinesr   splitr   float)fnameflinesLpsrsvsqss           h/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.pyread_chr      s|    	eg	& !u5!56KBr"Rr?DODOT%_LL 5s   BBBc                       e Zd Zd Zd Zd Zd Zej                  j                  d        Z
d Zej                  j                  d        Zy)	TestQsturngc                 4    t        dt        ddd      d       y )N/
.@?      r   r	   selfs    r   test_scalarzTestQsturng.test_scalar   s    ,gb1oqA    c           	      j    t        t        j                  g d      t        g dg dg d      d       y )Ngx>[@gݵB`E@gD\X@)g0*?gCl?g58EGr?   r+   r+   r"   r"   r"   r!   )r   nparrayr	   r$   s    r   test_vectorzTestQsturng.test_vector!   s2    !"(( ,8 #9 #**>*3*3#5 #$	%r'   c                     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	       y )
N皙r!   r"   g-?g{Gz?   r    r      )r   
ValueErrorr	   OverflowErrorr$   s    r   test_invalid_parametersz#TestQsturng.test_invalid_parameters+   sW    j'3q3j'515j'3q3j'2a2z=17BqCr'   c           	      T    g d}|D ]  \  }}}}t        |t        |||      d       ! y )N))      ?      >@      (@ga5@)g333333?      .@      2@gUb@)皙?       @      &@g%3?)gףp=
?      @      1@g!@)333333?r;   r<   g@)r8   rA   r<   gvS@)r8         N@g      0@g#<U@)Gz?g      Y@       @g.j1I@)r    rE   g      D@g[@)皙?r:         4@gL@)皙?r>         ,@g}@	
@)r8   r9   g      8@g{@)r8   rE   r<   g3?)rD         @g      ^@gV*ީb@)rF   g      3@r;   gkW@)rF   r;   r>   g` X77@)g      ?r:   r?   g)
@)rB   r9   rE   g2v$@)rH   rG   r<   g~?@)r=   rC   rC   gJf@r!   r#   r%   casesprvqs         r   test_handful_to_tblzTestQsturng.test_handful_to_tbl7   s6    3*  	6GAa!71Qq>15	6r'   c                    ddl m}m} g g g g f\  }}}}|D ]q  }||   D ]g  }|j                         D ]R  }	|j	                  |       |j	                  |       |j	                  |	       |j	                  ||   |   ||	             T i s t        j                  |      }t        j                  |t        |||      z
        |z  }
t        t        j                  g       t        j                  |
dkD        d          y )Nr   )TRQ?)&statsmodels.stats.libqsturng.make_tblsrS   rT   keysappendr-   r.   absr	   r   where)r%   rS   rT   r   r   r   r   rM   rO   rN   errorss              r   test_all_to_tblzTestQsturng.test_all_to_tblS   s    >RRBB 	-AqT - -AIIaLIIaLIIaLIIad1gadm,	--	- XXb\72b,,-b0RXXb\288FSL#9!#<=r'   c           	      T    g d}|D ]  \  }}}}t        |t        |||      d       ! y )N))gD:?g      $@g]C}@g~@)g{[c?g     E@ggwj@ga@)g:kB?r?   gZӼ(x@g۴
@)gWBwI?g     I@g}?5^R@g\oY>@)g俛?     @S@gǘ}@ge@)gJ{?r^   g48@g9%@)g5?rJ   gL
F%kl@gq@)g?rC   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?rI   g:Mmo@g25Q@)g8?g     F@gjta@g8@)gm4@?r@   gyX5/r@g&ؗ
@)gRE*k?g     T@gk	@gV%Bc@)gF(e?r<   gDt@g9@P@)gqh?rE   g#~j@grDUfL@)giDzH?g     W@g.s,&V@g|!@r!   r#   rK   s         r   test_handful_to_chzTestQsturng.test_handful_to_chc   s7    B*  	6GAa!71Qq>15	6r'   c                    dd l }|j                  j                  |j                  j                  t                    }t        |j                  j                  |j                  j                  |      d         d   dz         \  }}}}t        j                  |      }t        j                  |t        |||      z
        |z  }t        t        j                  g       t        j                  |dkD        d          y )Nr   z/tests/results/bootleg.csvrU   )ospathdirnameabspath__file__r   r   r-   r.   rY   r	   r   rZ   )r%   ra   curdirr   r   r   r   r[   s           r   test_10000_to_chzTestQsturng.test_10000_to_ch|   s    !:; !rww}}V/DQ/G!H!K#?"@ ABBXXb\72b,,-b0RXXb\288FSL#9!#<=r'   N)__name__
__module____qualname__r&   r/   r6   rQ   pytestmarkskipr\   r_   slowrg    r'   r   r   r      sY    B%
D68 [[> >62 [[	> 	>r'   r   c                   b    e Zd Zd Zd Zd Zd Zd Zej                  j                  d        Zy)TestPsturngc                 4    t        dt        ddd      d       y)zscalar input -> scalar outputr=   r   r!   r"   Nr   r
   r$   s    r   r&   zTestPsturng.test_scalar   s    B(81 =qAr'   c           	      j    t        t        j                  g d      t        g dg dg d      d       y)zvector input -> vector output)g,W?g_o(İ?gQx?r)   r*   r,   r!   N)r   r-   r.   r
   r$   s    r   r/   zTestPsturng.test_vector   s6    !"(( ,9 #: #* +7 +4*3	#5
 #$	%r'   c                 4    t        dt        ddd      d       y )Nr=   g?r!   r2   rs   r$   s    r   test_v_equal_onezTestPsturng.test_v_equal_one   s    B1Q3r'   c                 l    t        t        t        ddd       t        t        t        ft        ddd       y )Nr1   r!   r"   r    r2   r3   )r   r4   r
   r5   r$   s    r   r6   z#TestPsturng.test_invalid_parameters   s'    j'3q3z=17BqCr'   c           	      Z    g d}|D ]"  \  }}}}t        d|z
  t        |||      d       $ y )N))gjb>?C   g`Ψ@ge5@)g.?   gi@\@gǭIؒ
@)gr:1a?r3   gDNm~@gpYs$@)g	zP?B   g
DMjP@gP{3LB@)g۹+?J   gc@glaHh$@)g|-T>?1   g̜@gts @)g)]~9?   g"B@g7\@)gFpa?2   g<𸺔p@g*(e@)gkᾛk?;   gίQ@g`@)g6?=   g0=x@g.+э{@)g~cš?M   gM̜Z@ga
H@)gL\?S   gL,dT@gDO1@)gS?rz   g"&-@gP>@)gʠѭ_?   g4-p@gTT.@)gOs6?Q   gik7 @g9@p@)gB\?r~   gkkJ˴1@gɠ	@)ggG?H   gHh{@gae@)gdbX?/   g@% @g>@)gA+|T?$   g@gK@)gcπe?r   g#z@gcK5)@      ?r!   rs   rK   s         r   test_handful_to_known_valuesz(TestPsturng.test_handful_to_known_values   s;    T*  	9GAa!1ga!na8	9r'   c                    d}t         j                  j                  d      }|j                  |      dz  dz   }|j	                  dd|      }|j                  |      dz  dz   }t        |||      }t        |||      }d	|z
  }	||	z
  }
t        t        j                  g       t        j                  |
d
kD        d          y )Nd   i90  gS㥛?r=   r3   e   g     0@rE   r   gh㈵>r   )
r-   randomRandomStaterandom_samplerandintr	   r
   r   r.   rZ   )r%   reset_randomstatenrandom_stater   r   r   r   	estimatesactualsr[   s              r   test_100_random_valuesz"TestPsturng.test_100_random_values   s    yy,,U3''*I6;!!!S!,''*4/"4RR BB'	r'W$RXXb\288FTM#:1#=>r'   N)rh   ri   rj   r&   r/   rv   r6   r   rk   rl   rn   r   ro   r'   r   rq   rq      s;    B
%4D92 [[? ?r'   rq   )__doc__statsmodels.compat.pythonr   r   numpy.testingr   r   r   r   numpyr-   rk   statsmodels.stats.libqsturngr	   r
   r   r   rq   ro   r'   r   <module>r      sB   B 1 
   9Mj> j>X?? ??r'   