ó
ËÓYc           @   sv   d  d l  Z d  d l Z e j e j e j e j g Z e	 d „ Z
 d „  Z e d „ Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿNc         C   s‡   |  d k rQ g  } t  ƒ  } x@ | D]( } x | | D] } | j | ƒ q3 Wq" Wn t  ƒ  |  } | rƒ g  | D] } | j ^ qk } n  | S(   s@   Returns a list of functions, optionally as string function namest   all(   t	   func_dictt   appendt   __name__(   t   module_namet	   as_stringt   funcst   funcs_in_dictt   keyt   funct   f(    (    s4   lib/python2.7/site-packages/bottleneck/tests/util.pyt   get_functions   s    	c          C   sà   i  }  t  j t  j t  j t  j t  j t  j t  j t  j t  j	 t  j
 t  j t  j t  j g |  d <t  j t  j t  j t  j t  j t  j t  j t  j t  j t  j g
 |  d <t  j g |  d <t  j t  j t  j t  j t  j g |  d <|  S(   Nt   reducet   movet	   nonreducet   nonreduce_axis(   t   bnt   nansumt   nanmeant   nanstdt   nanvart   nanmint   nanmaxt   mediant	   nanmediant   sst	   nanargmint	   nanargmaxt   anynant   allnant   move_sumt	   move_meant   move_stdt   move_vart   move_mint   move_maxt   move_argmint   move_argmaxt   move_mediant	   move_rankt   replacet	   partitiont   argpartitiont   rankdatat   nanrankdatat   push(   t   d(    (    s4   lib/python2.7/site-packages/bottleneck/tests/util.pyR      s>    c         C   s   t  t |  | ƒ S(   N(   t
   array_itert   array_generator(   t	   func_namet   dtypes(    (    s4   lib/python2.7/site-packages/bottleneck/tests/util.pyt   arrays=   s    c         g   s?   x8 |  | Œ  D]* } | j  d k  r* | Vq | V| j Vq Wd  S(   Ni   (   t   ndimt   T(   t   arrays_funct   argst   a(    (    s4   lib/python2.7/site-packages/bottleneck/tests/util.pyR/   A   s
    c      	   c   sz  |  d# k r d } n	 t  j } |  d$ k r3 d } n	 t  j } t  j | | g ƒ Vt  j | | g ƒ Vt  j | d	 d
 g ƒ Vt  j | d	 d
 g ƒ V|  d k r· t  j | | g ƒ Vn  t  j d d	 d
 g d d ƒVt  j d d	 d
 g d d ƒVt  j d d	 d
 g d t  j ƒVt  j d d	 d
 g ƒ d Vt  j d d d g ƒ Vt  j d | | d	 g ƒ Vt  j d% g d t  j ƒVt  j d d d g ƒ Vt  j d d d g d t  j ƒVt  j d d d g d t  j ƒV|  j d ƒ s_t  j d ƒ Vt  j d ƒ Vt  j d ƒ Vt  j d ƒ Vt  j d ƒ Vt  j d ƒ Vt  j | ƒ Vt  j | ƒ Vt  j | ƒ Vn  i  } i d d 6d& d' d( d) g d 6| d <i d d 6d* g d 6| d <i d d 6d+ d, g d 6| d	 <i d d 6d- g d 6| d
 <i d d 6d. g d 6| d <x5d/ D]-} t  j j	 | ƒ } x| D]
} | | d } | | d }	 xå | D]Ý }
 t  j
 | d |
 ƒ} t | j j t  j ƒ rø|  d0 k r«| j | j Œ  d  k  } | | | <n  | j | j Œ  d  k  } | | | <| j | j Œ  d  k  } | | c d! 9<n  | j | ƒ x |	 D] } | j | ƒ VqWqGWqWqÿWt  j d d	 g d
 d g g ƒ d" d" … d g f Vxi | D]a }
 t  j
 d ƒ j |
 ƒ } x@ t d
 ƒ D]2 } x) t d d
 ƒ D] } | | d" | … Vq«Wq•WqjWx | D]… }
 t  j
 d ƒ j d d
 ƒ j |
 ƒ } | d" d" d	 … V| d" d" … d" d" d	 … f V| d" d" d	 … d" d" … d" d" d	 … f VqÖWx| D]}
 t  j
 d ƒ j d	 d
 d ƒ j |
 ƒ } xÜ t d	 ƒ D]Î } xÅ t d d	 ƒ D]´ } | | d" | … V| d" d" … | d" | … f V| d" d" … d" d" … | d" | … f V| | d" | … d" d" d	 … V| | d" | … d" d" d	 … d" d" … d" d" d	 … f Vq¶Wq WqfWd" S(1   s4   Iterator that yields arrays to use for unit testing.R)   R*   i    R   R   R    R!   i   i   i   R   i   t   dtypes   >f4s   <f4g    eÍÍAi   R   i÷ÿÿÿi	   g      "Àg        g      "@t   sizet   shapesi   i   i   i   i   R   gš™™™™™É?iÿÿÿÿN(   R)   R*   (   R   R   R    R!   I   €    (   i    (   i    i    (   i   i    (   i   i    i   (   i   (   i   i   (   i   i   (   i   i   i   (   i   i   i   i   (   i   i   (   R   R   (   t   npt   nant   inft   arrayt   float16t   int64t   float64t
   startswitht   randomt   RandomStatet   aranget
   issubclassR9   t   typet   inexactt   randt   shapet   shufflet   reshapet   astypet   range(   R1   R2   R=   R>   R   t   seedt   rsR4   R:   R;   R9   R8   t   idxRK   t   startt   step(    (    s4   lib/python2.7/site-packages/bottleneck/tests/util.pyR0   O   s˜    				   $
3$/''c         C   sp   |  j  } g  } | j r( | j d ƒ n  | j rA | j d ƒ n  t | ƒ d k rc | j d ƒ n  d j | ƒ S(   Nt   Ct   Fi    t   Nt   ,(   t   flagst   c_contiguousR   t   f_contiguoust   lent   join(   R8   R
   t   string(    (    s4   lib/python2.7/site-packages/bottleneck/tests/util.pyt   array_order¸   s    			(   t   numpyR<   t
   bottleneckR   RB   t   float32RA   t   int32t   DTYPESt   FalseR   R   R3   R/   R0   R_   (    (    (    s4   lib/python2.7/site-packages/bottleneck/tests/util.pyt   <module>   s   	'		i