
    !g                        d Z ddlZddlZddlmZ ddlmZmZ ddl	m
Z
mZmZmZ  ed       ej                  j                   _        d Zeej&                  j(                  _        d Zeej.                  j(                  _        d	Z G d
 d      Zedk(  r e       Zej9                          ej;                          dZer e ej@                  g d              eejB                  jA                  g dd              eejD                          eejF                          e ej                  d              e ej.                  d      j                  d              eejH                  j                  d             yyy)a  


Created on Sun May 09 22:35:21 2010
Author: josef-pktd
License: BSD

todo:
change moment calculation, (currently uses default _ppf method - I think)
# >>> lognormalg.moment(4)
Warning: The algorithm does not converge.  Roundoff error is detected
  in the extrapolation table.  It is assumed that the requested tolerance
  cannot be achieved, and that the returned result (if full_output = 1) is
  the best which can be obtained.
array(2981.0032380193438)
    N)assert_almost_equal)statsspecial)squarenormalg
absnormalgnegsquarenormalgsquaretgc                 .    | j                   j                  S )N)distname)selfs    p/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/sandbox/distributions/tests/test_transf.py<lambda>r      s    499>>     c                 R   t         j                  t         j                  t         j                  t         j                  t         j
                  f\  }}}}} ||dz        } ||dz        }	 ||dkD  | ||dz
        z  |      }
d|z  |z  ||	z   dz
  z  |	|dz
  dz  z  |dz
  z  z  } ||dkD  ||      }d|d|	z  z   dz
  z  |dz
  z  t        j                  d|dz
  z  |	||	z   dz
  z  z        z  } ||dkD  ||      }dd|z  d	z
  z  d
||z  |dz
  z  z   z  } ||d
kD  ||      }|
|||fS )N      ?             @g      @g      @            )nparraywhereinfsqrtnan)r   dfndfdarrr   r   r   r   v2v1mumu2g1g2s                 r   f_statsr)       sM   !#288RVVRWWbff!LCT3	SWB	SWB	rAvrCQK'	-B
B$r'2b57
RA	\RT2
3C
QS
!C	
BqtGBJB	2b5	2r"uRx=(A B	BB	rAvr3	B	
BrE"HqB2	'B	rAvr3	BsB?r   c                    t         j                  t         j                  t         j                  t         j                  t         j
                  f\  }}}}}t         j                  }t         j                  }t        j                  | |d      z        }	 |d|z         |d|z  |z        z  ||	z  z   }
||z  dz   |
|
z  z
  }||z  } |d|z         |d|z        z  d| ||      z  d|z  dz   z  z
  z  }|d|z  |	z  d ||       z  d	 |d|z        z  |z   || dz        z  |	z  z   ||z  |	|	z  dz
  z  z   z  z  }|||d
z  z  z  }||z  d|z  z   d	z   d|dz   z  |
z  |
z  z   d	|
dz  z  z
  }|d || dz        z  |
z   |d|z        |dz   z  ||d	z   z   ||dz        z  |	z  z   z  z  }||dz  z  }|dz  }|
|||fS )Nr   r   g         g      r   r   r   r   g      ?g      @)
r   r   r   r   r   r   exppir   erf)r   cr"   r   r   r   r   r,   r-   facr%   r&   c2r'   r(   s                  r   foldnorm_statsr2   4   s   !#288RVVRWWbff!LCT3
&&C	B
++aQi
 C	c"fc$q&(m	#AcE	)B
A#'BrE/C	
1B	adCRL	 !Bs2wJ"S$9"9	:B!A#c'1S"X:$qt*QsB3s7| ;C ??a4S#$ % %B"S#X+B	BqtAaAhrk"n	$qQw	.B!CCL.
T#b&\2a40BqD#bf+1Ec1II
JJB#s(NB"HBsB?r      c                   (    e Zd Zed        Zd Zd Zy)Test_Transf2c                 $   t         t        j                  d      ft        t        j                  ft        t        j
                  d      ft        d      t        j                  dd      fg| _        d\  }}g d| _	        g d| _
        g d| _        y )Nr+   gh㈵>
   )g        r   g?g      ?g?)gffffff?r   g?)gffffffg      g)r   r   chi2r   halfnormfoldnormr	   fdist_equivalentsppfqxxnxx)clslss      r   setup_classzTest_Transf2.setup_classR   sq     EJJqM*(-.b\5771b>*
 
 ! #r   c                    | j                   | j                  }}t        | j                        D ]  \  }\  }}t	        |j                  |      |j                  |      d|j                  z          t	        |j                  |      |j                  |      d|j                  z   |j                  z          t	        |j                  |      |j                  |      d|j                  z   |j                  z          t	        |j                  |      |j                  |      d|j                  z   |j                  z          t	        |j                  |      |j                  |      d|j                  z   |j                  z          || _        || _        t        |d      r( |j                  j                  dg|j                    }n|j                  d      }|dk(  rt#        d	       t	        |j                  d      |t$        d
|j                  z   |j                  z          t&        j(                  d d  }t'        j*                  d       	 |j-                  d      }|j-                  d      }	|t&        _        t	        |d d |	d d d|j                  z   |j                  z          t	        |dd  |	dd  dd|j                  z   |j                  z           y # |t&        _        w xY w)Ncdferr_msgzpdf zsf zppq zisf r   r   nowzmoment ignoremvskmomentsr   stats )decimalrH   )r?   r>   	enumerater=   r   rF   r   pdfsfppfisfd1d2hasattrr   momentargsprintDECIMALwarningsfilterssimplefilterr   )
r   r?   r>   jrU   rV   d2momorig_filters1s2s
             r   test_equivalentzTest_Transf2.test_equivalente   sW   77DIID"4#8#89 (	BIAgr"r
BFF2JbggNr
BFF2J(.rwwrww(>@b	2559(-bggbgg(=?tbffTl(.rwwrww(>@tbffTl(.rwwrww(>@DGDG
 r6"&q32773		!!te		!e '(1"''(9"''(AC
 #**1-K!!(+/XXfX-XXfX-#. 2A2A(0(8(@B1212()(0(8(@BM(	BD $/ s   $K!!K.c                    | j                   | j                  | j                  }}}t        t	        j
                  d      }}t        |j                  |      d|j                  |      z
  d|j                  z          t        |j                  |      |j                  |             t        |j                  |      d|j                  |      z
         t        |j                  |      |j                  |      d d d           t        |j                  |      |j                  |      d d d           t        |j                  d      |j                  d              t        |j	                  d            D cg c]  \  }}|d|dz   z  z   }}}t        |j	                  d      |d|j                  z   |j                  z          y c c}}w )	Nr+   rF   rG   r   rK   rL   rN   )r?   r@   r>   r   r   r9   r   rF   r   rQ   rR   rS   rT   rX   rP   )	r   r?   r@   r>   rU   rV   iv	ch2oddnegs	            r   test_equivalent_negsqz"Test_Transf2.test_equivalent_negsq   s`    499C!5::a=2BFF3K266":uRWW}MBFF3K4BEE#J"%%)4BFF4L266$<"+=*=>BFF4L266$<"+=*=>BIIaL299Q<-8rxxx78:sqQac{] :	 :BHHVH4i$,RWW$4RWW$<	>:s   >GN)__name__
__module____qualname__classmethodrD   rd   rj    r   r   r5   r5   P   s     $ $$*B\>r   r5   __main__r8   r+   rK   rL   g|=)%__doc__r\   numpyr   numpy.testingr   scipyr   r   (statsmodels.sandbox.distributions.extrasr   r   r   r	   propertydistributions	rv_frozenr   r)   r<   	__class___statsr2   r;   r[   r5   rk   ttrd   rj   debugrZ   rS   r9   abr:   ro   r   r   <module>r      s\      -  ; ; &..I%J     "  #   * #1   
 S> S>l z	BE"""=12ejjnn]1-.  !  !j/0nennU#))6):;enn""F"34  r   