o
    h                     @   sR   d dl Zd dlmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZ G dd dZdS )    N)raises)xp_assert_closexp_assert_equal)fftifft)max_len_seqc                   @   s   e Zd Zdd Zdd ZdS )TestMLSc                 C   s   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 tjg tjd t ttd t ttddd	gd
 d S )N
   )state   )lengthr   dtype@      )taps)	assert_raises
ValueErrorr   npzerosonesr   asarrayint8)self r   W/var/www/vscode/kcb/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
 t|	|d d}t|dd  tj|	d d|j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   r   )ranger   roundrandomrandallr   r   abs	ones_likerealr   r   conjr   floatfullr   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   s\    



zTestMLS.test_mls_outputN)__name__
__module____qualname__r   r?   r   r   r   r   r   
   s    r   )numpyr   pytestr   r   scipy._lib._array_apir   r   	numpy.fftr   r   scipy.signalr   r   r   r   r   r   <module>   s    