403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/scipy/signal/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/scipy/signal/tests/__pycache__/test_spectral.cpython-311.pyc
�

d�c����X�ddlZddlmZmZmZmZmZmZm	Z	ddl
Z
ddl
mZddl
Z
ddlmZddlmZddlmZmZmZmZmZmZmZmZmZmZddlmZGd�d	��ZGd
�d��Z Gd�d
��Z!Gd�d��Z"Gd�d��Z#Gd�d��Z$Gd�d��Z%dS)�N)�assert_�assert_approx_equal�assert_allclose�assert_array_equal�assert_equal�assert_array_almost_equal_nulp�suppress_warnings)�raises)�signal)�fftfreq)
�periodogram�welch�lombscargle�csd�	coherence�spectrogram�stft�istft�
check_COLA�
check_NOLA)�_spectral_helperc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zej
�ej���d
��d���d
���Zej
�ej���d
��d���d���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestPeriodogramc� �tjd��}d|d<t|��\}}t|tjddd����tjd��}d|d<|dxxdzcc<|dz}t||��dS)	N��r��?�	����@���np�zerosr
r�linspace�ones��self�x�f�p�qs     �B/usr/lib/python3/dist-packages/scipy/signal/tests/test_spectral.py�test_real_onesided_evenz'TestPeriodogram.test_real_onesided_evens����H�R�L�L����!���1�~�~���1���2�;�q�#�q�1�1�2�2�2��G�A�J�J����!��	�"���������	�Q�����1������c��tjd��}d|d<t|��\}}t|tjd��dz��tjd��}d|d<|dz}t||d�	��dS)
N�rr� @�.@r!��?�V瞯�<��atol)r#r$r
r�aranger&r's     r-�test_real_onesided_oddz&TestPeriodogram.test_real_onesided_odds~���H�R�L�L����!���1�~�~���1���2�9�S�>�>�$�.�/�/�/��G�A�J�J����!��	�X�
����1�5�)�)�)�)�)�)r/c���tjd��}d|d<t|d���\}}t|t	dd����tjdd��}d|d<t||��dS)NrrrF��return_onesided��?��?)r#r$r
rr�fullr's     r-�test_real_twosidedz"TestPeriodogram.test_real_twosided&sx���H�R�L�L����!���1�e�4�4�4���1���7�2�s�+�+�,�,�,��G�B�������!����1�����r/c��tjd��}d|d<t|d���\}}t|d���\}}t|tjddd����t||d	z��dS)
Nrrr�spectrum��scaling�densityrrg0@)r#r$r
rr%)r(r)r*r+�gr,s      r-�test_real_spectrumz"TestPeriodogram.test_real_spectrum/s|���H�R�L�L����!���1�j�1�1�1���1��1�i�0�0�0���1���2�;�q�#�q�1�1�2�2�2���1�T�6�"�"�"�"�"r/c�.�tjdt���}d|d<t|��\}}t	|tjddd����tjd��}d|d<|dxxdzcc<|d	z}t	||��dS)
Nr��dtyperrrrrr r!)r#r$�intr
rr%r&r's     r-�test_integer_evenz!TestPeriodogram.test_integer_even7s����H�R�s�#�#�#����!���1�~�~���1���2�;�q�#�q�1�1�2�2�2��G�A�J�J����!��	�"���������	�Q�����1�����r/c��tjdt���}d|d<t|��\}}t	|tjd��dz��tjd��}d|d<|dz}t	||d	�
��dS)Nr1rIrrr2r3r!r4r5r6)r#r$rKr
rr8r&r's     r-�test_integer_oddz TestPeriodogram.test_integer_oddBs����H�R�s�#�#�#����!���1�~�~���1���2�9�S�>�>�$�.�/�/�/��G�A�J�J����!��	�X�
����1�5�)�)�)�)�)�)r/c��tjdt���}d|d<t|d���\}}t	|tdd����tjdd��}d|d<t	||��dS)	NrrIrrFr;r=r>)r#r$rKr
rrr?r's     r-�test_integer_twosidedz%TestPeriodogram.test_integer_twosidedLs���H�R�s�#�#�#����!���1�e�4�4�4���1���7�2�s�+�+�,�,�,��G�B�������!����1�����r/c��tjdtj��}d|d<t|d���\}}t	|tdd����tjdd��}d|d<t	||��dS)Nr��?@rFr;r=��?)r#r$�
complex128r
rrr?r's     r-�test_complexzTestPeriodogram.test_complexUs~���H�R���'�'����!���1�e�4�4�4���1���7�2�s�+�+�,�,�,��G�B��!�!����!����1�����r/c�z�ttttjdtj��d���dS)N��foorC)�
assert_raises�
ValueErrorr
r#r$rT�r(s r-�test_unk_scalingz TestPeriodogram.test_unk_scaling^s:���j�+�r�x��2�=�/I�/I��	�	�	�	�	�	r/�i686z)test known to fail on i386 linux and hurd)�reasonc��tjdtj���}|�d��}d|dd�dd�df<t	|��\}}t|jd��t|dddd�f|dddd�fd��t	|dddd�f��\}}t|tjdd�f|ddd�fd��dS)	N�rI��r�
r=r�rbr�r�<)	r#r$�float64�reshaper
r�shaper�newaxis�r(r)r*r+�f0�p0s      r-�test_nd_axis_m1zTestPeriodogram.test_nd_axis_m1bs����H�R�r�z�*�*�*��
�I�I�h������!�!�!�A�A�A�a�%���1�~�~���1��1�7�I�.�.�.�&�q��1�Q�Q�Q��x��1�Q�q�q�q�5��2�>�>�>��Q�q��1�1�1�u�X�&�&���B�&�r�"�*�Q�Q�Q�,�'7��1�Q�Q�Q�3���D�D�D�D�Dr/c��tjdtj���}|�d��}d|ddd�dd�f<t	|d���\}}t|jd��t|dd�ddf|dd�ddfd	��t	|dd�ddf��\}}t||dd�ddf��dS)
Nr`rI�rcrbrr=r��axis�rerbrrrf)r#r$rgrhr
rrirrks      r-�test_nd_axis_0zTestPeriodogram.test_nd_axis_0ms����H�R�r�z�*�*�*��
�I�I�h������!�A�A�A�a�a�a�%���1�1�%�%�%���1��1�7�G�,�,�,�&�q����1�Q��x��1�1�1�Q�q�5��2�>�>�>��Q�q�q�q��1�u�X�&�&���B�&�r�1�Q�Q�Q�q��U�8�4�4�4�4�4r/c�V�tjd��}d|d<t|dd��\}}tjdd��}t|d|��\}}t||��t||��tjdd��}t
tt|d|��dS)Nrrrrc�hann� )r#r$r
r�
get_windowrrYrZ�r(r)r*r+�win�fe�pe�win_errs        r-�test_window_externalz$TestPeriodogram.test_window_externalxs����H�R�L�L����!���1�b�&�)�)���1�����+�+���Q��C�(�(���B�&�q�"�-�-�-�&�q�"�-�-�-��#�F�B�/�/���j�+�q��'�	#�	#�	#�	#�	#r/c��tjd��}d|d<t|��\}}t|d���\}}t||ddd���t||ddd���t	|jd��dS)Nrrrrw��nfftrb)�)r#r$r
rrri)r(r)r*r+�fp�pps      r-�test_padded_fftzTestPeriodogram.test_padded_fft�s����H�R�L�L����!���1�~�~���1��Q�R�(�(�(���B���2�c�c��c�7�#�#�#���2�c�c��c�7�#�#�#��2�8�U�+�+�+�+�+r/c�$�tg��\}}t|jd��t|jd��dD]P}ttj|����\}}t|j|��t|j|���QdS�N�r�r���r�r�rb)r
rrir#�empty�r(r*r+ris    r-�test_empty_inputz TestPeriodogram.test_empty_input�s����2�����1��1�7�D�)�)�)��1�7�D�)�)�)�+�	/�	/�E��r�x����/�/�D�A�q��q�w��.�.�.��q�w��.�.�.�.�	/�	/r/c��dD]R}ttj|��d���\}}t|j|��t|j|���SdS�N�r�r�rrq)r
r#r�rri�r(rir*r+s    r-�test_empty_input_other_axisz+TestPeriodogram.test_empty_input_other_axis�s`��%�	/�	/�E��r�x����Q�7�7�7�D�A�q��q�w��.�.�.��q�w��.�.�.�.�	/�	/r/c�$�tjd��}d|d<t|d���\}}t|tjddd����tjd��}d|d<|dxxd	zcc<|d
z}t||��dS)N�rrrr�rrrr r!r"r's     r-�test_short_nfftzTestPeriodogram.test_short_nfft�����H�R�L�L����!���1�2�&�&�&���1���2�;�q�#�q�1�1�2�2�2��G�A�J�J����!��	�"���������	�Q�����1�����r/c�$�tjd��}d|d<t|d���\}}t|tjddd����tjd��}d|d<|dxxdzcc<|d	z}t||��dS)
Nrrrr�rrrr r!r"r's     r-�test_nfft_is_xshapez#TestPeriodogram.test_nfft_is_xshape�r�r/c�^�tjdd��}d|d<t|��\}}t|tjddd����tjdd��}d|d<|dxxdzcc<|d	z}t||��t
|j|jk��dS)
Nrr*rrrrrr r!)r#r$r
rr%r&rrJr's     r-�test_real_onesided_even_32z*TestPeriodogram.test_real_onesided_even_32�s����H�R�������!���1�~�~���1���2�;�q�#�q�1�1�2�2�2��G�A�s�O�O����!��	�"���������	�Q�����1�������1�7�"�#�#�#�#�#r/c�D�tjdd��}d|d<t|��\}}t|tjd��dz��tjdd��}d|d<|dz}t||d	�
��t
|j|jk��dS)Nr1r*rrr2r3r!r4�H�����z>r6)r#r$r
rr8r&rrJr's     r-�test_real_onesided_odd_32z)TestPeriodogram.test_real_onesided_odd_32�s����H�R�������!���1�~�~���1���2�9�S�>�>�$�.�/�/�/��G�A�s�O�O����!��	�X�
����1�4�(�(�(�(����1�7�"�#�#�#�#�#r/c�.�tjdd��}d|d<t|d���\}}t|t	dd����tjddd��}d|d<t||��t
|j|jk��dS)	Nrr*rrFr;r=r>�r#r$r
rrr?rrJr's     r-�test_real_twosided_32z%TestPeriodogram.test_real_twosided_32�s����H�R�������!���1�e�4�4�4���1���7�2�s�+�+�,�,�,��G�B���$�$����!����1�������1�7�"�#�#�#�#�#r/c�.�tjdd��}d|d<t|d���\}}t|t	dd����tjddd	��}d|d<t||��t
|j|jk��dS)
Nr�FrRrFr;r=rSr*r�r's     r-�test_complex_32zTestPeriodogram.test_complex_32�s����H�R�������!���1�e�4�4�4���1���7�2�s�+�+�,�,�,��G�B��#�&�&����!����1�������1�7�"�#�#�#�#�#r/c���tjd��}d|d<tjdd��}d}t	t
|���5t
||���ddd��dS#1swxYwYdS)	NrrrrvrczOthe size of the window must be the same size of the input on the specified axis��match��window)r#r$rrxrYrZr
)r(r)rz�expected_msgs    r-�test_shorter_window_errorz)TestPeriodogram.test_shorter_window_error�s����H�R�L�L����!������+�+��=��
�:�\�
:�
:�
:�	'�	'���#�&�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's�A&�&A*�-A*N)�__name__�
__module__�__qualname__r.r9r@rGrLrNrPrUr\�pytest�mark�skipif�platform�machine�
startswithrnrtr~r�r�r�r�r�r�r�r�r�r��r/r-rrs�������	�	�	�*�*�*����#�#�#�	�	�	�*�*�*�����������[���(��(�*�*�5�5�f�=�=�Fq��r�r�E�E�s�r�E��[���(��(�*�*�5�5�f�=�=�Fq��r�r�5�5�s�r�5�
#�
#�
#�,�,�,�/�/�/�/�/�/�	�	�	�	�	�	�
$�
$�
$�	$�	$�	$�$�$�$�$�$�$�'�'�'�'�'r/rc���eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!S)"�	TestWelchc��tjd��}d|d<d|d<t|d���\}}t|tjddd����tjgd���}t||d	d	�
��dS�Nrrrr!��npersegrr���iKGUU�?g��S�8��?�#��q�?r��#��q�?r��r7�rtol�r#r$rrr%�arrayr's     r-r.z!TestWelch.test_real_onesided_even�s����H�R�L�L����!����!���Q��"�"�"���1���2�;�q�#�q�1�1�2�2�2��H�"�"�"�
#�
#����1�4�d�3�3�3�3�3�3r/c��tjd��}d|d<d|d<t|d���\}}t|tjd��dz��tjgd	���}t||d
d
���dS�Nrrrr!rr��@�"@�g����9�?g�����?�p�0��?r�r�r�r�)r#r$rrr8r�r's     r-r9z TestWelch.test_real_onesided_odd�s����H�R�L�L����!����!���Q��"�"�"���1���2�9�S�>�>�#�-�.�.�.��H�"�"�"�
#�
#����1�4�d�3�3�3�3�3�3r/c��tjd��}d|d<d|d<t|dd���\}}t|t	dd����tjgd���}t||d	d	�
��dS�Nrrrr!F�r�r<r=�r����S�8��?r�r�r�r�r�r�r�r�)r#r$rrrr�r's     r-r@zTestWelch.test_real_twosided�s����H�R�L�L����!����!���Q��5�9�9�9���1���7�1�c�?�?�+�+�+��H�F�F�F�
G�
G����1�4�d�3�3�3�3�3�3r/c��tjd��}d|d<d|d<t|dd���\}}t|tjddd����tjgd	���}t||d
d
���dS�Nrrrr!rB)r�rDrr�)g�?g�-UU�?�.i�qUU�?r�g�-UU�?r�r�r�r's     r-rGzTestWelch.test_real_spectrums����H�R�L�L����!����!���Q��:�6�6�6���1���2�;�q�#�q�1�1�2�2�2��H�"�"�"�
#�
#����1�4�d�3�3�3�3�3�3r/c��tjdt���}d|d<d|d<t|d���\}}t	|tjddd����tjgd	���}t	||d
d
���dS�NrrIrrr!r�rr�r�r�r�)r#r$rKrrr%r�r's     r-�test_integer_onesided_evenz$TestWelch.test_integer_onesided_evens����H�R�s�#�#�#����!����!���Q��"�"�"���1���2�;�q�#�q�1�1�2�2�2��H�"�"�"�
#�
#����1�4�d�3�3�3�3�3�3r/c��tjdt���}d|d<d|d<t|d���\}}t	|tjd��d	z��tjgd
���}t	||dd���dS�
NrrIrrr!rr�r�r�r�r�r�)r#r$rKrrr8r�r's     r-�test_integer_onesided_oddz#TestWelch.test_integer_onesided_odds����H�R�s�#�#�#����!����!���Q��"�"�"���1���2�9�S�>�>�#�-�.�.�.��H�"�"�"�
#�
#����1�4�d�3�3�3�3�3�3r/c��tjdt���}d|d<d|d<t|dd���\}}t	|tdd����tjgd	���}t	||d
d
���dS�NrrIrrr!Fr�r=r�r�r�)r#r$rKrrrr�r's     r-rPzTestWelch.test_integer_twosided$s����H�R�s�#�#�#����!����!���Q��5�9�9�9���1���7�1�c�?�?�+�+�+��H�F�F�F�
G�
G����1�4�d�3�3�3�3�3�3r/c��tjdtj��}d|d<d|d<t|dd���\}}t	|tdd����tjgd���}t	||d	d	�
��dS�NrrRrr!Fr�r=)g&�>����?�#��q�?�n�)t��?r�r�r�r�r�r�r�)r#r$rTrrrr�r's     r-rUzTestWelch.test_complex.s����H�R���'�'����!����!���Q��5�9�9�9���1���7�1�c�?�?�+�+�+��H�F�F�F�
G�
G����1�4�d�3�3�3�3�3�3r/c�|�ttttjdtj��dd���dS�NrWrX)rDr�)rYrZrr#r$rTr[s r-r\zTestWelch.test_unk_scaling8s<���j�%���!�R�]�)C�)C�#�Q�	0�	0�	0�	0�	0�	0r/c��tjdtj���dz}t|dd���\}}t	|tj|��d���dS�NrcrI�{�G�z�?�linear�r��detrendr5r6�r#r8rgrr�
zeros_like�r(r)r*r+s    r-�test_detrend_linearzTestWelch.test_detrend_linear<sZ���I�b��
�+�+�+�d�2���Q��H�5�5�5���1���2�=��+�+�%�8�8�8�8�8�8r/c���tjdtj���dz}t|dd���\}}t|dd����\}}t	||d���t	||d���dS)	NrcrIr�Fr�c��|S�Nr��r)s r-�<lambda>z.TestWelch.test_no_detrending.<locals>.<lambda>Ds���r/r5r6)r#r8rgrr�r(r)�f1�p1�f2�p2s      r-�test_no_detrendingzTestWelch.test_no_detrendingAs���I�b��
�+�+�+�d�2���q�"�e�4�4�4���B��q�"�k�k�:�:�:���B���B�U�+�+�+�+���B�U�+�+�+�+�+�+r/c��tjdtj���dz}t|dd����\}}t	|tj|��d���dS)NrcrIr�c�.�tj|d���S�N�l)�type�rr���segs r-r�z1TestWelch.test_detrend_external.<locals>.<lambda>K������#�)F�)F�)F�r/r�r5r6r�r�s    r-�test_detrend_externalzTestWelch.test_detrend_externalHsg���I�b��
�+�+�+�d�2���Q��F�F�H�H�H���1���2�=��+�+�%�8�8�8�8�8�8r/c���tjdtj���dz}|�d��}t	|dd����\}}t|tj|��d�	��dS)
N�(rIr��rbrbrcrcc�.�tj|d���Sr�r�r�s r-r�z7TestWelch.test_detrend_external_nd_m1.<locals>.<lambda>Rr�r/r�r5r6)r#r8rgrhrrr�r�s    r-�test_detrend_external_nd_m1z%TestWelch.test_detrend_external_nd_m1Nsx���I�b��
�+�+�+�d�2��
�I�I�h�����Q��F�F�H�H�H���1���2�=��+�+�%�8�8�8�8�8�8r/c��tjdtj���dz}|�d��}tj|dd��}t|ddd��	��\}}t
|tj|��d
���dS)Nr`rIr�rarbrrcc�0�tj|dd���S�Nrr�)rrr�r�r�s r-r�z6TestWelch.test_detrend_external_nd_0.<locals>.<lambda>Zs�����!�#�)N�)N�)N�r/�r�rrr�r5r6)r#r8rgrh�moveaxisrrr�r�s    r-�test_detrend_external_nd_0z$TestWelch.test_detrend_external_nd_0Us����I�b��
�+�+�+�d�2��
�I�I�h�����K��1�a� � ���Q���N�N�P�P�P���1���2�=��+�+�%�8�8�8�8�8�8r/c��tjdtj���dz}|�d��}t	|d���\}}t|jd��t|dddd�f|d	ddd�fd
d
���t	|dddd�fd���\}}t|tjdd�f|d	dd�fd
d
���dS�Nr`rIr�rarcr�rdrr�vIh�%<=r�)	r#r8rgrhrrrirrjrks      r-rnzTestWelch.test_nd_axis_m1]s����I�b��
�+�+�+�d�2��
�I�I�h�����Q��#�#�#���1��1�7�I�.�.�.���!�A�a�a�a�%��!�A�a����E�(��U�C�C�C�C��q��1�Q�Q�Q��x��,�,�,���B���2�:�a�a�a�<�(�!�A�a�a�a�C�&�u�5�I�I�I�I�I�Ir/c��tjdtj���dz}|�d��}t	|dd���\}}t|jd��t|dd�ddf|dd�d	dfd
d
���t	|dd�ddfd���\}}t||dd�d	dfd
d
���dS�
Nr`rIr�rprcr)r�rrrsrrr�r�)r#r8rgrhrrrirrks      r-rtzTestWelch.test_nd_axis_0fs����I�b��
�+�+�+�d�2��
�I�I�h�����Q���+�+�+���1��1�7�G�,�,�,���!�!�!�A�a�%��!�A�A�A�a��E�(��U�C�C�C�C��q����1�Q��x��,�,�,���B���A�a�a�a��!�e�H�5�u�=�=�=�=�=�=r/c��tjd��}d|d<d|d<t|ddd���\}}tjdd��}t|d|d���\}}t||��t||��t
|jd��t
|jd��ttt|d|d	���tjdd
��}ttt|d|d���dS)Nrrrr!rcrvr��r�rWrw)
r#r$rrrxrrrirYrZrys        r-r~zTestWelch.test_window_externalos���H�R�L�L����!����!���Q��F�A�.�.�.���1�����*�*���q�"�c�4�0�0�0���B�&�q�"�-�-�-�&�q�"�-�-�-��2�8�T�*�*�*��2�8�T�*�*�*��j�%���#�q�	*�	*�	*�	*��#�F�B�/�/���j�%���'�4�	1�	1�	1�	1�	1�	1r/c�$�tg��\}}t|jd��t|jd��dD]P}ttj|����\}}t|j|��t|j|���QdSr�)rrrir#r�r�s    r-r�zTestWelch.test_empty_input�s����R�y�y���1��1�7�D�)�)�)��1�7�D�)�)�)�+�	/�	/�E����%���)�)�D�A�q��q�w��.�.�.��q�w��.�.�.�.�	/�	/r/c��dD]R}ttj|��d���\}}t|j|��t|j|���SdSr�)rr#r�rrir�s    r-r�z%TestWelch.test_empty_input_other_axis�s`��%�	/�	/�E����%���q�1�1�1�D�A�q��q�w��.�.�.��q�w��.�.�.�.�	/�	/r/c��tjd��}d|d<t��5}|�td��t|d���\}}t|dd���\}}ddd��n#1swxYwYt|d�	��\}}t
||��t
||��t
||��t
||��dS�
Nr!rrzBnperseg = 256 is greater than input length  = 8, using nperseg = 8rvr���r�r�r�)r#r$r	�filter�UserWarningrr�	r(r)�supr*r+r�r�r�r�s	         r-�test_short_datazTestWelch.test_short_data�s���H�Q�K�K����!���
 �
 �	9�C��J�J�{�$h�i�i�i���&�)�)�)�D�A�q��1�F�C�8�8�8�F�B��	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9��q�!�$�$�$���B���2������2������B������B�����s�AA9�9A=�A=c
�4�ttttjd��dtjgd�����ttttjd��dtjd���d����dS�NrWr)rrrrrre)rbr�)rYrZrr#r$r�r8rhr[s r-�test_window_long_or_ndz TestWelch.test_window_long_or_nd�ss���j�%���!���a���+�+�+�9N�9N�O�O�O��j�%���!���a��i��l�l�*�*�5�1�1�	3�	3�	3�	3�	3r/c��tjd��}d|ddd�<t|dd���\}}tjgd���}t	||d�	��dS�
N�@rr!rrW�r��noverlap)	rgUUUUUU�?�UUUUUU�?皙�����?r&r'r&r'gUUUUUU�?g�-���q=r6)r#r$rr�rr's     r-�test_nondefault_noverlapz"TestWelch.test_nondefault_noverlap�sq���H�R�L�L����#�#�A�#���Q��Q�/�/�/���1��H����
�
����1�5�)�)�)�)�)�)r/c	�h�ttttjd��dddd��dS�NrWrrvrb�)rYrZrr#r$r[s r-�test_bad_noverlapzTestWelch.test_bad_noverlap�s*���j�%���!���a���A�F�F�F�F�Fr/c�f�ttttjd��dd���dS�N�r�rW)r�r�)rYrZrr#r&r[s r-�test_nfft_too_shortzTestWelch.test_nfft_too_short�s)���j�%������1�a�H�H�H�H�H�Hr/c�B�tjdd��}d|d<d|d<t|d���\}}t|tjddd����tjgd	�d��}t||d
d
���t
|j|jk��dS�Nrr*rrr!r�rr�r�r�r�)r#r$rrr%r�rrJr's     r-r�z$TestWelch.test_real_onesided_even_32�s����H�R�������!����!���Q��"�"�"���1���2�;�q�#�q�1�1�2�2�2��H�"�"�"�#&�
(�
(����1�4�d�3�3�3�3����1�7�"�#�#�#�#�#r/c�D�tjdd��}d|d<d|d<t|d���\}}t|tjd��d	z��tjgd
�d��}t||dd���t
|j|jk��dS�
Nrr*rrr!rr�r�r�)g��x:�?gyѲI��?r�g�w�0��?r�r�r�)r#r$rrr8r�rrJr's     r-r�z#TestWelch.test_real_onesided_odd_32�s����H�R�������!����!���Q��"�"�"���1���2�9�S�>�>�#�-�.�.�.��H�"�"�"�#&�
(�
(����1�4�d�3�3�3�3����1�7�"�#�#�#�#�#r/c�8�tjdd��}d|d<d|d<t|dd���\}}t|t	dd����tjgd	�d��}t||d
d
���t
|j|jk��dS�Nrr*rrr!Fr�r=r�r�r��r#r$rrrr�rrJr's     r-r�zTestWelch.test_real_twosided_32�s����H�R�������!����!���Q��5�9�9�9���1���7�1�c�?�?�+�+�+��H�"�"�"�#&�
(�
(��	��1�4�d�3�3�3�3����1�7�"�#�#�#�#�#r/c�Z�tjdd��}d|d<d|d<t|dd���\}}t|t	dd����tjgd	�d
��}t||dd���t
|j|jkd
|j�d|j����dS�Nrr�rRrr!Fr�r=)g�%�����?�A�2�q�?�d�^��?r;g��~��?r;r;r:r*r�r�zdtype mismatch, z, r7r's     r-r�zTestWelch.test_complex_32�s����H�R�������!����!���Q��5�9�9�9���1���7�1�c�?�?�+�+�+��H�F�F�F�GJ�
L�
L����1�4�d�3�3�3�3����1�7�"�"�,-�G�G�G�Q�W�W�=�	?�	?�	?�	?�	?r/c��tjd��}d}t|d��d|dzdz�}|dxxdzcc<t|d|���\}}t|d	|���\}}t	||��t	||��d
}t|d��d|dzdz�}t|d|���\}}t|d	|���\}}t	||��t	||��dS�Nr/�r=rbrrr��r�r�re�)r#r$rrr)r(r)r�r*�fodd�_�fevens       r-�test_padded_freqszTestWelch.test_padded_freqs�s���H�R�L�L�����D�#���z��a���	�z�*��	�"�����������1�4�0�0�0���a���A�D�1�1�1���q���4� � � ���5�!�!�!����D�#���~����A�
�~�.����1�4�0�0�0���a���A�D�1�1�1���q���4� � � ���5�!�!�!�!�!r/c	��d}d}t|dz��}d}t||z|z��}tj|��|z}|tjdtjz|z|z��z}dD]�}t||||d���\}	}
t||||d	���\}}t
|
||dzd
z��t
tjtj||����|tjd��zdzd�����dS)
Nr`g��@rc�,rb)rv�bartlett)�tukey皙�����?�flattoprB)�fsr�r�rDrEr g����MbP?)r�)	rKr#r8�sin�pirr�sqrt�trapz)
r(�ArKr��fsig�ii�ttr)r�rB�p_spec�freq�p_denss
             r-�test_window_correctionz TestWelch.test_window_correction�s0����
���b�"�f�+�+����
��g��r�!�
"�
"��
�Y�r�]�]�2�
��
�b�f�Q�r�u�W�T�\�"�_�%�%�%��E�
	'�
	'�F��a�B���&0�2�2�2�I�A�v� ��r�7�6�)2�4�4�4�L�D�&�
�F�2�J��1��S��1�1�1��B�G�B�H�V�T�$:�$:�;�;�Q�r�w�q�z�z�\�!�^�!%�
'�
'�
'�
'�
'�
	'�
	'r/c�
�tj�d��tj�d��}t	|��\}}td��D]�}dgdz}d||<|�|��}t	||���\}}t	|||jz
���\}}t||�	��|���t||�	��||jz
�����dS)N���r�rrrq��err_msg)
r#�random�seed�randnr�rangerh�ndimr�squeeze)	r(�x_flatrB�p_flat�a�newshaper)�p_plus�p_minuss	         r-�test_axis_rollingzTestWelch.test_axis_rollings���
�	���t���������&�&���&�M�M�	��6��q���		F�		F�A��t�A�v�H��H�Q�K����x�(�(�A��a�a�(�(�(�I�A�v��q�q���x�0�0�0�J�A�w������!1�!1�1�=�=�=�=������!2�!2�A�a�f�H�E�E�E�E�E�		F�		Fr/c�B�tjd��}d|d<d|d<t|dd���\}}t|tjddd����tjgd	���}t||d
d
���t
tt|dd���dS)
Nrrrr!�median)r��averagerr�)rIg�������?�g&E� 9rmr�r�zunrecognised-average)r#r$rrr%r�rYrZr's     r-�test_averagezTestWelch.test_averages����H�R�L�L����!����!���Q��8�4�4�4���1���2�;�q�#�q�1�1�2�2�2��H�6�6�6�7�7����1�4�d�3�3�3�3��j�%��A�4�	6�	6�	6�	6�	6�	6r/N)#r�r�r�r.r9r@rGr�r�rPrUr\r�r�rrrrnrtr~r�r�rr r(r,r0r�r�r�r�rDrWrirnr�r/r-r�r��s������4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�0�0�0�9�9�9�
,�,�,�9�9�9�9�9�9�9�9�9�J�J�J�>�>�>�1�1�1�"/�/�/�/�/�/�
 �
 �
 �3�3�3�
*�*�*�G�G�G�I�I�I�	$�	$�	$�	$�	$�	$�
$�
$�
$�
?�
?�
?�"�"�"�$'�'�'�,F�F�F�"
6�
6�
6�
6�
6r/r�c���eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!S)"�TestCSDc�,�tjd��}tjd��}tjddd��}tjdtj���}t	||d���\}}t||��t||��dS)Nr!r/rrr+rIr��r#r$r%rTrr�r(r)�yr*�cr��c1s       r-�test_pad_shorter_xzTestCSD.test_pad_shorter_x&s����H�Q�K�K���H�R�L�L���K��3��"�"���H�Q�R�]�+�+�+���Q��2�&�&�&���B���2������2�����r/c�,�tjd��}tjd��}tjddd��}tjdtj���}t	||d���\}}t||��t||��dS)Nr/r!rrr+rIr�rrrss       r-�test_pad_shorter_yzTestCSD.test_pad_shorter_y1s����H�R�L�L���H�Q�K�K���K��3��"�"���H�Q�R�]�+�+�+���Q��2�&�&�&���B���2������2�����r/c��tjd��}d|d<d|d<t||d���\}}t|tjddd����tjgd���}t||d	d	�
��dSr��r#r$rrr%r�r's     r-r.zTestCSD.test_real_onesided_even<s����H�R�L�L����!����!���1�a��#�#�#���1���2�;�q�#�q�1�1�2�2�2��H�"�"�"�
#�
#����1�4�d�3�3�3�3�3�3r/c��tjd��}d|d<d|d<t||d���\}}t|tjd��dz��tjgd	���}t||d
d
���dSr�)r#r$rrr8r�r's     r-r9zTestCSD.test_real_onesided_oddFs����H�R�L�L����!����!���1�a��#�#�#���1���2�9�S�>�>�#�-�.�.�.��H�"�"�"�
#�
#����1�4�d�3�3�3�3�3�3r/c��tjd��}d|d<d|d<t||dd���\}}t|t	dd����tjgd���}t||d	d	�
��dSr�)r#r$rrrr�r's     r-r@zTestCSD.test_real_twosidedPs����H�R�L�L����!����!���1�a��E�:�:�:���1���7�1�c�?�?�+�+�+��H�F�F�F�
G�
G����1�4�d�3�3�3�3�3�3r/c��tjd��}d|d<d|d<t||dd���\}}t|tjddd����tjgd	���}t||d
d
���dSr�r{r's     r-rGzTestCSD.test_real_spectrumZs����H�R�L�L����!����!���1�a��J�7�7�7���1���2�;�q�#�q�1�1�2�2�2��H�"�"�"�
#�
#����1�4�d�3�3�3�3�3�3r/c��tjdt���}d|d<d|d<t||d���\}}t	|tjddd����tjgd	���}t	||d
d
���dSr�)r#r$rKrrr%r�r's     r-r�z"TestCSD.test_integer_onesided_evends����H�R�s�#�#�#����!����!���1�a��#�#�#���1���2�;�q�#�q�1�1�2�2�2��H�"�"�"�
#�
#����1�4�d�3�3�3�3�3�3r/c��tjdt���}d|d<d|d<t||d���\}}t	|tjd��d	z��tjgd
���}t	||dd���dSr�)r#r$rKrrr8r�r's     r-r�z!TestCSD.test_integer_onesided_oddns����H�R�s�#�#�#����!����!���1�a��#�#�#���1���2�9�S�>�>�#�-�.�.�.��H�"�"�"�
#�
#����1�4�d�3�3�3�3�3�3r/c�
�tjdt���}d|d<d|d<t||dd���\}}t	|tdd����tjgd	���}t	||d
d
���dSr�)r#r$rKrrrr�r's     r-rPzTestCSD.test_integer_twosidedxs����H�R�s�#�#�#����!����!���1�a��E�:�:�:���1���7�1�c�?�?�+�+�+��H�F�F�F�
G�
G����1�4�d�3�3�3�3�3�3r/c��tjdtj��}d|d<d|d<t||dd���\}}t	|tdd����tjgd���}t	||d	d	�
��dSr�)r#r$rTrrrr�r's     r-rUzTestCSD.test_complex�s����H�R���'�'����!����!���1�a��E�:�:�:���1���7�1�c�?�?�+�+�+��H�F�F�F�
G�
G����1�4�d�3�3�3�3�3�3r/c	��ttttjdtj��tjdtj��dd���dSr�)rYrZrr#r$rTr&r[s r-r\zTestCSD.test_unk_scaling�sR���j�#�r�x��2�=�'A�'A��g�a���/�/���	K�	K�	K�	K�	K�	Kr/c��tjdtj���dz}t||dd���\}}t	|tj|��d���dSr��r#r8rgrrr�r�s    r-r�zTestCSD.test_detrend_linear�s\���I�b��
�+�+�+�d�2���1�a��X�6�6�6���1���2�=��+�+�%�8�8�8�8�8�8r/c���tjdtj���dz}t||dd���\}}t||dd����\}}t	||d���t	||d���dS)	NrcrIr�Fr�c��|Sr�r�r�s r-r�z,TestCSD.test_no_detrending.<locals>.<lambda>�s���r/r5r6)r#r8rgrrr�s      r-r�zTestCSD.test_no_detrending�s����I�b��
�+�+�+�d�2���Q��2�u�5�5�5���B��Q��2�{�{�;�;�;���B���B�U�+�+�+�+���B�U�+�+�+�+�+�+r/c���tjdtj���dz}t||dd����\}}t	|tj|��d���dS)NrcrIr�c�.�tj|d���Sr�r�r�s r-r�z/TestCSD.test_detrend_external.<locals>.<lambda>����v�~�c��'D�'D�'D�r/r�r5r6r�r�s    r-rzTestCSD.test_detrend_external�si���I�b��
�+�+�+�d�2���1�a��D�D�F�F�F���1���2�=��+�+�%�8�8�8�8�8�8r/c���tjdtj���dz}|�d��}t	||dd����\}}t|tj|��d�	��dS)
NrrIr�rrcc�.�tj|d���Sr�r�r�s r-r�z5TestCSD.test_detrend_external_nd_m1.<locals>.<lambda>�r�r/r�r5r6)r#r8rgrhrrr�r�s    r-rz#TestCSD.test_detrend_external_nd_m1�sz���I�b��
�+�+�+�d�2��
�I�I�h�����1�a��D�D�F�F�F���1���2�=��+�+�%�8�8�8�8�8�8r/c��tjdtj���dz}|�d��}tj|dd��}t||ddd��	��\}}t
|tj|��d
���dS)Nr`rIr�rarbrrcc�0�tj|dd���Srr�r�s r-r�z4TestCSD.test_detrend_external_nd_0.<locals>.<lambda>�s��v�~�c���'L�'L�'L�r/r	r5r6)r#r8rgrhr
rrr�r�s    r-rz"TestCSD.test_detrend_external_nd_0�s����I�b��
�+�+�+�d�2��
�I�I�h�����K��1�a� � ���1�a��!�L�L�N�N�N���1���2�=��+�+�%�8�8�8�8�8�8r/c���tjdtj���dz}|�d��}t	||d���\}}t|jd��t|dddd�f|d	ddd�fd
d
���t	|dddd�f|dddd�fd���\}}t|tjdd�f|d	dd�fd
d
���dSr
)	r#r8rgrhrrrirrjrks      r-rnzTestCSD.test_nd_axis_m1�s����I�b��
�+�+�+�d�2��
�I�I�h�����1�a��$�$�$���1��1�7�I�.�.�.���!�A�a�a�a�%��!�A�a����E�(��U�C�C�C�C��Q�q��1�1�1�u�X�q��1�Q�Q�Q��x��4�4�4���B���2�:�a�a�a�<�(�!�A�a�a�a�C�&�u�5�I�I�I�I�I�Ir/c��tjdtj���dz}|�d��}t	||dd���\}}t|jd��t|dd�ddf|dd�d	dfd
d
���t	|dd�ddf|dd�ddfd���\}}t||dd�d	dfd
d
���dSr)r#r8rgrhrrrirrks      r-rtzTestCSD.test_nd_axis_0�s����I�b��
�+�+�+�d�2��
�I�I�h�����1�a��!�,�,�,���1��1�7�G�,�,�,���!�!�!�A�a�%��!�A�A�A�a��E�(��U�C�C�C�C��Q�q�q�q��1�u�X�q����1�Q��x��4�4�4���B���A�a�a�a��!�e�H�5�u�=�=�=�=�=�=r/c	��tjd��}d|d<d|d<t||ddd��\}}tjdd��}t||d|d���\}}t||��t||��t
|jd��t
|jd��ttt||d|d	���tjdd
��}ttt||d|d���dS)Nrrrr!rcrvr�rrrw)
r#r$rrrxrrrirYrZrys        r-r~zTestCSD.test_window_external�s���H�R�L�L����!����!���1�a��V�Q�'�'���1�����*�*���Q��2�s�D�1�1�1���B�&�q�"�-�-�-�&�q�"�-�-�-��2�8�T�*�*�*��2�8�T�*�*�*��j�#�q�!��#�s�	,�	,�	,�	,��#�F�B�/�/���j�#�q�!��'�4�	)�	)�	)�	)�	)�	)r/c��tgtjd����\}}t|jd��t|jd��ttjd��g��\}}t|jd��t|jd��dD]c}ttj|��tj|����\}}t|j|��t|j|���dttjd��tjd����\}}t|jd��t|jd��ttjd��tjd����\}}t|jd��t|jd��dS)Nrcr�r�)r�r)rr#r$rrir�r&r�s    r-r�zTestCSD.test_empty_input�sm���2�b�h�r�l�l�#�#���1��1�7�D�)�)�)��1�7�D�)�)�)��2�8�B�<�<��#�#���1��1�7�D�)�)�)��1�7�D�)�)�)�+�	/�	/�E��r�x���������8�8�D�A�q��q�w��.�.�.��q�w��.�.�.�.��2�7�2�;�;������0�0���1��1�7�E�*�*�*��1�7�E�*�*�*��2�8�E�?�?�B�G�B�K�K�0�0���1��1�7�E�*�*�*��1�7�E�*�*�*�*�*r/c�b�dD]e}ttj|��tj|��d���\}}t|j|��t|j|���fttjd��tjd��d���\}}t|jd��t|jd��ttjd��tjd��d���\}}t|jd��t|jd��dS)Nr�rrq)rcrcr�)rcrr)rcrr�)rr#r�rrir$r�s    r-r�z#TestCSD.test_empty_input_other_axis�s��%�	/�	/�E��r�x���������a�@�@�@�D�A�q��q�w��.�.�.��q�w��.�.�.�.��2�8�I�&�&����(:�(:��C�C�C���1��1�7�H�-�-�-��1�7�H�-�-�-��2�8�H�%�%�r�x�	�':�':��C�C�C���1��1�7�H�-�-�-��1�7�H�-�-�-�-�-r/c��tjd��}d|d<t��5}|�td��t||d���\}}t||dd���\}}ddd��n#1swxYwYt||d�	��\}}t
||��t
||��t
||��t
||��dSr)r#r$r	rrrrrs	         r-rzTestCSD.test_short_data�s���H�Q�K�K����!���
 �
 �	;�C��J�J�{�$h�i�i�i��q�!�F�+�+�+�D�A�q���A�f�c�:�:�:�F�B��	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;��Q��1�%�%�%���B���2������2������B������B�����s�AA;�;A?�A?c��ttttjd��tjd��dtjgd�����ttttjd��tjd��dtjd���d����dSr)	rYrZrr#r$r&r�r8rhr[s r-r zTestCSD.test_window_long_or_nds����j�#�r�x��{�{�B�G�A�J�J���h�{�{�{�+�+�	-�	-�	-��j�#�r�x��{�{�B�G�A�J�J���i��l�l�*�*�5�1�1�	3�	3�	3�	3�	3r/c��tjd��}d|ddd�<t||dd���\}}tjgd���}t	||d�	��dSr")r#r$rr�rr's     r-r(z TestCSD.test_nondefault_noverlapss���H�R�L�L����#�#�A�#���1�a��a�0�0�0���1��H����
�
����1�5�)�)�)�)�)�)r/c
��ttttjd��tjd��dddd��dSr*)rYrZrr#r$r&r[s r-r,zTestCSD.test_bad_noverlaps?���j�#�r�x��{�{�B�G�A�J�J��6���	�	�	�	�	r/c��ttttjd��tjd��dd���dSr.)rYrZrr#r&r$r[s r-r0zTestCSD.test_nfft_too_shorts@���j�#�r�w�r�{�{�B�H�R�L�L�q��	!�	!�	!�	!�	!�	!r/c�D�tjdd��}d|d<d|d<t||d���\}}t|tjddd����tjgd	�d��}t||d
d
���t
|j|jk��dSr2)r#r$rrr%r�rrJr's     r-r�z"TestCSD.test_real_onesided_even_32s����H�R�������!����!���1�a��#�#�#���1���2�;�q�#�q�1�1�2�2�2��H�"�"�"�#&�
(�
(����1�4�d�3�3�3�3����1�7�"�#�#�#�#�#r/c�F�tjdd��}d|d<d|d<t||d���\}}t|tjd��d	z��tjgd
�d��}t||dd���t
|j|jk��dSr4)r#r$rrr8r�rrJr's     r-r�z!TestCSD.test_real_onesided_odd_32)s����H�R�������!����!���1�a��#�#�#���1���2�9�S�>�>�#�-�.�.�.��H�"�"�"�#&�
(�
(����1�4�d�3�3�3�3����1�7�"�#�#�#�#�#r/c�:�tjdd��}d|d<d|d<t||dd���\}}t|t	dd����tjgd	�d��}t||d
d
���t
|j|jk��dSr6�r#r$rrrr�rrJr's     r-r�zTestCSD.test_real_twosided_324s����H�R�������!����!���1�a��E�:�:�:���1���7�1�c�?�?�+�+�+��H�"�"�"�#&�
(�
(��	��1�4�d�3�3�3�3����1�7�"�#�#�#�#�#r/c�\�tjdd��}d|d<d|d<t||dd���\}}t|t	dd����tjgd	�d
��}t||dd���t
|j|jkd
|j�d|j����dSr9r�r's     r-r�zTestCSD.test_complex_32@s����H�R�������!����!���1�a��E�:�:�:���1���7�1�c�?�?�+�+�+��H�F�F�F�GJ�
L�
L����1�4�d�3�3�3�3����1�7�"�"�,-�G�G�G�Q�W�W�=�	?�	?�	?�	?�	?r/c�&�tjd��}tjd��}d}t|d��d|dzdz�}|dxxdzcc<t	||d|���\}}t	||d	|���\}}t||��t||��d
}t|d��d|dzdz�}t	||d|���\}}t	||d	|���\}}t||��t||��dSr=)r#r$r&rrr)r(r)rtr�r*rArBrCs        r-rDzTestCSD.test_padded_freqsLs)���H�R�L�L���G�B�K�K�����D�#���z��a���	�z�*��	�"����������a��A�D�1�1�1���a��q�!�Q�T�2�2�2���q���4� � � ���5�!�!�!����D�#���~����A�
�~�.���a��A�D�1�1�1���a��q�!�Q�T�2�2�2���q���4� � � ���5�!�!�!�!�!r/c�d�tj�d��}|���}t	||ddd���\}}t	||ddd���\}}t||��t	||ddd���\}}t	||ddd���\}}t||��dS)Nr#r!�meanF)r�rlr<rk)r#r]r_�copyrr)r(r)rtrB�p_same�p_copieds      r-�test_copied_datazTestCSD.test_copied_data_s����I�O�O�B����
�F�F�H�H����1�a��(-�/�/�/�	��6��!�Q��6�*/�1�1�1���8����)�)�)���1�a��(-�/�/�/�	��6��!�Q��8�*/�1�1�1���8����)�)�)�)�)r/N)#r�r�r�rwryr.r9r@rGr�r�rPrUr\r�r�rrrrnrtr~r�r�rr r(r,r0r�r�r�r�rDr�r�r/r-rprp%s�������	�	�	�	�	�	�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�K�K�K�9�9�9�
,�,�,�9�9�9�9�9�9�9�9�9�J�J�J�>�>�>�)�)�)�"+�+�+�,.�.�.� � � � 3�3�3�*�*�*����!�!�!�	$�	$�	$�	$�	$�	$�
$�
$�
$�
?�
?�
?�"�"�"�&*�*�*�*�*r/rpc��eZdZd�Zd�ZdS)�
TestCoherencec�*�tj�d��}tj|��}tjddd��}tjd��}t
||d���\}}t||��t||��dS�Nr`rrrercr�)r#r]r_r�r%r&rr�r(r)rtr*�Cr��C1s       r-�test_identical_inputz"TestCoherence.test_identical_inputqs����I�O�O�B�����G�A�J�J���K��3��"�"���G�A�J�J���1�a��,�,�,���B���2������2�����r/c��tj�d��}|}tjddd��}tjd��}t||d���\}}t
||��t
||��dSr�)r#r]r_r%r&rrr�s       r-�test_phase_shifted_inputz&TestCoherence.test_phase_shifted_input|sz���I�O�O�B����
�B���K��3��"�"���G�A�J�J���1�a��,�,�,���B���2������2�����r/N)r�r�r�r�r�r�r/r-r�r�ps2������	�	�	�	�	�	�	�	r/r�c� �eZdZd�Zd�Zd�ZdS)�TestSpectrogramc��tj�d��}d}d}d}d}t|||||��\}}}t	|||||��\}	}
t||	��ttj|d���|
��dS)NrZr=�rHg�?rrbrrq)r#r]r_rrrr�)r(r)rKr�r�r%r*rB�P�fw�Pws           r-�test_average_all_segmentsz)TestSpectrogram.test_average_all_segments�s����I�O�O�D�!�!��
�� �������a��V�W�h�?�?���1�a��q�"�f�g�x�8�8���B���2���������+�+�+�R�0�0�0�0�0r/c���tj�d��}d}d}d}d}t|||||��\}}}t	jdd��}	t|||	dd���\}
}}t
|
jd��t
|jd��ttt|||	d	�
��t	jdd��}ttt|||d�
��dS)NrZr=r�rrbr$)r)r�Ir!r�i)
r#r]r_rrrxrrirYrZ)
r(r)rKr�r�r%r*rBr�rzr{�Per}s
             r-r~z$TestSpectrogram.test_window_external�s����I�O�O�D�!�!��
�� �������a��V�W�h�?�?���1�a�����4�4����2�s�D�1�E�E�E�	��A�r��2�8�T�*�*�*��2�8�V�,�,�,��j�+�q��#�q�	*�	*�	*�	*��#�O�T�:�:���j�+�q��'�4�	1�	1�	1�	1�	1�	1r/c��tj�d��}d}t||d���\}}}t	��5}|�td��t||dd���\}}}ddd��n#1swxYwYt||d�	��\}	}}
t||d�	��\}}}t||	��t||
��t||��t||��dS)
NrZr=r�r�zInperseg = 1025 is greater than input length  = 1024, using nperseg = 1024irrr�)r#r]r_rr	rrr)
r(r)rKr*rBr+rr�r�r�r��f3�p3s
             r-rzTestSpectrogram.test_short_data�sQ���I�O�O�D�!�!��
���a��N�;�;�;���1�a�
�
 �
 �	2�C��J�J�{�b�
d�
d�
d�#�A�r�.�,0�2�2�2�I�B��2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�
 ��2�s�3�3�3�	��A�r���2�t�4�4�4�	��A�r���2������2������B������B�����s�3B�B	�B	N)r�r�r�r�r~rr�r/r-r�r��sA������1�1�1�1�1�1�& � � � � r/r�c�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�TestLombscarglec�4�d}d}dtjz}d}d}d}tj�d��tj�|��}tjdtjzd	tjz|��||k}|tj||z|z��z}	tjdd	|��}
t||	|
��}|
d
|
dz
}t||
tj	|��z
|dzk��dS)
zgTest if frequency location of peak corresponds to frequency of
        generated input signal.
        r r=r�d���ffffff�?��#�{�G�z�?�$@rrN)
r#rMr]r^�randr%rLrr�argmax)
r(�ampl�w�phi�nin�noutr+�r�tr)r*r��deltas
             r-�test_frequencyzTestLombscargle.test_frequency�s�������B�E�k��������	�	���w�����I�N�N�3�����K��R�U�
�C���I�s�3�3�A��F�;��
�2�6�!�A�#��)�$�$�$��
�K��c�4�(�(��
��1�a� � ���!��q��t�����A�b�i��l�l�O�#�u�R�x�0�1�1�1�1�1r/c�B�d}d}dtjz}d}d}d}tj�d��tj�|��}tjdtjzd	tjz|��||k}|tj||z|z��z}	tjdd	|��}
t||	|
��}tjd
|z|j	dz��}ttj|��|d�
��dS)Nr r=rr�r�r�r�r�r�rWrrb��significant)r#rMr]r^r�r%rLrrNrir�max)r(r�r�r�r�r�r+r�r�r)r*�pgrams            r-�test_amplitudezTestLombscargle.test_amplitude�s��
�����B�E�k��������	�	���w�����I�N�N�3�����K��R�U�
�C���I�s�3�3�A��F�;��
�2�6�!�A�#��)�$�$�$��
�K��c�4�(�(���A�q�!�$�$�����E�	�A�G�A�J�.�/�/��	�B�F�5�M�M�4�Q�?�?�?�?�?�?r/c�.�d}d}dtjz}d}d}d}d}tj�d��tj�|��}tjd	tjzd
tjz|��||k}	|tj||	z|z��z|z}
tjd	d
|��}t|	|
|d���}t|	|
|
���z
|d
���}
t||
��dS)Nr r=rr�r�r�g333333�?r�r�r�T)�	precenterF)
r#rMr]r^r�r%rLrr�r)r(r�r�r�r�r�r+�offsetr�r�r)r*r��pgram2s              r-�test_precenterzTestLombscargle.test_precenter�s�������B�E�k����������	�	���w�����I�N�N�3�����K��R�U�
�C���I�s�3�3�A��F�;��
�2�6�!�A�#��)�$�$�$�v�-��
�K��c�4�(�(���A�q�!�t�4�4�4���Q��A�F�F�H�H��a�5�A�A�A��	��v�&�&�&�&�&r/c�p�d}d}dtjz}d}d}d}tj�d��tj�|��}tjdtjzd	tjz|��||k}|tj||z|z��z}	tjdd	|��}
t||	|
��}t||	|
d
���}t|dztj	|	|	��z|��ttj|��dd�
��dS)Nr r=rr�r�r�r�r�r�T)�	normalizerbr�)r#rMr]r^r�r%rLrr�dotrr�)
r(r�r�r�r�r�r+r�r�r)r*r�r�s
             r-�test_normalizezTestLombscargle.test_normalizes�������B�E�k��������	�	���w�����I�N�N�3�����K��R�U�
�C���I�s�3�3�A��F�;��
�2�6�!�A�#��)�$�$�$��
�K��c�4�(�(���A�q�!�$�$���Q��1��5�5�5��	���	�B�F�1�a�L�L�0�&�9�9�9��B�F�6�N�N�C�Q�?�?�?�?�?�?r/c���tjddd��}tjddd��}tjddd��}ttt|||��dS)Nrrrbr�)r#r%rYrZr�r(r�r)r*s    r-�test_wrong_shapez TestLombscargle.test_wrong_shape:sW���K��1�a� � ���K��1�a� � ���K��1�a� � ���j�+�q�!�Q�7�7�7�7�7r/c��tjd��}tjd��}tjd��}ttt|||��dS)Nr)r#r$rY�ZeroDivisionErrorrr�s    r-�test_zero_divisionz"TestLombscargle.test_zero_division@sF���H�Q�K�K���H�Q�K�K���H�Q�K�K���'��a��A�>�>�>�>�>r/c���tjdddd���}tjd|z��}tjdddd���d	z}t|||d
ztjz��dS)Nrrcr�F)�endpointrW�2i�rIrb)r#r%rLrrMr�s    r-�test_lombscargle_atan_vs_atan2z.TestLombscargle.test_lombscargle_atan_vs_atan2Fsl��
�K��2�t�e�4�4�4���F�1�Q�3�K�K���K��2�s�U�3�3�3�c�9���A�q�!�A�#�b�e�)�$�$�$�$�$r/N)
r�r�r�r�r�r�r�r�r�r�r�r/r-r�r��s�������2�2�2�@@�@�@�B'�'�'�<@�@�@�<8�8�8�?�?�?�%�%�%�%�%r/r�c���eZdZd�Zd�Zd�Zd�Zd�Zej	�
dddg��d	���Zd
�Zd�Z
d�Zej	�
dddg��d
���Zd�Zd�Zd�Zd�Zd�ZdS)�TestSTFTc���d�}|d��5tddd��ddd��n#1swxYwY|d��5tddd��ddd��n#1swxYwY|d	��5ttjd
��dd��ddd��n#1swxYwY|d��5ttjd��dd��ddd��n#1swxYwY|d��5tddd��ddd��n#1swxYwY|d��5tddd��ddd��n#1swxYwY|d	��5ttjd
��dd��ddd��n#1swxYwY|d��5ttjd��dd��ddd��n#1swxYwY|d
��5tddd��ddd��n#1swxYwYtjd��}t|��d}|d	��5t|tjd
�����ddd��n#1swxYwY|d��5t|tjd��d���ddd��n#1swxYwY|d��5t|d���ddd��n#1swxYwY|d��5t|dd���ddd��n#1swxYwY|d��5t|dd���ddd��n#1swxYwY|d��5t
|��ddd��n#1swxYwY|d	��5t
|tjd
�����ddd��n#1swxYwY|d��5t
|tjd��d���ddd��n#1swxYwY|d��5t
|d���ddd��n#1swxYwY|d��5t
|dd���ddd��n#1swxYwY|d��5t
|dd���ddd��n#1swxYwYtjtd���5t
|ddd� ��ddd��n#1swxYwY|d!��5t
|dd�"��ddd��n#1swxYwY|d#��5t||d$�%��ddd��n#1swxYwY|d&��5t|dd'�|d'd�d(�%��ddd��n#1swxYwY|d)��5t||d$�*��ddd��n#1swxYwYd+}|d,|�d-���5t||�.��ddd��n#1swxYwY|d,|�d-���5t
||�.��ddd��dS#1swxYwYdS)/Nc�8�tjt|���S)z�Assert for a ValueError matching regexp `match`.

            This little wrapper allows a more concise code layout.
            r�)r�r
rZr�s r-�chk_VEz.TestSTFT.test_input_validation.<locals>.chk_VERs��
�=��5�9�9�9�9r/z"nperseg must be a positive integerrvi����rz#noverlap must be less than nperseg.rcr`zwindow must be 1-D)rbrbz"window must have length of npersegz"noverlap must be less than npersegz&noverlap must be a nonnegative integerr#i��rZrbr�z>value specified for nperseg is different from length of windowrri���r�r$z.nfft must be greater than or equal to nperseg.r!r?zInput stft must be at least 2d!zwindow must have length of 256z1NOLA condition failed, STFT may not be invertibler��r�r%r�z/Must specify differing time and frequency axes!��	time_axis�	freq_axisz=Unknown value for mode foo, must be one of: \{'psd', 'stft'\}rX)�modez'x and y must be equal if mode is 'stft'�rz[Unknown boundary option 'foo', must be one of: \['even', 'odd', 'constant', 'zeros', None\])�boundary�	not_validzParameter scaling=z not in \['spectrum', 'psd'\]!rC)rr#r&rr$rrr��warnsrr)r(r�r)�zrDs     r-�test_input_validationzTestSTFT.test_input_validationPs�
��	:�	:�	:��V�8�
9�
9�	'�	'��v�s�A�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�
�V�9�
:�
:�	'�	'��v�r�2�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�
�V�(�
)�
)�	/�	/��r�w�v����A�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�
�V�8�
9�
9�	+�	+��r�w�r�{�{�B��*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+��V�8�
9�
9�	'�	'��v�s�A�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�
�V�8�
9�
9�	'�	'��v�r�2�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�
�V�(�
)�
)�	/�	/��r�w�v����A�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�
�V�8�
9�
9�	+�	+��r�w�r�{�{�B��*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�
�V�<�
=�
=�	(�	(��v�r�3�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�
�H�T�N�N����G�G�A�J���V�(�
)�
)�	,�	,���2�7�6�?�?�+�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�
�V�,�-�-�	5�	5���2�7�2�;�;��4�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5��V�8�
9�
9�	"�	"���D�!�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�
�V�9�
:�
:�	0�	0���C�$�/�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�
�V�D�
E�
E�	)�	)���C�a�(�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)��V�5�
6�
6�	�	��!�H�H�H�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�V�(�
)�
)�	-�	-��!�B�G�F�O�O�,�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�
�V�4�
5�
5�	6�	6��!�B�G�B�K�K��5�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�
�V�8�
9�
9�	#�	#��!�T�"�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�
�V�9�
:�
:�	1�	1��!�S�4�0�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�
�V�D�
E�
E�	*�	*��!�S�q�)�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�
�\�+�.7�8�8�8�	=�	=��!�S�1�V�<�<�<�<�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=��V�E�
F�
F�	/�	/��!�q�A�.�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/��V�)�*�*�	/�	/��Q���.�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/��V�=�
>�
>�	<�	<��Q�t��t�W�a����g�F�;�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�
�V�D�E�E�	3�	3��Q��E�2�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3���
�V�J�'�J�J�J�
K�
K�	%�	%���G�$�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�
�V�J�'�J�J�J�
K�
K�	&�	&��!�W�%�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&s��-�1�1�A!�!A%�(A%�7$B'�'B+�.B+�=$C-�-C1�4C1�D!�!D%�(D%�7E�E�E�+$F�F�"F�1$G!�!G%�(G%�7H�H�H�$J�J�J�%K�K�K�!K?�?L�L�L4�4L8�;L8�
M)�)M-�0M-�?N�N�"N�1$O!�!O%�(O%�7%P(�(P,�/P,�>Q�Q �#Q �2R�R�R�'S�S
�
S
�,T�T�T�"U�U�U�U6�6U:�=U:�#V;�;V?�V?�W0�0W4�7W4�X*�*X.�1X.�Y#�#Y'�*Y'c�^�gd�}|D]%}dj|�}tdt|�|����&dS)N)��boxcarrcr�r�rcr�rG�3��rvr��rvr���blackmanrF����rHrrr#�rvr��
{0}, {1}, {2}Tr[)�formatrr)r(�settings�setting�msgs    r-�test_check_COLAzTestSTFT.test_check_COLA�s^��	�	�	�� �	B�	B�G�(�/�(�'�2�C���z�7�3�S�A�A�A�A�A�	B�	Br/c�.�gd�}|D]%}dj|�}tdt|�|����&tjd��}d|ddd�<|t|��t|��dzfdg}|D]%}dj|�}td	t|�|����&dS)
N)r�r�)r�rcr+r�)rGr�rcrr)rvr�%r)rrF�{r)r	r�&r
)rvr�'rTr[rrrb)rvr#rF)r
rrr#r&�len)r(�
settings_passrr�w_fail�
settings_fails      r-�test_check_NOLAzTestSTFT.test_check_NOLA�s������
� %�	B�	B�G�(�/�(�'�2�C���z�7�3�S�A�A�A�A�A���������s�s��s���S��[�[�#�f�+�+��*:�;�#�
�
�%�	C�	C�G�(�/�(�'�2�C���
�G� 4�c�B�B�B�B�B�	C�	Cr/c
��tj�d��tj�d��}d}d}d}d}t	|||||ddd���\}}}t|||||dd	d�
��\}	}
t
||	��t
tjtj|��dzd�
��|
��dS)NrYrZr=rvrr!F)�paddedr<r�rB)r<rDr�rbrrq)	r#r]r^r_rrrr��abs)r(r)rKr�r�r%r*rB�Zr�r�s           r-r�z"TestSTFT.test_average_all_segments�s���
�	���t�����I�O�O�D�!�!��
��������
�q�"�f�g�x��',�t�=�=�=���1�a��q�"�f�g�x��)�5�:�:�:���B�	��2���������q�	�	�1��2�6�6�6��;�;�;�;�;r/c	�R�tj�d��tj�d��}d}d}d}d}t	|||||��\}}}t	|�d��||||d�	��\}	}
}t
|||||��\}}
t
|j||||dd
���\}}t||	��t||
��t||��t||dd�dddd�f��t|
|dd�ddf��dS)NrYrZr=rvrr!)rrrrrqrr�)	r#r]r^r_rrhr�Tr)r(r)rKr�r�r%r��t1�Z1r��t2�Z2�t3�x1�t4�x2s                r-�test_permute_axeszTestSTFT.test_permute_axes�sI��
�	���t�����I�O�O�D�!�!��
���������!�R���(�;�;�
��B���!�)�)�J�/�/��V�W�h� �"�"�"�
��B���r�2�v�w��9�9���B��r�t�R���(�a�!#�%�%�%���B�	��B������B������B������B�q�q�q�!�Q����z�N�+�+�+���B�q�q�q�!�Q�w�K�(�(�(�(�(r/rDrB�psdc
��tj�d��gd�}|D]�\}}}}tj|��}dtj�|j��z}t
||||dd|���\}	}	}
t|
||||���\}}d�||��}
t|||
���t|||
�����dS)	NrY��r�r�rcr�r�r�rcr)rG�er�r�rvrZrr)r	�rr#)rvrZrrrcF)r�r%r�r�rrD)r�r%r�rD�{0}, {1}r[�
r#r]r^r8r_�sizerrr
r)r(rDrr��Nr�r%r�r)rB�zz�tr�xrrs              r-�test_roundtrip_realzTestSTFT.test_roundtrip_real�s��
�	���t��������-5�
	0�
	0�(�F�A�w���	�!���A��2�9�?�?�1�6�*�*�*�A��A�w��#)�4��$+�-�-�-�H�A�q�"��2�w��"(�'�;�;�;�F�B���#�#�F�H�5�5�C��A�r�3�/�/�/�/��A�r�3�/�/�/�/�/�
	0�
	0r/c
�R�tj�d��tjd��}d|ddd�<|dt	|��t	|��dzfdg}|D�]B\}}}}d�||||��}t
|||��r
J|���tj|��}dtj�|j	��z}	t|	|||dd	d
���\}
}
}tjtd�
��5t||||d	���\}}
ddd��n#1swxYwYtj||dt	|�����s
J|���tj|	|
dt	|	�����r
J|�����DdS)NrYrrrbr)rvrr#rz{0}, {1}, {2}, {3}rcTr$�r�r%r�r�rr��NOLAr��r�r%r�r�)r#r]r^r&rr
rr8r_r5rr�r�rr�allclose)r(rrr�r6r�r%rr�r)rBr7r8r9s              r-�test_roundtrip_not_nolaz TestSTFT.test_roundtrip_not_nolas���
�	���t������������s�s��s���S�#�f�+�+�s�6�{�{�a�/?�@�(�
��
-5�	8�	8�(�F�A�w��&�-�-�f�a��(�K�K�C�!�&�'�8�<�<�A�A�c�A�A�A��	�!���A��R�Y�_�_�Q�V�,�,�,�A��A�w��#)�4��%,�.�.�.�H�A�q�"���k��8�8�8�
=�
=��r�7�X�&,�t�=�=�=���B�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=��;�q�"�W�c�!�f�f�W�+�.�.�3�3��3�3�3��{�1�b��#�a�&�&��k�2�2�7�7�C�7�7�7�7�	8�	8s�D2�2D6	�9D6	c
��tj�d��gd�}|D�]%\}}}}d�|||��}t	|||��s
J|���t|||��r
J|���tj|��}dtj�|j��z}t||||ddd���\}	}	}
t|
|||d���\}}d	�||��}t||dt|���|�
��t||dt|���|�
����'dS)NrY))r�r�rcr�)rGr0r�r)rvrZr�)r	r2r�)rvrZrr�rrcTr$r<r>r3r[)
r#r]r^r
rrr8r_r5rrrr)
r(rr�r6r�r%rr�r)rBr7r8r9s
             r-�test_roundtrip_nola_not_colaz%TestSTFT.test_roundtrip_nola_not_cola3sx��
�	���t��������-5�	9�	9�(�F�A�w��!�(�(���(�C�C�C��f�g�x�8�8�=�=�#�=�=�=�!�&�'�8�<�<�A�A�c�A�A�A��	�!���A��R�Y�_�_�Q�V�,�,�,�A��A�w��#)�4��%,�.�.�.�H�A�q�"��2�w��"(�4�9�9�9�F�B���#�#�F�H�5�5�C��A�r�'�3�q�6�6�'�{�C�8�8�8�8��A�r�'�3�q�6�6�'�{�C�8�8�8�8�8�#	9�	9r/c	�"�tj�d��dg}|D]�\}}}}tj|��}dtj�|j��z}|�tj��}t||||dd���\}}}	t|	|||���\}
}d�
||��}t|||���t|||d	d
���t|j
|j
k����dS)NrYr1rcF�r�r%r�r�rr�r3r[g-C��6?g�h㈵��>)r\r�r7)r#r]r^r8r_r5�astype�float32rrr
rrrJ�
r(rr�r6r�r%r�r)rBr7r8r9rs
             r-�test_roundtrip_float32zTestSTFT.test_roundtrip_float32Qs&��
�	���t����,�-��,4�	)�	)�(�F�A�w���	�!���A��2�9�?�?�1�6�*�*�*�A������$�$�A��A�w��#)�4��G�G�G�H�A�q�"��2�w��"(�*�*�*�F�B���#�#�F�H�5�5�C��A�q�#�.�.�.�.��A�r�3�T��E�E�E�E��A�G�r�x�'�(�(�(�(�	)�	)r/c�`�tj�d��gd�}|D]�\}}}}tj|��}dtj�|j��zdtj�|j��zz}t
||||ddd|���\}	}	}
t|
|||d|���\}}d�|||��}
t|||
�	��t|||
�	����t��5}|�td
��t
||||ddd|���\}	}	}
ddd��n#1swxYwYt|
|||d|���\}}d�|||��}
t|||
�	��t|||
�	��dS)NrYr-rcy$@F)r�r%r�r�rr<rD)r�r%r��input_onesidedrDrr[z9Input data is complex, switching to return_onesided=FalseT)
r#r]r^r8r_r5rrr
rr	rr)r(rDrr�r6r�r%r�r)rBr7r8r9rrs               r-�test_roundtrip_complexzTestSTFT.test_roundtrip_complexfsO��
�	���t��������-5�	0�	0�(�F�A�w���	�!���A��2�9�?�?�1�6�*�*�*�S�������1H�1H�-H�H�A��A�w��#)�4��,1�7�D�D�D�H�A�q�"��2�w��"(��#*�,�,�,�F�B��"�(�(���(�C�C�C��A�r�3�/�/�/�/��A�r�3�/�/�/�/�/��
 �
 �	C�C��J�J�{�R�
T�
T�
T��A�w��#)�4��,0�'�C�C�C�H�A�q�"�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C��r�7�X�$�U�G�M�M�M���B��$�$�V�W�h�?�?����2�s�+�+�+�+���2�s�+�+�+�+�+�+s�
7E�E�Ec��tj�d��ddg}|D]�\}}}}tj|��}dtj�|j��z}t
||||ddd���\}}}	t|	||d���\}}
d	D]m}t
||||dd|���\}}}t|||d���\}}
d
�|||��}t||
|���t||
|����n��dS)NrYr.r/rcTr<F)r%r�r�)�even�odd�constantr$rr[r4)r(rr�r6r�r%r�r)rBr7r9r��zz_ext�xr_extrs               r-�!test_roundtrip_boundary_extensionz*TestSTFT.test_roundtrip_boundary_extension�s]��
�	���t����+�*���
-5�	8�	8�(�F�A�w���	�!���A��2�9�?�?�1�6�*�*�*�A��A�w��"(�$�t�$(�*�*�*�H�A�q�"��"�x���O�O�O�E�A�r�@�

8�

8��#�A�w��'-�t�D�)1� 3� 3� 3���1�f�"�&�8�F�)-�/�/�/�	��6�&�,�,�V�X�x�H�H����2�s�3�3�3�3���6�3�7�7�7�7�7�

8�	8�	8r/c	���tj�d��ddg}|D]�\}}}}tj|��}dtj�|j��z}t
||||dd���\}}}	t|	||���\}
}d�||��}t||
d|j�|�	��t||d|j�|�	����dS)
NrY)r�r0rcr)rvr�rrrcTrF)r%r�r3r[r4rIs
             r-�test_roundtrip_padded_signalz%TestSTFT.test_roundtrip_padded_signal�s
��
�	���t����+�,���
-5�	9�	9�(�F�A�w���	�!���A��2�9�?�?�1�6�*�*�*�A��A�w��#)�4��F�F�F�H�A�q�"��2���@�@�@�F�B���#�#�F�H�5�5�C��A�r�'�1�6�'�{�C�8�8�8�8��A�r�'�1�6�'�{�C�8�8�8�8�8�	9�	9r/c��tj�d��gd�}|D�]\}}}}}tj|��}dtj�|j��z}|tjdtjzdz��z}	t|||||dd���\}
}
}t|	||||ddd�	��\}
}
}t|||||�
��\}
}t|||||d���\}
}d�
||��}t||
|�
��t|||�
��t|	||�
����dS)NrY))rvrZrrr�)rvrZrri�)r�r�rcr�!)r	r2rr#rZrcy�?rWT)r�r%r�r�r�rF)r�r%r�r�r�rr<)r�r%r�r�)r�r%r�r�rLr3r[)r#r]r^r8r_r5�exprMrrr
r)r(rr�r6r�r%r�r�r)�xcrBr��zcr8r9�xcrrs                 r-�test_roundtrip_padded_FFTz"TestSTFT.test_roundtrip_padded_FFT�s���
�	���t��������3;�	2�	2�.�F�A�w��$��	�!���A��2�9�?�?�1�6�*�*�*�A��2�6�"�R�U�(�1�*�%�%�%�B��1�g��t�#)�4��F�F�F�G�A�q�!��B��(��#)�4��,1�3�3�3�H�A�q�"��1�g��t�"(�*�*�*�F�B���B��(��#)�%�A�A�A�G�B���#�#�F�H�5�5�C��A�r�3�/�/�/�/��A�r�3�/�/�/�/��B��S�1�1�1�1�1�/	2�	2r/c��tj�d��tj�d��}t	|��\}}}td��D]�}dgdz}d||<|�|��}t	||���\}}}t	|||jz
���\}}}t||�	��|���t||�	��||jz
�����t|jdd�	��\}}	t|jd
d�	��\}}
t||	d���t||
d���dS)
NrYrZr�rrrqr[���r�rzistft transpose minuszistft transpose plus)
r#r]r^r_rr`rhrarrbrr!r)r(rcrB�z_flatrerfr)�z_plus�z_minus�
x_transpose_m�
x_transpose_ps           r-rizTestSTFT.test_axis_rolling�sZ��
�	���t���������&�&���F�|�|���1�f��q���		F�		F�A��t�A�v�H��H�Q�K����x�(�(�A����?�?�?�L�A�q�&� ���1�6��2�2�2�M�A�q�'������!1�!1�1�=�=�=�=������!2�!2�A�a�f�H�E�E�E�E�E�
!���R�2�F�F�F���=� ���Q�!�D�D�D���=���
�7N�O�O�O�O���
�7M�N�N�N�N�N�Nr/c��tjdt���}d|d<tj�|��}t|dz��t
|��z}t|dd���d}t|d	d���d
}t||��tt|ddd
�f��d��tt|ddd
�f��d
��tt|ddd
�f��d��d|dd�dd
�f<t|dd�dd
�fdtj|j��j
���t|ddd���d}tj|jdz|jdzzd���|jdz}t||��t|dd	d���d
}t||��t|d	dd���d}tj|ddd
�dd�f��}	t|dd�dd�f|��t|dd�dd�f|	��tj|jdz|jdzzd���tj|	jdz|	jdzzd���z}
|
|jd|	jdzz}t||��t|d	d	d���d
}t||��dS)z&Verify behavior of scaling parameter. irIrZrrbrOrB)r�rDTr�?Nrrr#�Ar�Br6Fr+)r<r�rDrq)rLr�rDr_�)r#r$�complex�fft�irfft�sumrrrrr�finforJ�
resolution�real�imagri�conj)r(�Xr)�power_x�Zsr'�Zp�psd_Zp�Zp0�Zp1�s2�psd_Zp01s            r-�test_roundtrip_scalingzTestSTFT.test_roundtrip_scalings��
�H�S��(�(�(����#���F�L�L��O�O���a��d�)�)�c�!�f�f�$���!�f�j�
9�
9�
9�!�
<���2��j�
9�
9�
9�!�
<����A����	��B�r�3�B�3�w�K�(�(�#�.�.�.���B�r�3�B�3�w�K�(�(�!�,�,�,���B�r�3�B�3�w�K�(�(�#�.�.�.���2�b�5�#�2�#�:����1�1�1�c�r�c�6�
�A�B�H�R�X�,>�,>�,I�J�J�J�J��!�U�V�U�
K�
K�
K�A�
N�������
�R�W�a�Z�/�a�8�8�8�2�8�A�;�F�����(�(�(��2�e�d�E�
J�
J�
J�1�
M����A�����1�d�V�U�K�K�K�A�N���g�c�"�Q�r�'�1�1�1�*�o�&�&����4�C�4����7��S�)�)�)���3�4�4����7��S�)�)�)��f�S�X��]�S�X��]�2��;�;�;��f�S�X��]�S�X��]�2��;�;�;�<�����1���	�!��4�5����'�*�*�*��3�t�d�E�
J�
J�
J�1�
M����A�����r/N)r�r�r�r�rrr�r*r�r��parametrizer:r@rDrJrMrTrVr]rir|r�r/r-r�r�OsM������P&�P&�P&�dB�B�B� C�C�C�><�<�<�()�)�)�.�[���Y��U�(;�<�<�0�0�=�<�0�68�8�8�69�9�9�<)�)�)�*�[���Y��U�(;�<�<�),�),�=�<�),�V8�8�8�B9�9�9�,!2�!2�!2�FO�O�O�4?�?�?�?�?r/r�)&�numpyr#�
numpy.testingrrrrrrr	r�r
rYr��scipyr�	scipy.fftr�scipy.signalr
rrrrrrrrr�scipy.signal._spectral_pyrrr�rpr�r�r�r�r�r/r-�<module>r�s�������N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N��
�
�
�*�*�*�*�*�*�����������������L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�6�6�6�6�6�6�T'�T'�T'�T'�T'�T'�T'�T'�n{6�{6�{6�{6�{6�{6�{6�{6�|	H*�H*�H*�H*�H*�H*�H*�H*�V
��������02 �2 �2 �2 �2 �2 �2 �2 �hP%�P%�P%�P%�P%�P%�P%�P%�fv�v�v�v�v�v�v�v�v�vr/

Youez - 2016 - github.com/yon3zu
LinuXploit