
X_Sc           @   s   d  d l  m Z d  d l Z d  d l m Z m Z m Z d  d l Td  d l Td e j	 f d     YZ
 d e j	 f d     YZ e d	 k r e j   n  d S(
   i(   t   divisionN(   t   logt   sqrtt   pi(   t   *t   test_misc_mathc           B   s   e  Z d    Z d   Z RS(   c         C   sF   |  j  t d  d  |  j  t d  d  |  j  t d  d  d  S(	   Ni    i   i   i   i(   i    i   i   i   (   i    i   i   i(   i   i   i   i   (   t   assertEqualt   argmax(   t   self(    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_argmax/   s    c         C   sF   |  j  t d  d  |  j  t d	  d  |  j  t d
  d  d  S(   Ni   i   i   i   i    ii   (   i   i   i   i   (   i   i   i   i(   i   i   i   i   (   R   t   argmin(   R   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_argmin4   s    (   t   __name__t
   __module__R	   R   (    (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyR   -   s   	t   test_specfuncc           B   s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   sn   |  j  t d  j d  |  j  t d  j t t   |  j  t d  j d  |  j  t d  j d  d  S(   Ng      ?g      ?y              @g#?gxTNWz(   t   assertAlmostEqualt   cgammat   realR   R   t   imag(   R   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_cgammma=   s    c         C   sb  |  j  t d  d  |  j  t d  t t   |  j  t d d  d  |  j  t d d  d  |  j  t d d  d  |  j  t d d  d	  |  j  t d
  d  |  j  t d  d  |  j  t d  d d  |  j  t d  d d  |  j  t d  d d  |  j  t d  d  |  j  t d  d  |  j  t d d  d d  d  S(    Ng      ?g      ?g      @gEԖ?g      @@g"s?g       @g      p@gQ?g      "@g     @g      $@g     &Ag      Y@g;ϘfQ`g     @e@gMT /g     `e@g9Adxg      %gG.۱g     &gsU-p>g      g      @g g      0?g      0?g      ?g      p?g      >(   R   t   gammaR   R   (   R   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_gammmaC   s    c         C   s   |  j  t d  d  |  j  t d  d  |  j  t d  d  |  j  t d d  d	  |  j  t d
 d  d  |  j  t d d  d  |  j  t d d  d  d  S(   Ng      Y@g`%rv@g:0yE>gk2@g?g5@g      ?g      p@gH^bg       @g#[?g      g      @g̮&B.&@g      Ag&+zh3@g      p?g      p?g      >g      0>(   R   t   lngamma(   R   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_lngammaU   s    c         C   s<   |  j  t d  j d d  |  j  t d  j d d  d  S(	   Ng      ?y              @gܵ|i   g<0ȿi   y      ?      @y      ?      @(   R   t   clngammaR   R   (   R   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_clngamma_   s    c         C   sh   |  j  t d  d  xK t d d  D]: } t |  } t | d  } |  j | | | d  q& Wd  S(   Ni   i   i   i   (   R   t	   factorialt   rangeR   (   R   t   nt   fac1t   fac2(    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_factorialc   s
    c         C   s   |  j  t d  t  |  j  t d  t d t d   |  j  t d  d  |  j  t d  d  |  j  t d  d  |  j  t d	  d
  |  j  t d  d  |  j  t d  d  |  j  t d  d  |  j  t d  d  d  S(   Ng      ?g      ?i   gΓ ?i   gIs?i   gIz?i   gIz?id   guD'Ԑf@in   g"[@i  gՙ7p!@g      %g*/@(   R   t   digammat   euler_gammaR   (   R   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_digammmaj   s    %c         C   s   |  j  t d  d t t d  |  j  t d  t t d d  |  j  t d  t t d  |  j  t d  t t d  |  j  t d  d	  |  j  t d
  d  d  S(   Ng      $@g   {bAi@` g      @g       @g      ?g      ?g      Y@g{ˋ3?g     @@gfdP?g}?g}(   R   t   trigammaR   (   R   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_trigammaw   s    "c         C   s<   |  j  t d  j d d  |  j  t d  j d d  d  S(   Ng      ?y              @gU-?i   gH.!?y      ?      @y      ?      @(   R   t   cdigammaR   R   (   R   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_cdigamma   s    c         C   s<   |  j  t d  j d d  |  j  t d  j d d  d  S(   Ng      ?y              @g9/>i   g7ٿy      ?      @y      ?      @(   R   t	   ctrigammaR   R   (   R   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_ctrigamma   s    c         C   sG  |  j  t d d  t d   |  j  t d d  d  |  j  t d d  d d  |  j  t d d  d  |  j  t d d  d	 d
  |  j  t d d  d d d  |  j  t d d  d d  |  j  t d d  d  |  j  t d d  d  |  j  t d d  d  |  j  t d d  d  |  j  t d d  d  d  S(   Ng      $@g        gMbP?g\d <@g      ?go?i   g     &Age?i   gr%Ai   g      Y@g;ϘfQ`g86g]6gPMF:g     @(   R   t   incomplete_gammaR   t   normalized_incomplete_gamma(   R   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_incomplete_gamma   s     c         C   s&   t  d  } |  j | t d   d  S(   Ng      ?i   (   g      ?g      ?(   t   entropyR   R   (   R   t   ent(    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_entropy   s    c         C   sf   x_ t  d d  D]N } g  t  d |  D] } d | ^ q& } t |  } |  j | t |   q Wd  S(   Ni   id   i    g      ?(   R   R,   R   R   (   R   R   t   it   pvecR-   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt#   test_entropy_with_flat_distribution   s    &c         C   sb   x[ t  d d  D]J } g  t  d |  D] } d ^ q& } t |  } |  j | t |   q Wd  S(   Ni   id   i    g      ?(   R   R,   R   R   (   R   R   R/   R0   R-   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_entropy_unnormalized   s    "c         C   s&   t  d  } |  j | t d   d  S(   Ni   i    i   (   i   i   i   i    (   R,   R   R   (   R   R-   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_entropy_with_integer   s    c         C   s<   t  d  } |  j | d  t  d  } |  j | d  d  S(   Ni   i    (   i   (   i   i    i    i    i    (   R,   R   (   R   R-   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_entropy_with_short_pvec   s    c         C   s*   |  j  t t d  |  j  t t d  d  S(   Ni   i(    (   i   i(   t   assertRaisest
   ValueErrorR,   (   R   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_entropy_invalid_pvec   s    c         C   s#   t  d d  } |  j | d  d  S(   Ni   i    (   i   i   i   i   i    (   R,   R   (   R   R-   (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   test_entropy_base   s    (   R   R   R   R   R   R   R   R"   R$   R&   R(   R+   R.   R1   R2   R3   R4   R7   R8   (    (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyR   :   s"   			
														t   __main__(   t
   __future__R    t   unittestt   mathR   R   R   t   test_corebiot   corebio.morematht   TestCaseR   R   R   t   main(    (    (    sN   /Users/gec/Work/Projects/corebioproj/weblogo-3.4/test_corebio/test_moremath.pyt   <module>$   s   

