
    
g                     X    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      Zy)    N)raises)xp_assert_closexp_assert_equal)fftifft)max_len_seqc                       e Zd Zd Zd Zy)TestMLSc                    t        t        t        dt        j                  d             t        t        t        dt        j
                  d             t        t        t        dd       t        t        dd      d   t        j                  g t        j                               t        t        t        d       t        t        t        ddd	g
       y )N
   )state   )lengthr   dtype@      )taps)	assert_raises
ValueErrorr   npzerosonesr   asarrayint8)selfs    `/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/scipy/signal/tests/test_max_len_seq.pytest_mls_inputszTestMLS.test_mls_inputs   s    j+	. 	j+rGGAJ	( 	j+r"=Bq1!4

2RWW5	
 	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 ]  }d ||   fD ]  }|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
   t        |	      |       d}t        |dd  t        j                   |	dz
  d|j"                        |       dd|dz
  z  fD ]b  }
t        ||||
      \  }}t        |||d      \  }}t        ||||	|
z
  dz
        \  }}t        j$                  |||f      }t        ||       d    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   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_ms                     r   test_mls_outputzTestMLS.test_mls_output   s   sssyYA3 " 1a[ $	7E)> ?@ #7!8E?3 "7D(RVVEQJ-?#$a(e.24457FVb(A8G#BFF1Ir||A/68  WWT#a&2773q6?*B%CDFhlG?G#F1I$)'N,3
 EG#F12J$&GGGaK6<<$P,35  UQY0 7!,U%d45"7B!,U"445"7B!,U"44;aK!O"EB "B| <'675"7#7$	7r    N)__name__
__module____qualname__r   rC    r    r   r
   r
   
   s    A")7r    r
   )numpyr   pytestr   r   scipy._lib._array_apir   r   	numpy.fftr   r   scipy.signalr   r
   rG   r    r   <module>rM      s     * B  $<7 <7r    