
    sg"                     X    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      Zy)    N)assert_allcloseassert_array_equal)raises)fftifft)max_len_seqc                       e Zd Zd Zd Zy)TestMLSc                 j   t        t        t        dt        j                  d             t        t        t        dt        j
                  d             t        t        t        dd       t        t        dd      d   g        t        t        t        d       t        t        t        dddg	       y )
N
   )state   )lengthr   @      )taps)assert_raises
ValueErrorr   npzerosonesr   )selfs    V/var/www/html/venv/lib/python3.12/site-packages/scipy/signal/tests/test_max_len_seq.pytest_mls_inputszTestMLS.test_mls_inputs   sz    j+	. 	j+rGGAJ	( 	j+r"=;r!4Q7<j+r2j+rQ@    c                    dgdgdgg dg ddgg dd}t        dd	      D ]  }d t        j                  t        j                  j	                  |            fD ]y  }d ||   fD ]k  }|t        j
                  |d
k(        rd|d
<   t        |||      d
   }d|z  dz
  }d}t        t        j                  |      t        j                  |      |       t        j                  t        t        |      t        j                  t        |            z              }d|z  dz
  }	d}t        |d
   |	|       d}t        |dd  t        j                  |	dz
  d      |       dd|dz
  z  fD ]b  }
t        ||||
      \  }}t        |||d      \  }}t        ||||	|
z
  dz
        \  }}t        j                   |||f      }t        ||       d n |  y )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_ms                     r   test_mls_outputzTestMLS.test_mls_output   s   sssyYA3 " 1a[  	:E)> ?@ :!8E?3 :D(RVVEQJ-?#$a(e.24457FVb(A8G&rvvay",,q//68  WWT#a&2773q6?*B%CDFhlG?G#F1IwHDG#F12J!R0H,35  UQY0 :!,U%d45"7B!,U"445"7B!,U"44;aK!O"EB "B| <*659:-:: 	:r   N)__name__
__module____qualname__r   r>    r   r   r
   r
   
   s    A%:r   r
   )numpyr   numpy.testingr   r   pytestr   r   	numpy.fftr   r   scipy.signalr   r
   rB   r   r   <module>rH      s     = *  $6: 6:r   