
    e!h5                     L   d Z ddlmZmZmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ ddlZddlmZmZmZmZmZmZmZmZ ddlmZ ddZddZ dd	Z!d
 Z"d Z#ddZ$ G d d      Z% G d d      Z& G d d      Z' G d d      Z( G d d      Z) G d d      Z* G d d      Z+y)z
Build fftpack:
  python setup_fftpack.py build
Run tests if scipy is installed:
  python -c 'import scipy;scipy.fftpack.test(<level>)'
Run tests if fftpack is not installed:
  python tests/test_pseudo_diffs.py [<level>]
    )assert_equalassert_almost_equalassert_array_almost_equal)difffftiffttilbertitilberthilbertihilbertshiftfftfreqcs_diffsc_diffss_diffcc_diffN)arangesincospiexptanhsumsign)randomc                     t        |       }t        |      }|	dt        z  }t        |      dz  t        z  |z  |z  }|dk  rd||z  z  }d|d<   n||z  }|dkD  rd|d|dz
   t	        ||z        j
                  S )N                  @r              i     )r   lenr   r   r   real)xkperiodfxnws         m/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pydirect_diffr+      s    	QBBA~2
2b!A1u1H!qD4x#ae":??    c                     t        |       }t        |      }|	dt        z  }t        |      |z  dz  t        z  |z  |z  }d|d<   dt	        |      z  }d|d<   t        ||z        S )Nr   r   r                 ?y                r   r"   r   r   r   r   r$   hr&   r'   r(   r)   s         r*   direct_tilbertr2   '   so    	QBBA~2
1Qr& "AAaD
47
AAaD":r,   c                     t        |       }t        |      }|	dt        z  }t        |      |z  dz  t        z  |z  |z  }dt	        |      z  }t        ||z        S )Nr   y             r/   r0   s         r*   direct_itilbertr4   3   s]    	QBBA~2
1Qr& "ADGA":r,   c                     t        |       }t        |      }t        |      |z  }dt        |      z  }t	        ||z        S )Nr.   )r   r"   r   r   r   )r$   r'   r(   r)   s       r*   direct_hilbertr6   =   s<    	QBBA
1A
47
A":r,   c                     t        |        S N)r6   )r$   s    r*   direct_ihilbertr9   E   s    1r,   c                     t        |       }|t        |      dz  |z  }nt        |      dz  t        z  |z  |z  }t        t	        |       t        ||z        z        j                  S )Nr.   r   )r"   r   r   r   r   r   r#   )r$   ar&   r(   r%   s        r*   direct_shiftr<   I   s^    AA~AJrM!OAJrM"V#A%As1Q3x %%%r,   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestDiffc                    dD ]w  }t        |      dz  t        z  |z  }t        t        t	        |            t        t	        |                   t        t        t	        |      d      t        t	        |      d             t        t        t	        |      d      t        t	        |      d             t        t        t	        |      d      t        t	        |      d             t        t        t	        |      d      t        t	        |      d             t        t        t	        d|z        d      t        t	        d|z        d             t        t        t	        d|z        d      t        t	        d|z        d             t        t        t        |            t        t        |                   t        t        t        |      d      t        t        |      d             t        t        t        |      d      t        t        |      d             t        t        t        |      d      t        t        |      d             t        t        t        d|z              t        t        d|z                     t        t        t	        ||z  dz              t        t	        ||z  dz                     t        t        t        ||z  dz              t        t        ||z  dz                     t        d      D ]r  }t        t        t	        d|z        |      t        t	        d|z        |             t        t        t        d|z        |      t        t        d|z        |             t z y )N)      @          r               )r   r   r   r   r   r+   r   range)selfr(   r$   r%   s       r*   test_definitionzTestDiff.test_definitionT   sj   " 	TAq	!Bq A%d3q6l;s1v3FG%d3q6!n[Q5JK%d3q6!n[Q5JK%d3q6!n[Q5JK%d3q6!n[Q5JK%d3qs8A&6{3qs8A7NO%d3qs8A&6{3qs8A7NO%d3q6l;s1v3FG%d3q6!n[Q5JK%d3q6!n[Q5JK%d3q6!n[Q5JK%d3qs8n[QqS5JK%d3qs1u:&6{3qs1u:7NO%d3qs1u:&6{3qs1u:7NO1X T)$s1Q3x*:;s1Q3xPQ;RS)$s1Q3x*:;s1Q3xPQ;RST!	Tr,   c           	      f   dD ]  }t        |      t        |      z  }t        t        t	        dt
        z  |z        d      dt
        z  t        dt
        z  |z        z         t        t        t	        dt
        z  |z        dd      dt
        z  dz   t        dt
        z  |z        z          y )N)rA   rB   r   r   )r&   rE   )r   floatr   r   r   r   r   rJ   r(   r$   s      r*   test_periodzTestDiff.test_periodi   s     	>Aq	%("A%d3qtAv;a&@&'d3qtAv;&68%d3qtAv;q&B()"qyjQrT!V&<>		>r,   c           
      p   dD ]0  }t        |      dz  t        z  |z  }t        t        t	        |            t        |             t        t        t        |            t	        |              t        t        t	        |      d      t	        |              t        t        t	        |      d      t	        |             t        t        t	        d|z              dt        d|z        z         t        t        t	        t	        |                  t        |      t        t	        |            z         3 y )N)rD   rB   M   r   rF   r   r   r   r   r   r   rN   s      r*   test_sinzTestDiff.test_sinq   s     	LAq	!Bq A%d3q6l3q6:%d3q6lCF7;%d3q6!nc!fW=%d3q6!nSV<%d3qs8nQs1Q3xZ@%d3s1v;&7As3q6{8JK	Lr,   c           	      L   g dd d D ]  }t        |      dz  t        z  |z  }t        |      t        d|z        z  t	        t        d|z              z   }t        |      t        d|z        z  dt        |      z  t        d|z        z  z
  dt        d|z        z  t	        t        d|z              z  z   }dt        |      z  t        d|z        z  dt        |      z  t        d|z        z  z
  dt        d|z        z  t	        t        d|z              z  z
  dt        d|z        dz  z  t	        t        d|z              z  z   }t        |      }t        ||       t        t        |      |       t        t        |d      |       t        t        |d	      |        y )
N)
rB   rQ   d         i   i         i    rG   r   rF   rE   rH   	   )r   r   r   r   r   r   r   )rJ   r(   r$   fdfddfd1s          r*   	test_exprzTestDiff.test_expr{   si   <Ra@ 
	7Aq	!Bq AAs1Q3xC!H-AQAaC3q6#ac(!221S1X:c#ac(m3KKBc!f*S1X%aAhs1Q3x&77S1X:c#ac(m+,,-c!A#hkM#c!A#h-,GHCaB%b,%d2hs3%d1Qi4%d3rl26
	7r,   c           	      >   dD ]  }t        |      dz  t        z  |z  }t        |      t        d|z        z  t	        t        d|z              z   }t        |      t        d|z        z  dt        |      z  t        d|z        z  z
  dt        d|z        z  t	        t        d|z              z  z   }dt        |      z  t        d|z        z  dt        |      z  t        d|z        z  z
  dt        d|z        z  t	        t        d|z              z  z
  dt        d|z        dz  z  t	        t        d|z              z  z   }t        t        |      |       t        t        |      |       t        t        |d      |       t        t        |d      |        y )	N)rX   rY   r   rF   rE   rZ   rH   r[   r\   )r   r   r   r   r   r   r   )rJ   r(   r$   r]   r^   r_   s         r*   test_expr_largezTestDiff.test_expr_large   s]    		5Aq	!Bq AAs1Q3xC!H-AQAaC3q6#ac(!221S1X:c#ac(m3KKBc!f*S1X%aAhs1Q3x&77S1X:c#ac(m+,,-c!A#hkM#c!A#h-,GHC%d1gb1%d2hs3%d3rl26%d1Qi4		5r,   c           	         d}t        |      dz  t        z  |z  }t        t        t	        |      d      t        |              t        t        t	        |      d      t	        |              t        t        t	        |      d      t	        |             t        t        dt        d|z        z  d      t	        d|z               y )NrB   r   r\   rR   rN   s      r*   test_intzTestDiff.test_int   s    1IaKN1!$s1vb/3q6':!$s1vb/3q6':!$s1vb/#a&9!$qQqSz""5c!A#h?r,   c           
         t         j                  j                  d      }dD ]  }dD ]  }|j                  |f      }t        |d      |z  }||z
  }t	        t	        |d      d      }t        t        |d      d       t        t	        t	        ||      |       |       t        t	        t	        ||       |      |         y )	N  )r   r   rF      )<   rD   rB   8   7   r   axisr   r\   r    npr   default_rngr   r   r   r   rJ   rngr%   r(   r]   afs         r*   test_random_evenzTestDiff.test_random_even   s    ii##D) 		@A% @JJt$]1_bDa2&#CqM#6)$tAay!*<Q?)$tAqbz!*<Q?@		@r,   c           
      ^   t         j                  j                  d      }dD ]  }dD ]  }|j                  |f      }t        |d      |z  }||z
  }t	        t        |d      d       t        t        t        ||      |       |       t        t        t        ||       |      |         y )Nri   r   r   r   rE   rF   rG   rj   !   A   rm   r   rn   r    )rq   r   rr   r   r   r   r   rs   s         r*   test_random_oddzTestDiff.test_random_odd   s    ii##D)  	@A @JJt$]1_bD#CqM#6)$tAay!*<Q?)$tAqbz!*<Q?@	@r,   c           
         t         j                  j                  d      }dD ]  }dD ]  }|j                  |f      }t        |d      |z  }||z
  }t	        t	        |d      d      }t        t        |d      d       t        t	        t	        ||      |       |       t        t	        t	        ||       |      |         y )	Nri   rx   )rD   rz   rB   rl   rm   r   rn   r   r\   r    rp   rs   s         r*   test_zero_nyquistzTestDiff.test_zero_nyquist   s    ii##D)  		@A% @JJt$]1_bDa2&#CqM#6)$tAay!*<Q?)$tAqbz!*<Q?@		@r,   N)__name__
__module____qualname__rK   rO   rS   ra   rc   rg   rv   r|   r~    r,   r*   r>   r>   R   s5    T*>L7
5@@	@@r,   r>   c                       e Zd Zd Zd Zd Zy)TestTilbertc                    dD ]  }dD ]  }t        |      dz  t        z  |z  }t        t        |      |      }t	        t        |      |      }t        ||       t        t        t        |      |      t	        t        |      |             t        t        t        d|z        |      t	        t        d|z        |               y N皙?g      ?r   g      @
   r@   rA   rB   rC   r   )r   r   r	   r   r2   r   rJ   r1   r(   r$   yy1s         r*   rK   zTestTilbert.test_definition   s    # 		FA# F1IaKN1$CF1%#CF1-)!B/)'#a&*;*8Q*BD)'#ac(1*=*8QqS!*DFF		Fr,   c           
          dD ]a  }dD ]Z  }t        |f      }t        |d      |z  }||z
  }t        t        |d      d       t        t	        t        ||      |      |       \ c y )Nr   rD   rB   rl   r   rn   r    )r   r   r   r   r2   r4   )rJ   r1   r(   r]   ru   s        r*   rv   zTestTilbert.test_random_even   sp    # 	TA TA4L]1_bD#CqM#6).19Ma*PQRST	Tr,   c           
      Z   t         j                  j                  d      }dD ]  }dD ]  }|j                  |f      }t        |d      |z  }||z
  }t	        t        |d      d       t        t        t        ||      |      |       t        t        t        ||      |      |         y )Nri   r   ry   r   rn   r    )rq   r   rr   r   r   r   r
   r	   )rJ   rt   r1   r(   r]   ru   s         r*   r|   zTestTilbert.test_random_odd   s    ii##D)# 	FA FJJt$]1_bD#CqM#6)(71Q<*B1E)'(1Q-*B1EF	Fr,   N)r   r   r   rK   rv   r|   r   r,   r*   r   r      s    
FT	Fr,   r   c                       e Zd Zd Zy)TestITilbertc                    dD ]  }dD ]  }t        |      dz  t        z  |z  }t        t        |      |      }t	        t        |      |      }t        ||       t        t        t        |      |      t	        t        |      |             t        t        t        d|z        |      t	        t        d|z        |               y r   )r   r   r
   r   r4   r   r   s         r*   rK   zTestITilbert.test_definition   s    # 		GA# G1IaKN1$SVA&$SVA.)!B/)(3q6!*<*9#a&*CE)(3qs8A*>*9#ac(1*EGG		Gr,   Nr   r   r   rK   r   r,   r*   r   r      s    
Gr,   r   c                   $    e Zd Zd Zd Zd Zd Zy)TestHilbertc           
         dD ]  }t        |      dz  t        z  |z  }t        t        |            }t	        t        |            }t        ||       t        t        t        d|z              t	        t        d|z                      y Nr   r   )r   r   r   r   r6   r   rJ   r(   r$   r   r   s        r*   rK   zTestHilbert.test_definition   sv     	@Aq	!Bq AAAA'B%a+%gc!A#h&7&4S1X&>@	@r,   c                    dD ]{  }t        |      dz  t        z  |z  }t        |      t        d|z        t        |      z  z   }t	        |      }t        |      }t        ||       t        |d      }t        ||       } y Nr   r   r   )r1   )r   r   r   r   r   r6   r   r	   rJ   r(   r$   r]   r   r   y2s          r*   test_tilbert_relationz!TestHilbert.test_tilbert_relation   sw     	,Aq	!Bq AAs1Q3xA&A
A"B%a+RB%a+	,r,   c                 D   t         j                  j                  d      }dD ]|  }|j                  |f      }t        |d      |z  }||z
  }t	        t        |d      d       t        t        t        |            |       t        t        t        |            |       ~ y )Nri   ry   r   rn   r    )rq   r   rr   r   r   r   r   r   rJ   rt   r(   r]   ru   s        r*   r|   zTestHilbert.test_random_odd	  s    ii##D) 	>A

A4 AQAqB"AA1c2%hwqz&:1=%ghqk&:1=	>r,   c                 p   t         j                  j                  d      }dD ]  }|j                  |f      }t        |d      |z  }||z
  }t	        t	        |d      d      }t        t        |d      d       t        t        t        |            |       t        t        t        |            |        y )Nri   r   r   rn   r   r\   r    )rq   r   rr   r   r   r   r   r6   r9   r   r   r   s        r*   rv   zTestHilbert.test_random_even  s    ii##D) 	>A

A4 AQAqB"AT!AYr"AA1c2%n_Q5G&HK%ghqk&:1=	>r,   N)r   r   r   rK   r   r|   rv   r   r,   r*   r   r      s    @,>
>r,   r   c                       e Zd Zd Zd Zy)TestIHilbertc           
         dD ]  }t        |      dz  t        z  |z  }t        t        |            }t	        t        |            }t        ||       t        t        t        d|z              t	        t        d|z                      y r   )r   r   r   r   r9   r   r   s        r*   rK   zTestIHilbert.test_definition"  sw     	AAq	!Bq AQ A Q(B%a+%hs1Q3x&8&5c!A#h&?A	Ar,   c                    dD ]{  }t        |      dz  t        z  |z  }t        |      t        d|z        t        |      z  z   }t	        |      }t        |      }t        ||       t        |d      }t        ||       } y r   )r   r   r   r   r   r9   r   r
   r   s          r*   test_itilbert_relationz#TestIHilbert.test_itilbert_relation+  sx     	,Aq	!Bq AAs1Q3xA&AA #B%a+!b!B%a+	,r,   N)r   r   r   rK   r   r   r,   r*   r   r      s    A,r,   r   c                       e Zd Zd Zy)	TestShiftc                    dD ]  }t        |      dz  t        z  |z  }dD ]  }t        t        t	        |      |      t        t	        |      |             t        t        t	        |      |      t	        ||z                t        t        t        |      |      t        ||z                t        t        t        d|z        t	        |      z   |      t        d||z   z        t	        ||z         z          t        t        t        t	        |            |      t        t	        ||z                       t        t        t	        |      dt        z        t	        |             t        t        t	        |      t              t	        |              t        t        t	        |      t        dz        t        |              y )N)   rA   rB   rC   rD   rX   rW   r   )r   rE   )r   r   r   r   r   r<   r   r   )rJ   r(   r$   r;   s       r*   rK   zTestShift.test_definition8  sK   + 	AAq	!Bq A N)%Aq/,s1va:PQ)%Aq/#ac(C)%Aq/#ac(C)%AaCQ*B*-a1g,s1Q3x*?A)%CFA*>s3qs8}MN &eCF1R4&8Q@%eCF2&6Aw?%eCF2a4&8Q@	Ar,   Nr   r   r,   r*   r   r   6  s    Ar,   r   c                       e Zd ZdZej
                  ej                  fZeej                  ej                  fz   Z
d Zd Zd Zd Zd Zd Zd Zd	 Zd
 Zd Zd Zy)TestOverwritezCheck input overwrite behavior c                     |j                         } ||g|i | |j                  }|r|t        |      z  }|r|t        |      z  }t        ||d|        y )Nzspurious overwrite in )err_msg)copyr   reprr   )rJ   r$   routineargskwargsx2sigs          r*   _checkzTestOverwrite._checkM  s`    VVX$T$V$4:C4<CR&<SE$BCr,   c                 >   t         j                  j                  d      }t        j                  |t         j                        r# |j
                  | d |j
                  | z  z   }n |j
                  | }|j                  |      } | j                  ||g|i | y )Nri   r.   )rq   r   RandomState
issubdtypecomplexfloatingrandnastyper   )rJ   r   dtypeshaper   r   rt   datas           r*   	_check_1dzTestOverwrite._check_1dW  s    ii##D)== 2 23399e$r)#))U*;';;D399e$D{{5!D'3D3F3r,   c                 T    | j                   D ]  }| j                  t        |d        y Nr@   )dtypesr   r   rJ   r   s     r*   	test_diffzTestOverwrite.test_diffb  s%    [[ 	/ENN4.	/r,   c                 V    | j                   D ]  }| j                  t        |dd        y Nr   g?)r   r   r	   r   s     r*   test_tilbertzTestOverwrite.test_tilbertf  s'    [[ 	7ENN7E5#6	7r,   c                 V    | j                   D ]  }| j                  t        |dd        y r   )r   r   r
   r   s     r*   test_itilbertzTestOverwrite.test_itilbertj  s'    [[ 	8ENN8UE37	8r,   c                 T    | j                   D ]  }| j                  t        |d        y r   )r   r   r   r   s     r*   test_hilbertzTestOverwrite.test_hilbertn  s%    [[ 	2ENN7E51	2r,   c                 X    | j                   D ]  }| j                  t        |ddd        y Nr         ?g      @)r   r   r   r   s     r*   test_cs_diffzTestOverwrite.test_cs_diffr  )    [[ 	<ENN7E5#s;	<r,   c                 X    | j                   D ]  }| j                  t        |ddd        y r   )r   r   r   r   s     r*   test_sc_diffzTestOverwrite.test_sc_diffv  r   r,   c                 X    | j                   D ]  }| j                  t        |ddd        y r   )r   r   r   r   s     r*   test_ss_diffzTestOverwrite.test_ss_diffz  r   r,   c                 X    | j                   D ]  }| j                  t        |ddd        y r   )r   r   r   r   s     r*   test_cc_diffzTestOverwrite.test_cc_diff~  r   r,   c                 V    | j                   D ]  }| j                  t        |dd        y )Nr   r   )r   r   r   r   s     r*   
test_shiftzTestOverwrite.test_shift  s'    [[ 	5ENN5%4	5r,   N)r   r   r   __doc__rq   float32float64real_dtypes	complex64
complex128r   r   r   r   r   r   r   r   r   r   r   r   r   r,   r*   r   r   G  sf    )::rzz*KBLL"--88FD	4/782<<<<5r,   r   )r   Nr8   ),	__usage__numpy.testingr   r   r   scipy.fftpackr   r   r   r	   r
   r   r   r   r   r   r   r   r   numpyrq   r   r   r   r   r   r   r   r   numpy.randomr   r+   r2   r4   r6   r9   r<   r>   r   r   r   r   r   r   r   r,   r*   <module>r      s   	6 6- - - -  < < <  	&m@ m@` F  FFG G)> )>X, ,,A A"=5 =5r,   