σ
ξ&]\c           @` s  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 d  d l	 Z
 d  d l m Z m Z m Z d  d l m Z d  d l m Z d  d l 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 S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   BytesIO(   t   assert_equalt   assert_t   assert_array_equal(   t   raises(   t   suppress_warnings(   t   wavfilec         C` s"   t  j j t  j j t  d |   S(   Nt   data(   t   ost   patht   joint   dirnamet   __file__(   t   fn(    (    s:   lib/python2.7/site-packages/scipy/io/tests/test_wavfile.pyt   datafile   s    c          C` sx   xq t  t g D]c }  t j t d  d |  \ } } t | d  t t j | j	 t j
   t | j d  ~ q Wd  S(   Ns   test-44100Hz-le-1ch-4bytes.wavt   mmapiD¬  i:  (   i:  (   t   Falset   TrueR	   t   readR   R   R   t   npt
   issubdtypet   dtypet   int32t   shape(   R   t   rateR
   (    (    s:   lib/python2.7/site-packages/scipy/io/tests/test_wavfile.pyt   test_read_1   s    c          C` sx   xq t  t g D]c }  t j t d  d |  \ } } t | d  t t j | j	 t j
   t | j d  ~ q Wd  S(   Ns   test-8000Hz-le-2ch-1byteu.wavR   i@  i   i   (   i   i   (   R   R   R	   R   R   R   R   R   R   R   t   uint8R   (   R   R   R
   (    (    s:   lib/python2.7/site-packages/scipy/io/tests/test_wavfile.pyt   test_read_2    s    c          C` sx   xq t  t g D]c }  t j t d  d |  \ } } t | d  t t j | j	 t j
   t | j d  ~ q Wd  S(   Ns#   test-44100Hz-2ch-32bit-float-le.wavR   iD¬  iΉ  i   (   iΉ  i   (   R   R   R	   R   R   R   R   R   R   R   t   float32R   (   R   R   R
   (    (    s:   lib/python2.7/site-packages/scipy/io/tests/test_wavfile.pyt   test_read_3*   s    c       	   C` s   x t  t g D] }  t   ; } | j t j d  t j t d  d |  \ } } Wd  QXt | d  t	 t
 j | j t
 j   t | j d  ~ q Wd  S(   Ns,   Chunk .non-data. not understood, skipping its)   test-48000Hz-2ch-64bit-float-le-wavex.wavR   i»  iΰ  i   (   iΰ  i   (   R   R   R   t   filterR	   t   WavFileWarningR   R   R   R   R   R   R   t   float64R   (   R   t   supR   R
   (    (    s:   lib/python2.7/site-packages/scipy/io/tests/test_wavfile.pyt   test_read_44   s    c          C` s―   x¨ t  t g D] }  t j t d  d |  \ } } t | d  t t j | j	 t j
   t | j	 j d k p t j d k o | j	 j d k  t | j d	  ~ q Wd  S(
   Ns#   test-44100Hz-2ch-32bit-float-be.wavR   iD¬  t   >t   bigt   =iΉ  i   (   iΉ  i   (   R   R   R	   R   R   R   R   R   R   R   R   t	   byteordert   sysR   (   R   R   R
   (    (    s:   lib/python2.7/site-packages/scipy/io/tests/test_wavfile.pyt   test_read_5C   s    $c          C` sS   xL t  t g D]> }  t t d  d  } t t t j | d |  | j   q Wd  S(   Ns   example_1.nct   rbR   (	   R   R   t   openR   t   assert_raisest
   ValueErrorR	   R   t   close(   R   t   fp(    (    s:   lib/python2.7/site-packages/scipy/io/tests/test_wavfile.pyt   test_read_failP   s    c          C` sS   xL t  t g D]> }  t t d  d  } t t t j | d |  | j   q Wd  S(   Ns(   test-44100Hz-le-1ch-4bytes-early-eof.wavR,   R   (	   R   R   R-   R   R.   R/   R	   R   R0   (   R   R1   (    (    s:   lib/python2.7/site-packages/scipy/io/tests/test_wavfile.pyt   test_read_early_eofW   s    c          C` sS   xL t  t g D]> }  t t d  d  } t t t j | d |  | j   q Wd  S(   Ns/   test-44100Hz-le-1ch-4bytes-incomplete-chunk.wavR,   R   (	   R   R   R-   R   R.   R/   R	   R   R0   (   R   R1   (    (    s:   lib/python2.7/site-packages/scipy/io/tests/test_wavfile.pyt   test_read_incomplete_chunk^   s    c   
      C` sH  |  r. t  j d d  \ } } t j |  n	 t   } zσ t j j d |  } | d k rt | d  d   d f } n  | j d k r | j	 |  } n | d j	 |  } t
 j | | |  xk t t g D]] } t
 j | d | \ } }	 t | |  t |	 j j d k d |	 j t | |	  ~	 qΘ WWd  |  rCt j |  n  Xd  S(   Nt   suffixs   .wavid   i   i    t   fi   R   t   <R(   t   |t   msg(   R7   R(   R8   (   t   tempfilet   mkstempR   R0   R   R   t   randomt   randt   kindt   astypeR	   t   writeR   R   R   R   R   R   R)   R   t   unlink(
   t   realfileR   R   t   channelst   fdt   tmpfileR
   R   t   rate2t   data2(    (    s:   lib/python2.7/site-packages/scipy/io/tests/test_wavfile.pyt   _check_roundtripe   s(    	c          C` sJ  xCt  t f D]5}  x,d D]$} xd D]} | d k rK | d k rK q' n  | d k ri | d k ri q' n  | d k s | d k r | d k r q' n  | d
 k rΊ | d k r' d } qΊ q' n  x} d D]u } | d k rε | d k rε qΑ n  xN d D]F } x= d D]5 } t j d | | | f  } t |  | | |  qω Wqμ WqΑ Wq' Wq Wq Wd  S(   Nt   it   uR6   t   gt   qi   i   i   i   t   gqt    R&   R7   i@  i }  i   s   %s%s%s(   RI   RJ   R6   RK   RL   (   i   i   i   i   (   R&   R7   (   i@  i }  (   i   i   i   (   R   R   R   R   RH   (   RB   t	   dtypechart   sizet
   endiannessR   RC   t   dt(    (    s:   lib/python2.7/site-packages/scipy/io/tests/test_wavfile.pyt   test_write_roundtrip   s(    $	(!   t
   __future__R    R   R   R   R*   R:   t   ioR   t   numpyR   t   numpy.testingR   R   R   t   pytestR   R.   t   scipy._lib._numpy_compatR   t   scipy.ioR	   R   R   R   R    R%   R+   R2   R3   R4   RH   RS   (    (    (    s:   lib/python2.7/site-packages/scipy/io/tests/test_wavfile.pyt   <module>   s(   			
	
						