ó
È!7]c           @` s]  d  Z  d d l m Z m Z m Z d d l Z d d l Z d d l Z d d l Z	 d d l
 m Z m Z m Z m Z m Z m Z m 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" d „  Z# d „  Z$ d e% f d „  ƒ  YZ& d „  Z' d „  Z( d S(   sƒ   Tests of interaction of matrix with other parts of numpy.

Note that tests with MaskedArray and linalg are done in separate files.
i    (   t   divisiont   absolute_importt   print_functionN(   t   assert_t   assert_equalt   assert_raisest   assert_raises_regext   assert_array_equalt   assert_almost_equalt   assert_array_almost_equalc          C` s±   t  j d d g d d g g ƒ }  t t |  d d d g d  d  … f t  j ƒ ƒ t  j t  j d ƒ j d d ƒ ƒ } t | d  d … t  j d	 ƒ f | d  d … d	 f j	 ƒ d  S(
   Ni   i   i   i   i    i2   i   i
   iÿÿÿÿ(
   t   npt   matrixR   t
   isinstancet   asmatrixt   aranget   reshapeR   t   arrayt   T(   t   mt   x(    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_fancy_indexing   s    !/$c          C` sb   d d g }  d d g } t  j |  |  g ƒ } t  j j j | |  | ƒ } t t | t  j ƒ ƒ d  S(   Ni    i   i   i   (   R
   R   t
   polynomialt	   polyutilst	   mapdomainR   R   (   t   dom1t   dom2R   t   res(    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_polynomial_mapdomain!   s
    c          C` su   t  j d d d g g ƒ }  t  j |  d d  ƒ} t  j d d d g g ƒ } t | | ƒ t t | ƒ t  j k ƒ d  S(   Ni   i   i    t   axis(   R
   R   t   sortt   NoneR   R   t   type(   t   at   actualt   expected(    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_sort_matrix_none+   s
    c          C` sx   t  j d d d g g ƒ }  t  j |  d d d  ƒ} t  j d d d g g ƒ } t | | ƒ t t | ƒ t  j k ƒ d  S(   Ni   i   i    R   (   R
   R   t	   partitionR   R   R   R   (   R    R!   R"   (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_partition_matrix_none4   s
    c          C` so   t  j d d g d t ƒ}  t  j d d g g d t ƒ} t t  j |  d ƒ | ƒ t t  j d |  ƒ | ƒ d  S(   Ni   i   t   dtypei   i   (   R
   R   t   objectR   t   dot(   t   arrt   desired(    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt%   test_dot_scalar_and_matrix_of_objects>   s    c          C` sÄ   x½ t  j d t  j d d D]Ÿ }  t  j d d |  ƒd } t  j d d g d d g g d |  ƒ} t  j d d	 g d
 d g g d |  ƒ} t t  j | | ƒ | ƒ t t  j | | ƒ | ƒ q Wd  S(   Nt
   AllIntegert   AllFloatt   ?i   R&   i   i   i   i   i	   i   (    (   R
   t	   typecodesR   R   R   t   inner(   t   dtt   scaR)   R*   (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_inner_scalar_and_matrixG   s    #''c          C` so   t  j d d g d t ƒ}  t  j d d g g d t ƒ} t t  j |  d ƒ | ƒ t t  j d |  ƒ | ƒ d  S(   Ni   i   R&   i   i   (   R
   R   R'   R   R0   (   R)   R*   (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt'   test_inner_scalar_and_matrix_of_objectsQ   s    c       	   C` s¯  t  j d d g d d g g ƒ }  t  j d ƒ j d d ƒ j } t  j |  | d  g g  d g d g d d g g ƒ } t t | j	 d ƒ t  j k ƒ t t | j	 d ƒ t  j
 k	 ƒ t | j	 d j d	 ƒ t  j d ƒ j d d d ƒ } t t t  j |  | d  g g  d g d g d d g g ƒ t  j |  | d  g g  d g d g d d d g g ƒ } t t | j	 d ƒ t  j
 k ƒ t t | j	 d ƒ t  j k	 ƒ t | j	 d j d
 ƒ d  S(   Ni   i   i   i   t   readonlyt	   writeonlyt   allocatet
   no_subtype(   i   i   (   i   i   i   (   R
   R   R   R   R   t   nditerR   R   R   t   operandst   ndarrayR   t   shapeR   t   RuntimeError(   R    t   bt   i(    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt!   test_iter_allocate_output_subtypeZ   s     !    c          C` s˜   t  j d d g d d g g ƒ }  xp t  j t  j t  j f D]V } | |  ƒ } t t | ƒ t  j k ƒ | |  d t ƒ} t t | ƒ t  j k	 ƒ q: Wd  S(   Ni   i   i   i   t   subok(   R
   R   t
   zeros_liket	   ones_liket
   empty_likeR   R   t   False(   R    t   like_functionR>   t   c(    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyRF   u   s    !c          C` så   t  j d d d g d d d g g d d ƒ}  |  j d d	 t d
 t ƒ} t |  | k ƒ |  j d d
 t ƒ} t |  | ƒ t t | ƒ t  j ƒ |  j d d	 t d
 t ƒ} t |  | ƒ t |  | k	 ƒ t t | ƒ t  j k	 ƒ d  S(   Ni    i   i   i   i   i   R&   t   f4RA   t   copyt   i4(   R
   R   t   astypet   TrueRE   R   R   R   (   R    R>   (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_array_astype€   s    -c          C` sA   t  j d d g d d g g ƒ }  t t d t  j |  |  g ƒ d  S(   Ni   i   i   i   s   shape too large to be a matrix(   R
   R   R   t
   ValueErrort   stack(   R   (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt
   test_stack“   s    !	c          C` so   t  j d d g d t ƒ}  t  j d d g g d t ƒ} t t  j |  d ƒ | ƒ t t  j d |  ƒ | ƒ d  S(   Ni   i   R&   i   i   (   R
   R   R'   R   t   multiply(   R)   R*   (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_object_scalar_multiply›   s    c          C` s­  t  j t  j d ƒ ƒ }  x¯ t  j t  j g D]› } | |  d d ƒ} t t | t  j ƒ ƒ t | j d	 k ƒ | |  d d ƒ} t t | t  j ƒ ƒ t | j d
 k ƒ | |  ƒ } t t  j | ƒ ƒ q+ Wt  j	 |  d <xÏt  j t  j g D]»} t
 j d t ƒ o } t
 j d ƒ | |  d d ƒ} t t | t  j ƒ ƒ t t  j t  j | ƒ ƒ ƒ t t | ƒ d k ƒ Wd  QXt
 j d t ƒ ® } t
 j d ƒ | |  d d ƒ} t t | t  j ƒ ƒ t t  j | d ƒ oøt  j | d ƒ oøt  j | d ƒ ƒ t t | ƒ d k d ƒ t t | d j t ƒ ƒ Wd  QXt
 j d t ƒ \ } t
 j d ƒ | |  ƒ } t t  j | ƒ ƒ t | t  j	 k ƒ t t | ƒ d k ƒ Wd  QXqê Wd  S(   Ni   R   i    i   t   recordt   alwaysi   s   no warning raised(   i   i   (   i   i   (   i   i    (   i    i    (   i   i    (   R
   R   t   eyet   nanmint   nanmaxR   R   R<   t   isscalart   nant   warningst   catch_warningsRL   t   simplefiltert   anyt   isnant   lent
   issubclasst   categoryt   RuntimeWarning(   t   matt   fR   t   w(    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_nanfunctions_matrices¤   s@    * c          C` sº  t  j t  j d ƒ ƒ }  xÍ t  j t  j t  j t  j t  j t  j t  j	 f D]› } | |  d d ƒ} t
 t | t  j ƒ ƒ t
 | j d k ƒ | |  d d ƒ} t
 t | t  j ƒ ƒ t
 | j d k ƒ | |  ƒ } t
 t  j | ƒ ƒ qI WxË t  j t  j f D]· } | |  d d ƒ} t
 t | t  j ƒ ƒ t
 | j d k ƒ | |  d d ƒ} t
 t | t  j ƒ ƒ t
 | j d k ƒ | |  ƒ } t
 t | t  j ƒ ƒ t
 | j d d	 f k ƒ qû Wd  S(
   Ni   R   i    i   (   i   i   (   i   i   (   i   i   (   i   i   i	   (   R
   R   RU   t	   nanargmint	   nanargmaxt   nansumt   nanprodt   nanmeant   nanvart   nanstdR   R   R<   RX   t	   nancumsumt
   nancumprod(   Rc   Rd   R   (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt"   test_nanfunctions_matrices_generalÍ   s*    c          C` sÍ   t  j t  j j d d ƒ ƒ }  t |  j d ƒ t  j |  d ƒ ƒ t  j d d g d d g g ƒ } t  j d d g d d g g ƒ } t  j | d d d | ƒ} t t | ƒ t  j ƒ t | d	 d g g ƒ d  S(   Ni   i    i   i   i   i   R   t   weightsg      @g      $@g«ªªªªª
@(	   R
   R   t   randomt   randR   t   meant   averageR   R   (   t   yR    Re   t   r(    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_average_matrixé   s    "!!c          C` so   t  j d d ƒ }  |  |  } t  j | |  ƒ } t  j |  ƒ } t  j | ƒ } t  j | | ƒ } t | | ƒ d  S(   Ni    i   (   R
   t   linspacet   trapzR   R   (   R   Rv   Rw   t   mxt   myt   mr(    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_trapz_matrixö   s    
c           C` s^   t  t j t j d ƒ ƒ t j ƒ s* t ‚ t  t j t j d ƒ d d ƒt j ƒ sZ t ‚ d  S(   Ni   t   to_begin(   R   R
   t   ediff1dR   t   AssertionError(    (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_ediff1d_matrix  s    *c          C` s¿   d „  }  t  j d d g d d g g ƒ } t  j d d g d d g g ƒ } t  j |  d | ƒ } t t | t  j ƒ ƒ t | | ƒ t  j |  d | ƒ } t t | t  j ƒ ƒ t | | ƒ d  S(   Nc         S` s   |  d S(   Ni   (    (   t   row(    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   double  s    i    i   i   i   i   i   (   R
   R   t   apply_along_axisR   R   R   (   R„   R   R"   t   result(    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_apply_along_axis_matrix  s    	!!c          C` s°   t  j d d g ƒ }  t  j |  ƒ } t t t  j |  |  ƒ ƒ t  j ƒ t t t  j | | ƒ ƒ t  j ƒ t t t  j |  | ƒ ƒ t  j ƒ t t t  j | |  ƒ ƒ t  j ƒ d  S(   Ni   (   R
   t   onesR   R   R   t   kronR;   R   (   R    R   (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_kron_matrix  s    """t   TestConcatenatorMatrixc           B` s#   e  Z d  „  Z d „  Z d „  Z RS(   c         ` sà   d d g ‰  d d g ‰ t  j d ˆ  ˆ f } t  j d ˆ  ˆ f } t t | ƒ t  j ƒ t t | ƒ t  j ƒ t t  j | ƒ d d d d g g ƒ t t  j | ƒ d g d g d g d g g ƒ t t ‡  ‡ f d †  ƒ d  S(   Ni   i   i   i   Rw   RG   c           ` s   t  j d ˆ  ˆ f S(   Nt   rc(   R
   t   r_(    (   R    R>   (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   <lambda>4  t    (   R
   R   R   R   R   R   R   RN   (   t   selft   ab_rt   ab_c(    (   R    R>   sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_matrix'  s    %.c         C` sX   t  j d d d g d f } t t | ƒ t  j ƒ t t  j | ƒ d d d g g ƒ d  S(   NRw   i   i   i   (   R
   R   R   R   R   R   (   R   Rw   (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_matrix_scalar6  s    c         C` s    t  j d g ƒ } t  j d g ƒ } t  j d g ƒ } t  j d g ƒ } t  j d } t  j | | g | | g g ƒ } t | | ƒ t t | ƒ t | ƒ ƒ d  S(   Ni   i   i   i   s
   a, b; c, d(   R
   R   R   t   bmatR   R   (   R   R    R>   RG   t   dR!   R"   (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_matrix_builder;  s    !(   t   __name__t
   __module__R“   R”   R—   (    (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyR‹   %  s   		c          C` s´   y/ t  t j d d g ƒ t j d d g ƒ ƒ Wnr t k
 r£ }  t |  ƒ } | j d d ƒ } t j d ƒ } y t  | | ƒ Wq° t k
 rŸ t  | | ƒ q° Xn Xt d ƒ ‚ d  S(   Ni   i   s   shapes (2L,), (1L, 2L)s   shapes (2,), (1, 2)s|   
        Arrays are not equal

        (shapes (2,), (1, 2) mismatch)
         x: array([1, 2])
         y: matrix([[1, 2]])s   Did not raise(	   R   R
   R   R   R   t   strt   replacet   textwrapt   dedent(   t   et   msgt   msg2t   msg_reference(    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt%   test_array_equal_error_message_matrixG  s    /	c          C` s  t  j d d g g ƒ }  t  j d t  j g g ƒ } t  j d t  j g g ƒ } t  j t  j t  j g g ƒ } t  j d d g t  j t  j g g ƒ } xj t t f D]\ } xS |  | | | | f D]< } | | | ƒ t  j | ƒ } | | | ƒ | | | ƒ q½ Wq¡ Wd  S(   Ng      ð?g       @(   R
   R   RY   t   infR	   R   R   (   t   m1t   m2t   m3t   m4t   m5t   assert_funcR   R    (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   test_array_almost_equal_matrix]  s    '()   t   __doc__t
   __future__R    R   R   t   pytestRœ   RZ   t   numpyR
   t   numpy.testingR   R   R   R   R   R   R	   R   R   R#   R%   R+   R3   R4   R@   RF   RM   RP   RR   Rf   Rp   Rx   R~   R‚   R‡   RŠ   R'   R‹   R¢   Rª   (    (    (    sE   lib/python2.7/site-packages/numpy/matrixlib/tests/test_interaction.pyt   <module>   s8   4		
			
			
									)						
"	