
     h                        d dl Z d dlZd dlmZ d dlZd dlmZmZm	Z	 d dl
mZ d Zej                            dddg          ej                            d	g d
          ej                            dg d          ej                            dddg          d                                                 Zd Zej                            dddg          d             ZdS )    N)assert_allclose)fhtifht	fhtoffset)pochc                  V   d } t          j        ddd          }t          j        |d         |d         z            }d}d}d} | ||          }t          |||||	          }g d
}t	          ||           t          |||          }t          |||||	          }g d}t	          ||           d}t          |||          }t          |||||	          }g d}t	          ||           d}t          |||          }t          |||||	          }g d}t	          ||           d S )Nc                 J    | |dz   z  t          j        | dz   dz            z  S )N      )npexp)rmus     W/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/scipy/fft/tests/test_fftlog.pyfz&test_fht_agrees_with_fftlog.<locals>.f   s'    2a4yAa((          r
   r   g333333?        offsetbias)g=lSgl1Z?gpR_g~]
o?g0d@?g?g02u?g7c4Uo?gU/5?gޠ3JgQiIg!m9?g 1g?Jb7?g tj3Bg 	'K?r   )g Dy?g TIg 94?gB M?gQ89w?gĥ?gZT3%?gz;_x?g9%P?gv@݆gAAY]?gayig;gGI<!?g F\mgH ?g @(LGg?)gU_g0E>y7?g4⬞	F?gR^ء*9g-g?g!a?gR޴ ?gmMUU?g .?g'?eHgZ7ZP?gmܷ`%gCGT?g2Tg҅u>g/&g)gG3>g`4]<]?g[8+?g,8GdP?g
u?g,ח$5?g~}?gra,4?gV?gh`>EgDgyٖ?gP2ZSg͆˝?gܺJ?g[U+@g"%@)r   logspacelogr   r   r   )	r   r   dlnr   r   r   aourstheirss	            r   test_fht_agrees_with_fftlogr!   
   s   ) ) ) 	B2A
&1ad

C	BFD	!RA q#r&t444D@ @ @F D&!!! sBT***Fq#r&t444D@ @ @F D&!!! DsBT***Fq#r&t444D@ @ @F D&!!! DsBT***Fq#r&t444D@ @ @F D&!!!!!r   optimalTFr   )r         ?g      r   )r   g?gn@   ?   c                 `   t           j                            d          }|                    |           }|                    dd          }|                    dd          }|rt          ||||          }t          |||||          }t          |||||          }	t          ||	           d S )N   E3  r
   r   initialr   r   )	r   randomRandomStatestandard_normaluniformr   r   r   r   )
r$   r   r   r"   rngr   r   r   Aa_s
             r   test_fht_identityr4   R   s    
 )



+
+CAA
++b!

C	R		B ?3F>>>AsBvD111A	abd	3	3	3BArr   c                  <   t           j                            d          } |                     d          }|                     dd          }d\  }}t          j        d          5 }t          ||||           |r
J d	            	 d d d            n# 1 swxY w Y   d
\  }}t          j        d          5 }t          ||||           |r
J d	            	 d d d            n# 1 swxY w Y   d\  }}t          j	        t                    5 }t          ||||           |s
J d            	 d d d            n# 1 swxY w Y   d
\  }}t          j	        t                    5 }t          ||||           |s
J d            	 d d d            d S # 1 swxY w Y   d S )Nr(   r%   r)   r
   )g      r#   T)recordr   z)fht warned about a well-defined transform)g            ?)g      r7   z+fht did not warn about a singular transformz,ifht did not warn about a singular transform)r   r-   r.   r/   r0   warningscatch_warningsr   pytestwarnsWarningr   )r1   r   r   r   r   r6   s         r   test_fht_special_casesr=   f   s   
)



+
+CBA
++b!

C
 HB		 	-	-	- GAsBT""""FFFFFzFG G G G G G G G G G G G G G G
 HB		 	-	-	- GAsBT""""FFFFFzFG G G G G G G G G G G G G G G
 HB	g		 E&AsBT""""DDDDDvDE E E E E E E E E E E E E E E
 HB	g		 F&QRd####EEEEEvEF F F F F F F F F F F F F F F F F FsH   % BBB7 C$$C(+C( D::D>D># FFFc                    t           j                            d          }|                    dd          }|                    d|z
  d          }t          j        dd|           }||z  }t          j        |d         |d         z            }t          ||d	|
          }t          |||||          }t          j        |          |d d d         z  }	d|	z  |z  t          |dz   |z
  dz  |          z  }
t          ||
           d S )Nr(   r      r)   r7   r*   r   r
   r   r+   r   )r   r-   r.   r0   r   r   r   r   r   r   r   )r$   r1   r   gammar   r   r   r   r2   kAts              r   test_fht_exactrC      s   
)



+
+C
 
Q		B KK2s##E
B1A	5A
&1ad

CsB%888FAsBvE222A
vq2wA A#bd5j!^U33	3BArr   )r8   numpyr   numpy.testingr   r:   scipy.fft._fftlogr   r   r   scipy.specialr   r!   markparametrizer4   r=   rC    r   r   <module>rK      s_        ) ) ) ) ) )  2 2 2 2 2 2 2 2 2 2      E" E" E"P T5M22#3#3#34400r2h''  (' 10 54 32 F F FB r2h''  ('  r   