o
    i"                     @   sR   d dl Zd dlmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ G dd dZdS )    N)assert_allcloseassert_array_equal)raises)fftifft)max_len_seqc                   @   s   e Zd Zdd Zdd ZdS )TestMLSc                 C   sv   t ttdtdd t ttdtdd t ttddd ttdddd g  t ttd t ttdddgd	 d S )
N
   )state   )lengthr   @      )taps)assert_raises
ValueErrorr   npzerosonesr   )self r   ^/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/scipy/signal/tests/test_max_len_seq.pytest_mls_inputs   s   
zTestMLS.test_mls_inputsc                 C   s  dgdgdgg dg ddgg dd}t dd	D ]}d ttj|fD ]}d || fD ]}|d ur?t|d
kr?d|d
< t|||dd
 }d| d }d}tt|t	||d t
tt|tt| }d| d }	d}t|d
 |	|d d}t|dd  t|	d d|d dd|d  fD ]1}
t||||
d\}}t|||dd\}}t||||	|
 d d\}}t|||f}t|| qq.q&qd S )Nr      r   )   r   r   )   r   r   r   )   r   r   )r   r   r   r      r      r   r   )r
   r   g       @g      ?zmls had non binary terms)err_msgzmls impulse has incorrect valuez$mls steady-state has incorrect valuer   )r
   r   r   )ranger   roundrandomrandallr   r   abs	ones_likerealr   r   conjr   fullconcatenate)r   alt_tapsnbitsr
   r   orig_mmr    testerout_lennm1s1m2s2m3s3new_mr   r   r   test_mls_output   sT    



zTestMLS.test_mls_outputN)__name__
__module____qualname__r   r:   r   r   r   r   r   
   s    r   )numpyr   numpy.testingr   r   pytestr   r   	numpy.fftr   r   scipy.signalr   r   r   r   r   r   <module>   s    