
[c           @` sQ  d  d l  m Z m Z m Z m Z d  d l Z d  d l Z d  d l m	 Z	 d d l
 m Z m Z m Z m Z y d  d l Z Wn e k
 r e Z n Xe Z d d  d  Z d d  d  Z e j j d	  d d  d
   Z e j j d	  d d  d   Z d d  d  Z d d  d  Z e j j d	  d    Z d   Z d d  d  Z d S(   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   assert_allclosei   (   t	   histogramt   scott_bin_widtht   freedman_bin_widtht   knuth_bin_widthi'  c         C` s   t  j j |  } | j |   } t |  } t | d t  j |  |  d  t | d t \ } } t | d t  j |  |  d  t j	 t
   t | j d d   Wd  QXd  S(	   Ng      @i   i   t   return_binsi   i
   gUUUUUU?gUUUUUU?(   t   npt   randomt   RandomStatet   randnR   R   t   stdt   Truet   pytestt   raisest
   ValueErrort   rand(   t   Nt   rseedt   rngt   Xt   deltat   bins(    (    sA   lib/python2.7/site-packages/astropy/stats/tests/test_histogram.pyt   test_scott_bin_width   s    ""c   
   	   C` s  t  j j |  } | j |   } t  j | d d g  \ } } t |  } t | d | | |  d  t | d t \ } } t | d | | |  d  t j	 t
   t | j d d   Wd  QXd d d g d g d	 d
 d d g } t j	 t
  / }	 t | d t d t |	  k s*t  Wd  QXt  j d d d g d	 d g d
 d d g d t  j } | d 9} t | d t \ } } t | d  d  S(   Ni   iK   i   i   i   R	   i
   i   id   i   i   i   u   Please use another bin methodt   dtypegTqs*>g6

>gUUUUUU?gUUUUUU?(   R
   R   R   R   t
   percentileR   R   R   R   R   R   R   t   strt   AssertionErrort   asarrayt   float32(
   R   R   R   R   t   v25t   v75R   R   t   test_xt   e(    (    sA   lib/python2.7/site-packages/astropy/stats/tests/test_histogram.pyt   test_freedman_bin_width"   s"    '9
u   not HAS_SCIPYc         C` s   t  j j |  } | j |   } t | d t \ } } t t |  d  t |  } | | k sj t  t	 j
 t   t | j d d   Wd  QXd  S(   NR	   i;   i   i
   (   R
   R   R   R   R   R   R   t   lenR   R   R   R   R   (   R   R   R   R   t   dxR   t   dx2(    (    sA   lib/python2.7/site-packages/astropy/stats/tests/test_histogram.pyt   test_knuth_bin_width>   s    i  c         C` sz   t  j j |  } | j |   } t | d  \ } } | j   t |  k sT t  t |  t |  d k sv t  d  S(   Nu   knuthi   (   R
   R   R   R   R   t   sumR&   R   (   R   R   R   t   xt   countsR   (    (    sA   lib/python2.7/site-packages/astropy/stats/tests/test_histogram.pyt   test_knuth_histogramM   s
    c         C` s   t  j j |  } | j |   } x d t  j d d d  d d d g D][ } t | |  \ } } | j   t |  k s t  t |  t |  d k sF t  qF Wd  S(	   Ni   ii   i   u   scottu   freedmanu   blocksi   (	   R
   R   R   R   t   linspaceR   R*   R&   R   (   R   R   R   R+   R   R,   (    (    sA   lib/python2.7/site-packages/astropy/stats/tests/test_histogram.pyt   test_histogramV   s    c         C` s`   t  j j |  } | j |   } d } x2 d d d g D]! } t | | d | \ } } q7 Wd  S(   Ng?g?u   scottu   freedmanu   blockst   range(   g?g?(   R
   R   R   R   R   (   R   R   R   R+   R0   R   R,   (    (    sA   lib/python2.7/site-packages/astropy/stats/tests/test_histogram.pyt   test_histogram_rangea   s
    c          C` s   t  j j d  }  |  j d  } t | d d \ } } t | d d d d d	 d
 d d d g	  t | d d d d d d d d d d g
  d  S(   Ni    id   R   u   knuthi   i   i	   i   i   i   i   i   i   g^?lg+i# gkFgL@gޢ$6ڿgiN+?g?ޒ0?gtR%+?g8q?g_6u(@(   R
   R   R   R   R   R   (   R   R   R,   R   (    (    sA   lib/python2.7/site-packages/astropy/stats/tests/test_histogram.pyt   test_histogram_output_knuthj   s    (c          C` s  t  j j d  }  |  j d  } t | d d \ } } t | d d d d d	 d
 d d d d g
  t | d d d d d d d d d d d g  t | d d \ } } t | d d d d d d d g  t | d d d d d d  d! d" g  t | d d# \ } } t | d d d d$ d% d& d d d g	  t | d d' d( d) d* d+ d, d- d. d/ g
  t | d d0 \ } } t | d d1 d2 g  t | d d3 d4 d g  d  S(5   Ni    id   R   i
   i   i   i   i   i   i   i   i   g^?lgK8Ӑ g,_	Ajgŀx۲gupgD ¿g"zcR?g, tU?gi?g35ф?g_6u(@u   scotti   i   i"   gjg7)g	ȏxѿg˱*?g ?gN @gS"@u   freedmani   i   i   gٽhSgg)x
gԏٛ!ƿgYna?g;aWRF?gC??g&lc@gkMk@u   blocksi=   i   g~g Ԩѵ?(   R
   R   R   R   R   R   (   R   R   R,   R   (    (    sA   lib/python2.7/site-packages/astropy/stats/tests/test_histogram.pyt   test_histogram_outputv   s&    +"(c      
   C` s   t  j j |  } | j |   } x@ d d d g D]/ } t j t   t | | d | Wd  QXq1 Wt j t   t | d d Wd  QXd  S(   Nu   scottu   freedmanu   blockst   weightsR   u   bad_argument(	   R
   R   R   R   R   R   t   NotImplementedErrorR   R   (   R   R   R   R+   R   (    (    sA   lib/python2.7/site-packages/astropy/stats/tests/test_histogram.pyt   test_histogram_badargs   s    (   t
   __future__R    R   R   R   R   t   numpyR
   t   numpy.testingR   t    R   R   R   R   t   scipyt   ImportErrort   Falset	   HAS_SCIPYR   R   R%   t   markt   skipifR)   R-   R/   R1   R2   R3   R6   (    (    (    sA   lib/python2.7/site-packages/astropy/stats/tests/test_histogram.pyt   <module>   s(   ""
		