
    eI$                        d dl Z d dlmZ d dlmZ d dlZd dlZ	 d dlm	Z	 n# e
$ r dZ	Y nw xY wd dlmZmZ d dlmZmZ  e j        e          j        dz  Zej                            e	du d	          Zd
 Zd Zd Zd Zd Zed             Zed             Zd Zd Z d Z!ddZ"ddZ#ed             Z$ed             Z% G d d          Z&d Z'd dZ(ed             Z)dS )!    N)	b64encode)BytesIO)wavfile)AudioVideo)
TensorLike_is_1dim_int_or_float_tensorassetszrequires scipy)reasonc                 p    d}t          |          }|                    | |          }|j        |k    sJ d S )NzPhttps://file-examples-com.github.io/uploads/2017/04/file_example_MP4_640_3MG.mp4comm)r   get_rootvalue)documentr   urlvideomodels        ;lib/python3.11/site-packages/panel/tests/pane/test_media.pytest_video_urlr      sB    
\C#JJENN8$N//E ;#    c                     t          t          t          dz                      }|                    | |          }|j        dk    sJ d S )Nmp4.mp4r   av  data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAAAhtZGF0AAAA1m1vb3YAAABsbXZoZAAAAAAAAAAAAAAAAAAAA+gAAAAAAAEAAAEAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAAC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU3LjQxLjEwMA==)r   strASSETSr   r   r   r   r   r   s       r   test_local_videor       s`    #fy())**ENN8$N//E;  S  S  S  S  S  S  Sr   c                     t          t          t          dz            d          }|                    | |          }|j        sJ d S )Nr   Tautoplayr   )r   r   r   r   r    r   s       r   test_video_autoplayr!   '   sJ    #fy())D999ENN8$N//E>r   c                     t          t          t          dz            d          }|                    | |          }|j        sJ d S )Nr   Tmutedr   )r   r   r   r   r$   r   s       r   test_video_mutedr%   -   sJ    #fy())666ENN8$N//E;r   c                     t          t          t          dz                      }|                    | |          }|j        dk    sJ d S )Nzmp3.mp3r   zvdata:audio/mp3;base64,/+MYxAAAAANIAAAAAExBTUUzLjk4LjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)r   r   r   r   r   r   r   audior   s       r   test_local_audior)   4   s`    #fy())**ENN8$N//E;  S  S  S  S  S  S  Sr   c                    d}d}d}d}d}t          j        ||z            |z  }t          j        dt           j        z  |z  |z            |z  }t          j        dt           j        z  ||z  |z   z            }	|	dz  }
t          j        |
dz            }t          ||          }|                    | |          }|j        d	k    sJ d S )
Ni@  {Gz?       @g      ^@g333333?i  sample_rater   a&  data:audio/wav;base64,UklGRsQAAABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YaAAAAAAAF4ErQjgDOgQuBRDGH0bXB7WIOMifCScJT8mYyYHJi0l1yMLIs0fJR0dGr4WFBMqDw4LzQZ1Ahf+vfl59VfxZu2z6UrmN+OD4DjeXNz42g7aotm22UjaWNvi3ODeTOEe5E3nzuqU7pXywvYO+2v/yAMZCFAMXhA1FMoXDxv7HYMgoCJJJHolLyZlJhwmVSURJFciKiCTHZoaSBeqE8oP)nparangesinpiint16r   r   r   )r   r   spsdurationmodulator_frequencycarrier_frequencymodulation_indextime	modulatorwaveformwaveform_quietwaveform_intr(   r   s                 r   test_numpy_audior>   ;   s    
CH9S\""S(DsRU{%884?@@CSSIvb25j$5$<y$HIJJH^N8NU233L,C000ENN8$N//E;  C  C  C  C  C  C  Cr   c                    t           j                            ddd                              d          }d}t	                      }t          j        |||           t          |                                          	                    d          }t          ||          }|                    | |          }|j        }|                    d          d	         |k    sJ |j                            d
          sJ d S )Nid   r3   
   zutf-8r-   r   ,   zdata:audio/wav;base64)r/   randomrandintastyper   r   writer   getvaluedecoder   r   r   split
startswith)	r   r   datar.   bufferb64_encodedr(   r   model_values	            r   test_audio_arrayrP   R   s    9T#s++227;;DKYYFM&+t,,,FOO--..55g>>K$K000ENN8$N//E+KS!!!$3333;!!"9:::::::r   c                 p    d}t          |          }|                    | |          }||j        k    sJ d S )N-http://ccrma.stanford.edu/~jos/mp3/pno-cs.mp3r   )r   r   r   r   r   	audio_urlr(   r   s        r   test_audio_urlrU   b   sB    ?I)ENN8$N//E######r   c                 l    d}t          |d          }|                    | |          }|j        sJ d S )NrR   Tr#   r   )r   r   r$   rS   s        r   test_audio_mutedrW   i   sB    ?I)4(((ENN8$N//E;r   c                 l    d}t          |d          }|                    | |          }|j        sJ d S )NrR   Tr   r   )r   r   r    rS   s        r   test_audio_autoplayrY   p   sB    ?I)d+++ENN8$N//E>r   r+   c                     t           j        }t          j        d| t	          | |z            d          }dt          j        dt          j        z  dz  |z            z  }|S )Nr   F)endpointg      ?   i  )r   r.   r/   linspaceintr1   r2   )r5   r.   time_variablesine_wave_400hzs       r   get_audio_np_float64ra   w   sY    #KK8SK1G-H-HSXYYYMBF1ru9s?]#BCCCOr   c                 \    t          |                               t          j                  S Nr5   )ra   rF   r/   float32rd   s    r   get_audio_np_float32rf   }   s#    22299"*EEEr   c                     t          t                                }|                    | |          }|j        dk    sJ d S Nobjectr     data:audio/wav;base64,UklGRpYDAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YXIDAAAAAAIEAAj3C+EPuxOCFzEbxB45Iosltyi7K5IuOzGyM/U1AjjWOXE7zzzxPdQ+dz/cP/8/4z+GP+k+DT7zPJs7CDo6ODM29jOFMeIuECwRKeklmyIqH5ob7hcqFFIQaQx0CHYEdABz/HT4fPSQ8LTs6+g55aLhKt7U2qPXm9S+0RDPk8xKyjfIXMa7xFbDLcJDwZjALcABwBfAbMACwdbB6sI6xMfFj8ePycbLMc7P0JzTlta52QPdcOD946bnZ+s97yTzGPcV+xf/GQMZBxEL/g7dEqgWXRr3HXMhzSQCKA8r8S2kMCczdjWPN3E5GTuFPLQ9pj5YP8o//T/vP6E/Ez9FPjk97ztpOqg4rjZ9NBgygC+4LMMppCZfI/UfbBzGGAcVMxFODVsJXwVeAVz9XPli9XPxk+3F6Q7mceLx3pPbWdhI1WHSqM8gzcvKq8jDxhXFosNrwnPBucA/wAbADMBTwNrAoMGmwunDaMUixxbJQMugzTPQ9dLl1f/YQNym3yzjzuaL6lzuQPIx9i36Lv4wAjAGKwobDv0RzRWHGSgdqyANJEsnYSpNLQswmTL0NBo3CDm9Ojc8dT10PjU/tj/3P/g/uD85P3k+ez0/PMc6EzkmNwE1qDIbMF4tcypdJyAkvyA8HZ0Z4xUUEjIOQgpIBkcCRf5E+kj2V/Jz7qHq5OZA47rfVNwR2fbVBtNC0K/NTssiyS3HccXxw6zCpsHewFXADcAFwD3AtsBuwWXCmsMMxbnGn8i+yhHNmc9Q0jbVR9iA293eXOL55a/pfe1c8Uv1RPlE/UYBSAVECTcNHRHxFLEYVxzhH0sjkiaxKacscC8JMnA0ojadOF865zsyPUA+Dz+eP+4//T/MP1s/qj66PYw8ITt7OZs3gzU1M7MwAS4gKxQo4CSGIQsechq+FvMSFQ8oCzAHMAMu/yz7L/c781Tvfeu75xLkhOAW3czZqNat09/QQM7Ty5vJmsfRxUPE8cLcwQbBb8AYwAHAK8CVwD7BJ8JOw7LEUsYsyD7KhcwBz67RitSR18HaFt6O4STl1eie7HrwZfRc+Fv8XQBfBF0IUgw7EBQU2ReFGxYfhyLWJf8o/yvSLnYx6TMnNi84/jmTO+w8CD7lPoM/4T//P90/ej/YPvY91jx5O+A5DTgBNsAzSjGiLswrySg=)r   ra   r   r   r'   s       r   test_audio_float64rl      ]    -//000ENN8$N//E;  G  G  G  G  G  G  Gr   c                     t          t                                }|                    | |          }|j        dk    sJ d S rh   )r   rf   r   r   r'   s       r   test_audio_float32ro      rm   r   c                   8    e Zd ZddZd Zd Zed             ZdS )
TensorMockr,   c                 0    t          |          | _        d S rc   )rf   _data)selfr5   s     r   __init__zTensorMock.__init__   s    )8<<<


r   c                     | j         S N)rs   rt   s    r   numpyzTensorMock.numpy   s
    zr   c                     | j         j        S rw   )rs   ndimrx   s    r   dimzTensorMock.dim   s    zr   c                     dS )Nztorch.float32 rx   s    r   dtypezTensorMock.dtype   s    r   Nr,   )__name__
__module____qualname__ru   ry   r|   propertyr   r~   r   r   rq   rq      sa        = = = =       X  r   rq   c                  ~    t                      } t          d t                    rJ t          | t                    sJ d S rw   )rq   
isinstancer   )mocks    r   test_torch_liker      s=    <<D$
+++++dJ'''''''r   r,   c                 "    t          |           S rc   )rq   rd   s    r   get_audio_tensor_float32r      s    x((((r   c                     t          d          }t          |          sJ t          |          }|                    | |          }|j        dk    sJ d S )Nr+   rd   ri   r   rk   )r   r	   r   r   r   )r   r   objr(   r   s        r   test_audio_tensor_float32r      sz    
"D
1
1
1C',,,,,ENN8$N//E;  G  G  G  G  G  G  Gr   )r+   r   )*pathlibbase64r   ior   ry   r/   pytestscipy.ior   	Exception
panel.paner   r   panel.pane.mediar   r	   Path__file__parentr   markskipifscipy_availabler   r   r!   r%   r)   r>   rP   rU   rW   rY   ra   rf   rl   ro   rq   r   r   r   r~   r   r   <module>r      s                              GGG $ # # # # # # # E E E E E E E E	h			&	1+$$W_=M$NN  S S S    S S S C C C, ; ; ;$ $ $       F F F F G G G
 G G G       ( ( () ) ) ) G G G G Gs   ! ++