σ
Λ½χXc           @` 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 Z d  d l m	 Z	 d  d l
 Z d  d l m Z m Z m Z m Z 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 e d k re   n  d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   BytesIO(   t   assert_equalt   assert_t   assert_raisest   assert_array_equalt   run_module_suite(   t   wavfilec         C` s"   t  j j t  j j t  d |   S(   Nt   data(   t   ost   patht   joint   dirnamet   __file__(   t   fn(    (    s:   /tmp/pip-build-7oUkmx/scipy/scipy/io/tests/test_wavfile.pyt   datafile   s    c       	   C` s   x t  t g D] }  t j   9 t j d t j  t j t d  d |  \ } } Wd  QXt	 | d  t
 t j | j t j   t	 | j d  ~ q Wd  S(   Nt   ignores   test-44100Hz-le-1ch-4bytes.wavt   mmapiD¬  i:  (   i:  (   t   Falset   Truet   warningst   catch_warningst   simplefilterR	   t   WavFileWarningt   readR   R   R   t   npt
   issubdtypet   dtypet   int32t   shape(   R   t   rateR
   (    (    s:   /tmp/pip-build-7oUkmx/scipy/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:   /tmp/pip-build-7oUkmx/scipy/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:   /tmp/pip-build-7oUkmx/scipy/scipy/io/tests/test_wavfile.pyt   test_read_3,   s    c       	   C` s   x t  t g D] }  t j   9 t j d t j  t j t d  d |  \ } } Wd  QXt	 | d  t
 t j | j t j   t	 | j d  ~ q Wd  S(   NR   s)   test-48000Hz-2ch-64bit-float-le-wavex.wavR   i»  iΰ  i   (   iΰ  i   (   R   R   R   R   R   R	   R   R   R   R   R   R   R   R   t   float64R   (   R   R    R
   (    (    s:   /tmp/pip-build-7oUkmx/scipy/scipy/io/tests/test_wavfile.pyt   test_read_46   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:   /tmp/pip-build-7oUkmx/scipy/scipy/io/tests/test_wavfile.pyt   test_read_5D   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   R   t
   ValueErrorR	   R   t   close(   R   t   fp(    (    s:   /tmp/pip-build-7oUkmx/scipy/scipy/io/tests/test_wavfile.pyt   test_read_failQ   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   R0   R	   R   R1   (   R   R2   (    (    s:   /tmp/pip-build-7oUkmx/scipy/scipy/io/tests/test_wavfile.pyt   test_read_early_eofX   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   R0   R	   R   R1   (   R   R2   (    (    s:   /tmp/pip-build-7oUkmx/scipy/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(   R8   R*   R9   (   t   tempfilet   mkstempR   R1   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:   /tmp/pip-build-7oUkmx/scipy/scipy/io/tests/test_wavfile.pyt   _check_roundtripf   s(    	c          c` sK  xDt  t f D]6}  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]v } | d k rε | d k rε qΑ n  xO d D]G } x> d D]6 } t j d | | | f  } t |  | | | f Vqω Wqμ WqΑ Wq' Wq Wq Wd  S(   Nt   it   uR7   t   gt   qi   i   i   i   t   gqt    R(   R8   i@  i }  i   s   %s%s%s(   RJ   RK   R7   RL   RM   (   i   i   i   i   (   R(   R8   (   i@  i }  (   i   i   i   (   R   R   R   R   RI   (   RC   t	   dtypechart   sizet
   endiannessR    RD   t   dt(    (    s:   /tmp/pip-build-7oUkmx/scipy/scipy/io/tests/test_wavfile.pyt   test_write_roundtrip   s(    $	t   __main__(    t
   __future__R    R   R   R   R,   R;   R   t   ioR   t   numpyR   t   numpy.testingR   R   R   R   R   t   scipy.ioR	   R   R!   R#   R%   R'   R-   R3   R4   R5   RI   RT   t   __name__(    (    (    s:   /tmp/pip-build-7oUkmx/scipy/scipy/io/tests/test_wavfile.pyt   <module>   s*   (			
	
							