ó
ØÆ÷Xc           @` su  d  d l  m Z m Z m Z d  d l Z d  d l m Z d  d l Z d  d l m	 Z	 d  d l
 j j Z d  d l m Z e j d d ƒ e j Z d e f d	 „  ƒ  YZ e d
 k rqd Z d e Z d d f \ Z Z x˜ e d d ƒ D]‡ Z d e Z e j e e ƒ j e e d ƒ Z e j e ƒ Z e d e d d ƒ e e  d e ƒ ƒ e d e d  e d f ƒ qã Wn  d S(   i    (   t   divisiont   absolute_importt   print_functionN(   t   reduce(   t   float_(   t   build_err_msgt   allt   ignoret   ModuleTesterc           B` s‰   e  Z d  „  Z d d e d „ Z d 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` s~  | |  _  | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j	 |  _	 t
 |  _
 | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ | j |  _ y | j |  _ Wn  t k
 rp| j j |  _ n Xg  |  _ d  S(   N(   t   modulet   allequalt   aranget   arrayt   concatenatet   countt   equalt   filledt   getmaskt   getmaskarrayt   idt   innert	   make_maskt   maskedt   masked_arrayt   masked_valuest   mask_ort   nomaskt   onest   outert   repeatt   resizet   sortt   taket	   transposet   zerost   MaskTypet   umatht   AttributeErrort   coret	   testnames(   t   selfR	   (    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   __init__   s@    		t    c         C` s  |  j  | ƒ } |  j  | ƒ } |  j |  j | ƒ |  j | ƒ ƒ }	 |  j  |  j | d |	 ƒ| ƒ } |  j  |  j | d |	 ƒ| ƒ } | j j d k r÷ | j t ƒ } t | t	 j
 ƒ rÜ | j d k rÜ d | t	 j | ƒ <q÷ t	 j | ƒ r÷ d } q÷ n  | j j d k rj| j t ƒ } t | t	 j
 ƒ rO| j d k rOd | t	 j | ƒ <qjt	 j | ƒ rjd } qjn  ym| j d k pš| j d k pš| j | j k }
 |
 sít | | g | d | j | j f d | d d ƒ} |
 sít | ƒ ‚ n  | | | ƒ } |	 |  j k	 r)| r)|  j | d |	 ƒ} n  t | t ƒ rJ| }
 d g } n$ | j ƒ  } | j ƒ  }
 | j ƒ  } |
 sÖd
 d | j d ƒ t | ƒ } t | | g | d | f d | d d ƒ} |
 sÖt | ƒ ‚ n  Wn> t k
 rt | | g | d | d d ƒ} t | ƒ ‚ n Xd S(   sZ   
        Assert that a comparison of two masked arrays is satisfied elementwise.

        t   maskt   Oi   i    s   
(shapes %s, %s mismatch)t   headert   namest   xt   yid   g      Y@s   
(mismatch %s%%)N(    (    (   R/   R0   (   R/   R0   (   R/   R0   (   R   R   R   R   t   dtypet   chart   astypeR   t
   isinstancet   npt   ndarrayt   sizet   isnant   shapeR   t   AssertionErrorR   t   boolt   ravelR   t   tolistR   t   lent
   ValueError(   R(   t
   comparisonR/   R0   t   err_msgR-   t
   fill_valuet   xft   yft   mt   condt   msgt   valt   reducedt   match(    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   assert_array_compare5   s^    $!!!!0		!	!c         C` s&   |  j  |  j | | d | d d ƒd S(   sH   
        Checks the elementwise equality of two masked arrays.

        RA   R-   s   Arrays are not equalN(   RK   R   (   R(   R/   R0   RA   (    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   assert_array_equalm   s    c         C` s‚   t  j d d d d t d d d d d d d d g ƒ } d	 d
 d
 d
 d
 d
 d	 d
 d
 d
 d
 d
 g } |  j | d | ƒ} | d
 d S(   s!   
        Tests creation

        g      ð?g       Àg       @g      @g      @g      $Àg      $@g      @i   i    R+   N(   R5   R   t   piR   (   R(   R/   RE   t   xm(    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   test_0u   s    7*c   	      C` sý  t  j d d d d t d d d d d d d d g ƒ } t  j d d	 d d d
 d d	 d d d d	 d g ƒ } d d d d d d d d d d d d g } d d d d d d d d d d d d g } |  j | d | ƒ} |  j | d | ƒ} t  j | d | ƒ } | j d ƒ | | j d ƒ j ƒ  s)t ‚ | j	 } | j
 t d „  | ƒ k sSt ‚ |  j | ƒ t | ƒ t d „  | ƒ k s„t ‚ xr d d g D]d } | | _	 | | _	 | | _	 | | _	 | | _	 |  j | ƒ t | ƒ t d „  | ƒ k s‘t ‚ q‘Wd S(   s!   
        Tests creation

        g      ð?g       Àg       @g      @g      @g      $Àg      $@g      @g        g      ð¿g      Ài   i    R+   g@Œµx¯Dc         S` s   |  | S(   N(    (   R/   R0   (    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   <lambda>   s    c         S` s   |  | S(   N(    (   R/   R0   (    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyRP      s    i   i   i   i   c         S` s   |  | S(   N(    (   R/   R0   (    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyRP   ˜   s    N(   i   i   (   i   i   (   R5   R   RM   R   t   wheret   set_fill_valueR   t   anyR:   R9   R7   R   R   R>   (	   R(   R/   R0   t   m1t   m2RN   t   ymRC   t   s(    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   test_1   s&    73**	!1					c   	      C` s‚  t  j d d d d g ƒ } |  j | d d d d d g ƒ} |  j | d d d d d g ƒ} |  j | ƒ } t | ƒ t | ƒ t | d ƒ t | d ƒ k s¦ t ‚ | d | d k sÀ t ‚ d | d <d | d <|  j | | ƒ d | d d +d | d d +|  j | d <|  j | d d +| | (|  j | d <|  j d d d d g d d d d g ƒ | (|  j d d d d g d d d d g ƒ | (t  j	 d	 ƒ d
 } |  j
 | d ƒ } |  j d d d d g t ƒ } t  j d d d d g t ƒ } | d | d | d d !j d k st ‚ d d d d d g } |  j | ƒ } |  j | ƒ } | | k sWt ‚ |  j | d d ƒ} | | k	 s~t ‚ d S(   s2   
        Tests conversions and indexing.

        i   i   i   i   R+   i    i	   ic   i   g      ð?g      @t   hellot   copyN(   i    (   R5   R   t   strt   reprt   typeR:   RL   R   R   R   R   t   objectR9   R   (	   R(   t   x1t   x2t   x3t   x4t   nRE   RU   t   m3(    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   test_2š   s@    !!

&

++c      
   C` sY  |  j  d ƒ } |  j | d <|  j | d	 ƒ } |  j |  j | | g ƒ | ƒ sU t ‚ |  j |  j | ƒ d d d d d d d d g ƒ sŽ t ‚ |  j | d
 d d ƒ} |  j | d d d d d d d d g ƒ |  j | d d d ƒ} |  j | | ƒ sþ t ‚ | j d d d ƒ} |  j | | ƒ s+t ‚ | j d d ƒ } |  j | | ƒ sUt ‚ d S(   s&   
        Tests resize/repeat

        i   i   i   i    i   t   axisi   N(   i   (   i   i   i   i   (   i   i   i   i   (	   R   R   R   R
   R   R:   R   R   RL   (   R(   Rb   t   y4t   y5t   y6t   y7t   y8(    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   test_3Ä   s    '9(c         C` sÝ  |  j  d ƒ } t j  d ƒ } |  j | d d +| j d d d ƒ } | j d d d ƒ } |  j t j | d ƒ |  j | d ƒ ƒ sˆ t ‚ |  j t j | d d ƒ |  j | d d ƒ ƒ s¾ t ‚ |  j t j |  j	 | d ƒ |  j	 | d ƒ ƒ |  j | | ƒ ƒ st ‚ |  j t j
 |  j	 | d ƒ |  j	 | d ƒ ƒ |  j
 | | ƒ ƒ sNt ‚ |  j d	 d d
 d d g t ƒ } |  j | d <|  j | d d d g ƒ } | d d	 k s­t ‚ | d d k sÃt ‚ | d d k sÙt ‚ d S(   sB   
        Test of take, transpose, inner, outer products.

        i   i   i   i   i   i   i    i   t   abct   defN(   i   i    i   (   i   i    i   (   i   i    i   (   i   i    i   (   R   R5   R   t   reshapeR
   R!   R:   R    R   R   R   R   R^   (   R(   R/   R0   t   t(    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   test_4×   s"    06--!c         C` sÖ  |  j  d ƒ } |  j  d ƒ } |  j  d ƒ } |  j | d <| d 7} |  j | | d ƒ s` t ‚ | d 7} |  j | | d ƒ s† t ‚ |  j  d ƒ } |  j  d ƒ } |  j | d <| d 8} |  j | | d ƒ s× t ‚ | d 8} |  j | | d ƒ sý t ‚ |  j  d ƒ d } |  j  d ƒ d } |  j | d <| d 9} |  j | | d ƒ sVt ‚ | d 9} |  j | | d ƒ s|t ‚ |  j  d ƒ d } |  j  d ƒ d } |  j | d <| d } |  j | | ƒ sÑt ‚ | d } |  j | | ƒ sót ‚ |  j  d ƒ d } |  j  d ƒ d } |  j | d <| d } |  j | | d ƒ sLt ‚ | |  j  d ƒ } |  j | |  j d ƒ ƒ |  j  d ƒ j t ƒ } |  j  d ƒ } |  j | d <| d 7} |  j | | d ƒ sÒt ‚ d S(   s*   
        Tests inplace w/ scalar

        i
   i   i   g      ð?g       @N(   i
   (   R   R   R
   R:   RL   R   R3   R   (   R(   R/   R0   RN   (    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   test_5î   sR    









c         C` s  |  j  d d t ƒ} |  j  d ƒ } |  j  d d t ƒ} |  j | d <| j } |  j  d d t ƒ} |  j | d <| | 7} | | 7} |  j | | | ƒ s¡ t ‚ |  j | | | ƒ s½ t ‚ |  j | j |  j | | j ƒ ƒ sç t ‚ |  j  d d t ƒ} |  j  d d t ƒ} |  j | d <| j } |  j  d d t ƒ} |  j | d <| | 8} | | 8} |  j | | | ƒ syt ‚ |  j | | | ƒ s•t ‚ |  j | j |  j | | j ƒ ƒ s¿t ‚ |  j  d d t ƒ} |  j  d d t ƒ} |  j | d <| j } |  j  d d t ƒ} |  j | d <| | 9} | | 9} |  j | | | ƒ sQt ‚ |  j | | | ƒ smt ‚ |  j | j |  j | | j ƒ ƒ s—t ‚ |  j  d d t ƒ} |  j  d d t ƒ} |  j | d <| j } |  j  d d t ƒ} |  j | d <| | } | | } d S(   s)   
        Tests inplace w/ array

        i
   R1   i   iÿÿÿÿN(   R   R   R   R+   R
   R:   R   (   R(   R/   R0   RN   RE   t   a(    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   test_6"  sT    	

*	

*	

*	
c         C` sC  |  j  d d d t d g d d d d g d g d ƒ|  j  d d d t d g d d d d g d g d ƒf } xÈ d d	 d
 d d g D]± } y t |  j | ƒ } Wn  t k
 rÈ t t | ƒ } n Xt |  j | ƒ } | | j  } | | Œ  } | | Œ  } |  j | j	 d ƒ | j	 d ƒ | ƒ |  j | j
 | j
 ƒ qŠ Wd S(   s   Tests ufuncg      ð?i    iÿÿÿÿi   R+   i   i   t   sqrtt   logt   log10t   expt	   conjugateN(   R   RM   t   getattrR$   R%   t   fromnumericR	   t   ninRL   R   t   _mask(   R(   t   dt   ft   uft   mft   argst   urt   mr(    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   test_7U  s    7=%c      	   C` sý  |  j  d d d d g d d d d d g ƒ} |  j d |  j | d d ƒƒ |  j d |  j | d	 d d d d g ƒƒ |  j | d	 d d d d g d
 d ƒ\ } } |  j d | ƒ | d k sÆ t ‚ |  j | (|  j | d d ƒ|  j k sô t ‚ |  j  d d d d g d d d d d g ƒ} | j d d ƒ } |  j | d  d  … d f <|  j |  j | d d ƒd d g ƒ |  j | d d ƒd |  j k s™t ‚ |  j d d g |  j | d d ƒƒ |  j | d d d
 d ƒ\ } } |  j | d d g ƒ d d d d d d g } d d d d d d g d d d d d d g g } |  j d ƒ } |  j |  j | d d ƒd ƒ |  j |  j | d d d	 | ƒd ƒ |  j  |  j d ƒ d |  j d ƒ g ƒ } |  j |  j | d  ƒ t j	 j
 t j d ƒ ƒ d d ƒ |  j |  j | d d ƒt j d ƒ d d ƒ |  j |  j | d d ƒ|  j | d d ƒ|  j | d d ƒd g ƒ |  j |  j | d  d	 | ƒd ƒ |  j |  j | d d d	 | ƒd d d d d d g ƒ |  j |  j | d d ƒ|  j | d d ƒ|  j | d d ƒd g ƒ |  j d ƒ } d d d d d d g }	 d d d d d d g d d d d d d g g }
 |  j d ƒ } d d d d d d g } |  j |  j |  j | | ƒ d d ƒd ƒ |  j |  j |  j | |	 ƒ d d ƒd ƒ |  j |  j |  j | | ƒ d d ƒd ƒ |  j |  j |  j |  j | | ƒ d d ƒƒ d ƒ |  j | |
 ƒ } |  j |  j | d  ƒ d ƒ |  j |  j | d d ƒd d d d d d g ƒ |  j |  j | d d ƒd d g ƒ |  j |  j | d d d	 | ƒd d d d d d g ƒ d  S(   Ng        g      ð?g       @g      @R+   i   i    Rf   t   weightst   returnedg      @i   i   g      @g      (@g      4@g      @g      $@g     ÀX@g      @g      @g«ªªªªª
@g«ªªªªª
@(   R   RL   t   averageR:   R   Ro   R   t   NoneR5   t   addR   R"   R   R   R   (   R(   t   ottt   resultt   wtst   w1t   w2R/   R0   RT   RU   Rd   t   m4t   m5t   z(    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   test_99w  sT    -+-
$-%(%!0%+90G"7G0+++41%c         C` s8   |  j  d ƒ } |  j | d d +| j d d d ƒ } d  S(   Ni   i   i   i   i   i   (   R   R   Ro   (   R(   R/   (    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   test_A¤  s    (   t   __name__t
   __module__R)   t   TrueRK   RL   RO   RX   Re   Rl   Rq   Rr   Rt   R…   R“   R”   (    (    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyR      s   	"7	
		*			4	3	"	-t   __main__sN   from __main__ import ModuleTester 
import numpy
tester = ModuleTester(module)
s   import numpy.ma.core as module
i
   i   i   s   tester.test_%i()s   #%ii2   t   .s   ModuleTester.test_%i.__doc__s   core_current : %.3f - %.3f(!   t
   __future__R    R   R   t   timeitt	   functoolsR   t   numpyR5   R   t   numpy.core.fromnumericR&   R{   t   numpy.testing.utilsR   t   seterrRM   R^   R   R•   t
   setup_baset	   setup_curt   nrepeatt   nloopt   ranget   it   funct   TimerR   t   curR   t   printt   eval(    (    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/ma/timer_comparison.pyt   <module>   s*   	ÿ ™

"