ó
î&]\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 m	 Z	 e j
 d d k rr e	 Z n d d l m Z d d l m Z d d l m Z d d l Z d d	 l m Z m Z d d
 l m Z d d l m Z m Z m Z m Z m Z m Z m  Z  d e j! k Z" e d „  ƒ Z# d „  Z$ d „  Z% d „  Z& d e' f d „  ƒ  YZ( d S(   s
    Testing

i    (   t   divisiont   print_functiont   absolute_importN(   t   BytesIOi   (   t   StringIO(   t   mkstemp(   t   contextmanager(   t   assert_t   assert_equal(   t   raises(   t   make_streamt   GenericStreamt   cStringStreamt
   FileStreamt   ZlibInputStreamt
   _read_intot   _read_stringt   __pypy__c          c` sŒ   d }  t  ƒ  \ } } t j | d ƒ  } | j |  ƒ Wd  QXt | d ƒ - } t |  ƒ } t |  ƒ } | | | f VWd  QXt j | ƒ d  S(   Ns   a stringt   wbt   rb(   R   t   ost   fdopent   writet   openR   t	   cStringIOt   unlink(   t   valt   fdt   fnamet   fst   gst   cs(    (    sA   lib/python2.7/site-packages/scipy/io/matlab/tests/test_streams.pyt   setup_test_file!   s    c          C` s‡   t  ƒ  x \ }  } } t t t | ƒ t ƒ ƒ t j d d k  r} t r} t t t | ƒ t ƒ ƒ t t t |  ƒ t	 ƒ ƒ n  Wd  QXd  S(   Ni    i   (
   R    R   t
   isinstanceR
   R   t   syst   version_infot   IS_PYPYR   R   (   R   R   R   (    (    sA   lib/python2.7/site-packages/scipy/io/matlab/tests/test_streams.pyt   test_make_stream/   s
    c          C` s  t  ƒ  ø \ }  } } xå |  | | f D]Ô } t | ƒ } | j d ƒ } t | d ƒ t | j ƒ  d ƒ | j d ƒ } t | d ƒ t | j ƒ  d ƒ | j d d ƒ } t | d ƒ t | j ƒ  d ƒ | j d d ƒ } t | d ƒ t | j ƒ  d ƒ q% WWd  QXd  S(   Ni    i   i   i   i   iþÿÿÿi   (   R    R
   t   seekR   t   tell(   R   R   R   t   st   stt   res(    (    sA   lib/python2.7/site-packages/scipy/io/matlab/tests/test_streams.pyt   test_tell_seek8   s    c       
   C` sG  t  ƒ  8\ }  } } x%|  | | f D]} t | ƒ } | j d ƒ | j d ƒ } t | d ƒ | j d ƒ | j d ƒ } t | d ƒ | j d ƒ t | d ƒ } t | d ƒ t | d ƒ } t | d ƒ t t t | d ƒ | j d ƒ t | d ƒ } t | d ƒ t | d ƒ } t | d ƒ t t t | d ƒ q% WWd  QXd  S(   Ni    iÿÿÿÿs   a stringi   s   a stt   ringi   (	   R    R
   R&   t   readR   R   t   assert_raisest   IOErrorR   (   R   R   R   R(   R)   R*   (    (    sA   lib/python2.7/site-packages/scipy/io/matlab/tests/test_streams.pyt	   test_readJ   s*    t   TestZlibInputStreamc           B` s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C` sX   t  j j d d | ƒ j t  j ƒ j ƒ  } t j | ƒ } t | ƒ } | t	 | ƒ | f S(   Ni    i   (
   t   npt   randomt   randintt   astypet   uint8t   tostringt   zlibt   compressR   t   len(   t   selft   sizet   datat   compressed_datat   stream(    (    sA   lib/python2.7/site-packages/scipy/io/matlab/tests/test_streams.pyt	   _get_datae   s    *c      	   ` s˜   d } d d d | d | d | | d d | d g } | d | d | | d g } ‡  f d †  } x, | D]$ } x | D] } | | | ƒ qy Wql Wd  S(   Ni   i    i   i
   i   c   	      ` s‘   ˆ  j  |  ƒ \ } } } t | | ƒ } d } d } xJ t r | j t | |  | ƒ ƒ } | sb Pn  | t | ƒ 7} | | 7} q6 Wt | | ƒ d  S(   Nt    i    (   R@   R   t   TrueR-   t   minR:   R   (	   R<   t	   read_sizet   compressed_streamt   compressed_data_lenR=   R?   t   data2t   so_fart   block(   R;   (    sA   lib/python2.7/site-packages/scipy/io/matlab/tests/test_streams.pyt   checkt   s    	(    (   R;   t
   block_sizet   SIZESt
   READ_SIZESRJ   R<   RD   (    (   R;   sA   lib/python2.7/site-packages/scipy/io/matlab/tests/test_streams.pyR0   k   s    c         C` s§   d } t  j j d d | ƒ j t  j ƒ j ƒ  } t j | ƒ } t | d ƒ } t	 | t
 | ƒ ƒ } | j t
 | ƒ ƒ t | j ƒ  t
 | ƒ ƒ t t | j d ƒ d  S(   NiÒ  i    i   t   abbacacai   (   R2   R3   R4   R5   R6   R7   R8   R9   R   R   R:   R-   R   R'   R.   R/   (   R;   R<   R=   R>   RE   R?   (    (    sA   lib/python2.7/site-packages/scipy/io/matlab/tests/test_streams.pyt   test_read_max_length†   s    *c   	      C` s}  |  j  d ƒ \ } } } t | | ƒ } | j d ƒ d } t | j ƒ  | ƒ | j d ƒ } t | | | | d !ƒ | j d d ƒ d } t | j ƒ  | ƒ | j d ƒ } t | | | | d !ƒ | j d d ƒ d } t | j ƒ  | ƒ | j d ƒ } t | | | | d !ƒ t t | j d	 d
 ƒ t t | j d d ƒ t t | j d d ƒ | j d d ƒ t t | j d ƒ d  S(   Ni   i{   i   iA  i   i   i  i    i
   i   iÿÿÿÿi'  i   i†   iÇ  (	   R@   R   R&   R   R'   R-   R.   R/   t
   ValueError(	   R;   RE   RF   R=   R?   t   pt   d1t   d2t   d3(    (    sA   lib/python2.7/site-packages/scipy/io/matlab/tests/test_streams.pyt	   test_seek’   s,    c         C` sw   |  j  d ƒ \ } } } t | | ƒ } t | j ƒ  ƒ | j d ƒ t | j ƒ  ƒ | j d ƒ t | j ƒ  ƒ d  S(   Ni   i   (   R@   R   R   t   all_data_readR&   (   R;   RE   RF   R=   R?   (    (    sA   lib/python2.7/site-packages/scipy/io/matlab/tests/test_streams.pyt   test_all_data_read°   s    (   t   __name__t
   __module__R@   R0   RO   RU   RW   (    (    (    sA   lib/python2.7/site-packages/scipy/io/matlab/tests/test_streams.pyR1   d   s
   				()   t   __doc__t
   __future__R    R   R   R   R"   R8   t   ioR   R#   R   R   t   tempfileR   t
   contextlibR   t   numpyR2   t   numpy.testingR   R   t   pytestR	   R.   t   scipy.io.matlab.streamsR
   R   R   R   R   R   R   t   modulesR$   R    R%   R+   R0   t   objectR1   (    (    (    sA   lib/python2.7/site-packages/scipy/io/matlab/tests/test_streams.pyt   <module>   s(   	4				