
    Ui#                        d dl Zd dlmZmZ d dl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lmZ d dlmZmZ ej        j        Z ej        d          Z ed          ej                            d	ee	feefg          ej                            d
g d          ej                            dg d          ej                            dd dg          ej                            dg d          ej                            dddg          d                                                                                     Z edd          ej                            d	ee	feefg          ej                            d
g d          ej                            dej        ej        ej        ej        ej         g          ej                            dd dg          ej                            dg d          ej                            dddg          d                                                                                     Z! ed          ej                            d	e
efeefg          ej                            d
g d          ej                            dg d          ej                            dg d          ej                            dddg          d                                                                         Z" edd          ej                            d	e
efeefg          ej                            d
g d          ej                            dg d          ej                            dej        ej        ej        ej        ej         g          ej                            dg d          ej                            dddg          d                                                                                     Z# ed          ej                            dg d           ej                            d
g d          ej                            dg d          d!                                                 Z$ ed          ej                            deee
eg          ej                            d
g d          d"                                     Z% ed          ej                            dg d#          ej                            d$ed%fedfed%fg          d&                                     Z& ed'd()           ed          ej                            dg d#          d*                                     Z' ed'd()           ed          ej                            dg d#          ej                            deeg          d+                                                 Z( ed'd()           ed          ej                            dg d#          ej                            deeg          d,                                                 Z) edd-          ej                            dee	e
eeeeeg          d.                         Z*dS )/    N)assert_allcloseassert_array_equal)dctidctdctnidctndstidstdstnidstn)fftpack)xp_copyxp_assert_close   T)cpu_onlyzforward, backwardtype)   r         n)r   r   r      
      axisr   norm)NbackwardorthoforwardorthogonalizeFc                    |                     t          j                            ||                    } | |||||          }	 ||	||||          }
t	          |
|           dgdz  }d||<   |                     t          j        t          j         |	          |d                    } |||||||          }t	          ||           d S )N)r   r   r   r   r   r   r   r   edgemoder   )asarraynprandomrandr   pad)r   r   r   r   r   r   r   xpxyzr+   y2z2s                 |/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/scipy/fft/tests/test_real_transforms.pytest_identity_1dr3      s     	

29>>!Q''((A4d]KKKADt$mLLLAAq(Q,CCI	BF2:a==#F;;;	<	<B	"dAtT	G	G	GBB    z/`overwrite_x` only supported for NumPy backend.)np_onlyreasondtypeoverwrite_xc                    t           j                            dd                              |          }|                                }	 | |||||          }
|
                                } ||
||||          }|s5t          ||dd           t          ||	           t          |
|           d S t          ||	dd           d S )N      )r   r   r8   ư>rtolatol)r(   r)   r*   astypecopyr   r   )r   r   r   r7   r   r   r8   r,   r-   x_origr.   y_origr/   s                r2   test_identity_1d_overwriterD   +   s     		q!##E**AVVXXF4d;GGGAVVXXFDt$KHHHA 914d33331f%%%1f%%%%%64888888r4   zshape, axes)	)r   r   r   )rE   r   )rE   N)rE   r   r   )r      N)rG   rF   )r   r      N)rI   r   )rI   )r   r   c                 D   |                     t          j                            |                    }|t          j        ||          } | |||||          }	 ||	||||          }
t	          |
|           |dg|j        z  }n;t          |t                    rdg|j        z  }d||<   ndg|j        z  }|D ]}d||<   |                     t          j        t          j         |	          |d                    } |||||||          }t	          ||           d S )N)axesr   r   r"   r!   r#   r$   r&   )	r'   r(   r)   taker   ndim
isinstanceintr+   )r   r   r   shaperL   r   r   r,   r-   r.   r/   r+   ar0   r1   s                  r2   test_identity_ndrS   E   sF   * 	

29##E**++At$$4d]KKKADt$mLLLAAq|h	D#		 hD		h 	 	ACFF 
BF2:a==#F;;;	<	<B	"dE4]	K	K	KBBr4   ))r   r   r   )rT   r   )rT   Nc	                    t           j                            |                              |          }	|	                                }
|t          j        ||          } | |	|||          }|                                } |||||          }|rt          ||
dd           d S t          ||	dd           t          |	|
           t          ||           d S )N)rL   r   r<   r=   )r(   r)   r@   rA   rM   r   r   )r   r   r   rQ   rL   r7   r   r8   r,   r-   rB   r.   rC   r/   s                 r2   test_identity_nd_overwriterV   t   s    $ 		&&u--AVVXXFt$$4d...AVVXXFDt$///A &6488888814d33331f%%%1f%%%%%r4   func)r   r	   r   r   c                 :   t           j                            dd          }|                     t	          t
          |           |||                    }|                    |          } t	          t          |           |||          }t          ||           d S )Nr;   r   )r   )r(   r)   r*   r'   getattrr   fftr   )rW   r   r   r,   r-   fftpack_resfft_ress          r2   test_fftpack_equivaliencer]      s    
 		q"A**3WWd33At$GGGHHK


1A gc4  Dt444GG[)))))r4   c                     |                     t          j                            d                    }dD ]2\  }} | ||||          } | |||          }t	          ||           3d S )Nd   ))r   F)r   F)r   Tr   r   r   )r   r   r'   r(   r)   r*   r   )rW   r   r,   r-   r   r   rR   bs           r2   test_orthogonalize_defaultrc      s    
 	

29>>#&&''A  e
 DD>>>DD)))1 r4   )r   r   r   z
func, typer   c                     |                     t          j                            d                    } | |||d          } | |||d          }t	          ||           d S )Nr_   Tr`   Fra   )rW   r   r   r,   r-   y1r0   s          r2   test_orthogonalize_nooprf      si     	

29>>#&&''A	adT	:	:	:B	adU	;	;	;BBr4   z	jax.numpyz)jax arrays do not support item assignment)r6   c                    |                     t          j                            d                    }t	          ||          }|dxx         t
          z  cc<   |dxx         t
          z  cc<   t          |d| d          }t          |d| d          }|dxx         t
          z  cc<   |dxx         t
          z  cc<   t          ||           d S )	Nr_   r,   r   r   Tr`   F)r'   r(   r)   r*   r   SQRT_2r   r   )r   r,   r-   x2re   r0   s         r2   test_orthogonalize_dct1rl      s    
 	

29>>#&&''A	r			BqEEEVOEEErFFFfFFF	QQT	6	6	6B	Rad%	8	8	8BqEEEVOEEErFFFfFFFBr4   c                 
   |                     t          j                            d                    } | |d|d          } | |d|d          }|| t          k    rdndxx         t
          z  cc<   t          ||           d S )Nr_   r   Tr`   Fr   ri   )r'   r(   r)   r*   r   rj   r   )rW   r   r,   r-   re   r0   s         r2   test_orthogonalize_dcst2rn      s     	

29>>#&&''A	aad$	7	7	7B	aad%	8	8	8BDCKKqqR   F*   Br4   c                 ,   |                     t          j                            d                    }t	          ||          }|| t
          k    rdndxx         t          z  cc<    | |d|d          } | |d|d          }t          ||           d S )	Nr_   rh   r   ri   r   Tr`   F)r'   r(   r)   r*   r   r   rj   r   )rW   r   r,   r-   rk   re   r0   s          r2   test_orthogonalize_dcst3rp      s     	

29>>#&&''A	r			BDCKKqqR   F*   	aad$	7	7	7B	bqt5	9	9	9BBr4   z,array-likes only supported for NumPy backendc                     ddgddggddgddggddgddggg}t           ||           ||                     |                               d S )Ng      ?)r   r'   )r,   rW   r-   s      r2   test_array_likerr      so     *sCj	!*sCj	!*sCj	!	#A DDGGTT"**Q--0011111r4   )+numpyr(   numpy.testingr   r   pytestmath	scipy.fftr   r   r   r   r	   r
   r   r   rZ   scipyr   scipy._lib._array_apir   r   markskip_xp_backendssqrtrj   parametrizer3   float16float32float64	complex64
complex128rD   rS   rV   r]   rc   rf   rl   rn   rp   rr    r4   r2   <module>r      s       = = = = = = = =   D D D D D D D D D D D D D D D D D D D D             : : : : : : : :;/ 	1 4   ,T{S$K.HII..22233!Q((!G!G!GHH5$-88  98 IH )( 43 /. JI !   $JL L L,T{S$K.HII..2:rz2:#%<#@ A A!Q((!G!G!GHHu669 9 76 IH )(A A /. JIL L9" 4   ,e}tUm.LMM..
 
 
  !G!G!GHH5$-88  98 IH  /. NM ! "< $JL L L,e}tUm.LMM..    2:rz2:#%<#@ A A!G!G!GHH66& & 76 IHA A  /. NML L&* 4   !?!?!?@@..!G!G!GHH* * IH /. A@ ! * 4   #sD$!788..  /. 98 !  4   !A!A!ABB!HsAha(" # # # # CB !  +DF F F4   !A!A!ABB  CB ! F F +DF F F4   !A!A!ABB#s,,  -, CB ! F F
 +DF F F4   !A!A!ABB#s,,  -, CB ! F F
 $GI I I#tT5#tT5!QRR2 2 SRI I2 2 2r4   