
    M/Ph"                         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dS )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                 P   t          | d          5 }|                                }d d d            n# 1 swxY w Y   t          d |D              \  }}}}t          t          |          t          t          |          t          t          |          t          t          |          fS )Nzutf-8)encodingc                 8    g | ]}|                     d           S ),)split).0Ls     o/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/stats/libqsturng/tests/test_qsturng.py
<listcomp>zread_ch.<locals>.<listcomp>   s"    555!555    )open	readlinesr   r   float)fnameflinespsrsvsqss          r   read_chr      s    	eg	&	&	& !              55u5556KBr"Rr??DOODOOT%__LLs   377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dS )	TestQsturngc                 F    t          dt          ddd          d           d S )N/
.@?      r   r	   selfs    r   test_scalarzTestQsturng.test_scalar   s%    ,gb1ooqAAAAAr   c           	      z    t          t          j        g d          t          g dg dg d          d           d S )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!   sf    !"( ,8 ,8 ,8 #9 #9 #**>*>*>*3))*3))#5 #5 #$	% 	% 	% 	% 	%r   c                 6   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 )
N皙r%   r&   g-?g{Gz?   r$   r      )r   
ValueErrorr	   OverflowErrorr(   s    r   test_invalid_parametersz#TestQsturng.test_invalid_parameters+   s{    j'3q333j'51555j'3q333j'2a222z=17BqCCCCCr   c           	      b    g d}|D ]'\  }}}}t          |t          |||          d           (d S )N))      ?      >@      (@ga5@)g333333?      .@      2@gUb@)皙?       @      &@g%3?)gףp=
?      @      1@g!@)333333?r>   r?   g@)r;   rD   r?   gvS@)r;         N@g      0@g#<U@)Gz?g      Y@       @g.j1I@)r$   rH   g      D@g[@)皙?r=         4@gL@)皙?rA         ,@g}@	
@)r;   r<   g      8@g{@)r;   rH   r?   g3?)rG         @g      ^@gV*ީb@)rI   g      3@r>   gkW@)rI   r>   rA   g` X77@)g      ?r=   rB   g)
@)rE   r<   rH   g2v$@)rK   rJ   r?   g~?@)r@   rF   rF   gJf@r%   r'   r)   casesprvqs         r   test_handful_to_tblzTestQsturng.test_handful_to_tbl7   sU    3 3 3*  	6 	6GAa!71Qq>>15555	6 	6r   c                 H   ddl m}m} g g g g f\  }}}}|D ]}||         D ]}|                                D ]n}	|                    |           |                    |           |                    |	           |                    ||         |         ||	                             ot          j        |          }t          j        |t          |||          z
            |z  }
t          t          j        g           t          j
        |
dk              d                    d S )Nr   )TRQ?)&statsmodels.stats.libqsturng.make_tblsrV   rW   keysappendr0   r1   absr	   r   where)r)   rV   rW   r   r   r   r   rP   rR   rQ   errorss              r   test_all_to_tblzTestQsturng.test_all_to_tblS   s)   >>>>>>>>RRBB 	- 	-AqT - - - -AIIaLLLIIaLLLIIaLLLIIad1gadm,,,,	-- Xb\\72b,,,--b0RXb\\28FSL#9#9!#<=====r   c           	      b    g d}|D ]'\  }}}}t          |t          |||          d           (d S )N))gD:?g      $@g]C}@g~@)g{[c?g     E@ggwj@ga@)g:kB?rB   gZӼ(x@g۴
@)gWBwI?g     I@g}?5^R@g\oY>@)g俛?     @S@gǘ}@ge@)gJ{?ra   g48@g9%@)g5?rM   gL
F%kl@gq@)g?rF   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?rL   g:Mmo@g25Q@)g8?g     F@gjta@g8@)gm4@?rC   gyX5/r@g&ؗ
@)gRE*k?g     T@gk	@gV%Bc@)gF(e?r?   gDt@g9@P@)gqh?rH   g#~j@grDUfL@)giDzH?g     W@g.s,&V@g|!@r%   r'   rN   s         r   test_handful_to_chzTestQsturng.test_handful_to_chc   sX    B B B*  	6 	6GAa!71Qq>>15555	6 	6r   c                    dd l }|j                            |j                            t                              }t          |j                            |j                            |          d                   d         dz             \  }}}}t          j        |          }t          j	        |t          |||          z
            |z  }t          t          j        g           t          j        |dk              d                    d S )Nr   z/tests/results/bootleg.csvrX   )ospathdirnameabspath__file__r   r   r0   r1   r\   r	   r   r]   )r)   rd   curdirr   r   r   r   r^   s           r   test_10000_to_chzTestQsturng.test_10000_to_ch|   s    			!:!:;; !rw}}V/D/DQ/G!H!H!K#?"@ A ABBXb\\72b,,,--b0RXb\\28FSL#9#9!#<=====r   N)__name__
__module____qualname__r*   r2   r9   rT   pytestmarkskipr_   rb   slowrj    r   r   r!   r!      s        B B B% % %
D 
D 
D6 6 68 [> > >6 6 62 [	> 	> 	> 	> 	>r   r!   c                   V    e Zd Zd Zd Zd Zd Zd Zej	        j
        d             ZdS )TestPsturngc                 F    t          dt          ddd          d           dS )zscalar input -> scalar outputr@   r#   r%   r&   Nr   r
   r(   s    r   r*   zTestPsturng.test_scalar   s'    B(81 = =qAAAAAr   c           	      z    t          t          j        g d          t          g dg dg d          d           dS )zvector input -> vector output)g,W?g_o(İ?gQx?r,   r-   r/   r%   N)r   r0   r1   r
   r(   s    r   r2   zTestPsturng.test_vector   sn    !"( ,9 ,9 ,9 #: #: #* +7 +7 +7 +4))*3))	#5 #5
 #$	% 	% 	% 	% 	%r   c                 F    t          dt          ddd          d           d S )Nr@   g?r%   r5   rv   r(   s    r   test_v_equal_onezTestPsturng.test_v_equal_one   s$    B1Q33333r   c                     t          t          t          ddd           t          t          t          ft          ddd           d S )Nr4   r%   r&   r$   r5   r6   )r   r7   r
   r8   r(   s    r   r9   z#TestPsturng.test_invalid_parameters   s9    j'3q333z=17BqCCCCCr   c           	      h    g d}|D ]*\  }}}}t          d|z
  t          |||          d           +d S )N))gjb>?C   g`Ψ@ge5@)g.?   gi@\@gǭIؒ
@)gr:1a?r6   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?r}   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%   rv   rN   s         r   test_handful_to_known_valuesz(TestPsturng.test_handful_to_known_values   s\    T T T*  	9 	9GAa!1ga!nna8888	9 	9r   c                    d}t           j                            d          }|                    |          dz  dz   }|                    dd|          }|                    |          dz  dz   }t          |||          }t          |||          }d	|z
  }	||	z
  }
t          t          j        g           t          j	        |
d
k              d                    d S )Nd   i90  gS㥛?r@   r6   e   g     0@rH   r   gh㈵>r   )
r0   randomRandomStaterandom_samplerandintr	   r
   r   r1   r]   )r)   reset_randomstatenrandom_stater   r   r   r   	estimatesactualsr^   s              r   test_100_random_valuesz"TestPsturng.test_100_random_values   s    y,,U33''**I6;!!!S!,,''**4/"4RR  BB''	r'W$RXb\\28FTM#:#:1#=>>>>>r   N)rk   rl   rm   r*   r2   ry   r9   r   rn   ro   rq   r   rr   r   r   rt   rt      s        B B B
% 
% 
%4 4 4D D D9 9 92 [? ? ? ? ?r   rt   )__doc__statsmodels.compat.pythonr   r   numpy.testingr   r   r   r   numpyr0   rn   statsmodels.stats.libqsturngr	   r
   r   r!   rt   rr   r   r   <module>r      s  B B 1 0 0 0 0 0 0 0           
      9 9 9 9 9 9 9 9M M Mj> j> j> j> j> j> j> j>X?? ?? ?? ?? ?? ?? ?? ?? ?? ??r   