
    IR-e              	       ,   d dl Zd dlZd dlmZ d dlmZmZmZm	Z	m
Z
 d dlmZ ddZddZej                            e d	          dd
            Zej                            e d	          dd            Zg dZeredgz  Zej                            de ej        ddd          gz             dd            Zej                            de          dd            ZddZej                            e d	          d             Zd ZddZdS )    N)assert_allclose)calculate_bin_edgesfreedman_bin_width	histogramknuth_bin_widthscott_bin_width)	HAS_SCIPY'  c                    t           j                            |          }|                    |           }t	          |          }t          |dt          j        |          z  | dz  z             t	          |d          \  }}t          |dt          j        |          z  | dz  z             t          j        t                    5  t	          |                    d                     d d d            d S # 1 swxY w Y   d S )Ng      @UUUUUU?Treturn_bins   
   )
nprandomdefault_rngstandard_normalr   r   stdpytestraises
ValueError)NrseedrngXdeltabinss         Blib/python3.11/site-packages/astropy/stats/tests/test_histogram.pytest_scott_bin_widthr!      s%   
)


&
&CAAAEE3?Q5\9:::!!666KE4E3?Q5\9:::	z	"	" - -

7++,,,- - - - - - - - - - - - - - - - - -s   #C77C;>C;c                    t           j                            |          }|                    |           }t          j        |ddg          \  }}t          |          }t          |d||z
  z  | dz  z             t          |d          \  }}t          |d||z
  z  | dz  z             t          j        t                    5  t          |                    d                     d d d            n# 1 swxY w Y   g dd	gd
z  z   g dz   }t          j        t          d          5  t          j
        t          d          5  t          |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        g dd
z  d	gz   g dz   t           j                  }|dz  }t          |d          \  }}t          |d           d S )N   K   r   r   Tr   r   )   r         d   )         zPlease use another bin method)matchzdivide by zero encountered)dtypegTqs*>g6

>)r   r   r   r   
percentiler   r   r   r   r   warnsRuntimeWarningasarrayfloat32)	r   r   r   r   v25v75r   r   test_xs	            r    test_freedman_bin_widthr6      s   
)


&
&CAA}QR))HCq!!EE1c	?Q5\9:::$QD999KE4E1c	?Q5\9:::	z	"	" 0 03::g..///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 YY!s"YYY.F	z)I	J	J	J 9 9\.0MNNN 	9 	9v48888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	99 9 9 9 9 9 9 9 9 9 9 9 9 9 9
 Z			C1#-			9LLLF
fF$V>>>KE4E011111sH   #C22C69C6(E9E"E9"E&	&E9)E&	*E99E= E=zrequires scipy)reasonc                    t           j                            |          }|                    |           }t	          |d          \  }}t          t          |          d           t	          |          }||k    sJ t          j        t                    5  t	          |                    d                     d d d            d S # 1 swxY w Y   d S )NTr   :   r   )
r   r   r   r   r   r   lenr   r   r   )r   r   r   r   dxr   dx2s          r    test_knuth_bin_widthr=   ;   s    
)


&
&CAAqd333HBCIIr"""
!

C9999	z	"	" - -

7++,,,- - - - - - - - - - - - - - - - - -s   #CC
C
  c                 ,   t           j                            |          }|                    |           }t	          |d          \  }}|                                t          |          k    sJ t          |          t          |          dz
  k    sJ d S )Nknuthr%   r   r   r   r   r   sumr:   )r   r   r   xcountsr   s         r    test_knuth_histogramrE   J   s    
)


&
&CAAQ((LFD::<<3q66!!!!v;;#d))a-''''''    )   scottfreedmanblocksr@   bin_typer)      c                 ,   t           j                            |          }|                    |          }t	          ||           \  }}|                                t          |          k    sJ t          |          t          |          dz
  k    sJ d S )Nr%   rA   )rK   r   r   r   rC   rD   r   s          r    test_histogramrO   Y   s    
)


&
&CAAQ))LFD::<<3q66!!!!v;;#d))a-''''''rF   c                    t           j                            |          }|                    |          }d}t	          || |          }|                                |d         k    sJ |                                |d         k    sJ d S )Ng?g?ranger%   r   )r   r   r   r   r   maxmin)rK   r   r   r   rC   rS   r   s          r    test_histogram_rangerV   d   s     )


&
&CAAEq(%888D88::q!!!!88::q!!!!!!rF   c                     t           j                            |          }|                    |           }d}t          j        ddd          }t          |||          }t          ||k              sJ d S )NrQ   rL   r)   rM   rR   )r   r   r   r   linspacer   all)r   r   r   rC   rS   
input_binsr   s          r    #test_histogram_range_with_bins_listr[   p   sw     )


&
&CAAERB''Jq*E:::Dtz!"""""""rF   c                      t           j                            d          } |                     d          }t	          |d          \  }}t          |g d           t          |g d           d S )Nr   r(   r@   r   )	r   r%                  r      )
zgМށghgHh=g:y	ٿgJȋu??g3m?gW\?g-,rWX?Ӧf @r   r   r   r   r   r   r   r   rD   r   s       r    test_histogram_output_knuthrh   |   s    
)


"
"CC  AQW---LFDF===>>> D W W W X X X X XrF   c                  2   t           j                            d          } |                     d          }t	          |d          \  }}t          |g d           t          |g d           t	          |d          \  }}t          |g d           t          |g d	           t	          |d
          \  }}t          |g d           t          |g dd           t	          |d          \  }}t          |ddg           t          |g d           d S )Nr   r(   r   r]   )
r   r      rb   rb         rc   	   rc   )rd   gaF>FgMZg8mgGg-\Ŀg(˔^?g24"A?g)8@Y0?gI?re   rH   )r   rb      r#   rl   rl   )rd   g7gv}g9eÿgvNkv?gϱ?g=9 @rI   )r      rl   ra      rb   r^   r'   )	rd   gˮg帍g/]Rg*-ć?g4~?gAoG?gZ4:9?g(V2@gH׊>)rtolrJ   r&   a   )rd   gT!re   rf   rg   s       r    test_histogram_outputrs      s|   
)


"
"CC  AQR(((LFDF???@@@ D ' ' ' ( ( (
 QW---LFDF333444 D 2 2 2 3 3 3 QZ000LFDF:::;;; D K K KQUW W W W QX...LFDFQG$$$D@@@AAAAArF   c                    t           j                            |          }|                    |           }dD ]E}t	          j        t                    5  t          |||           d d d            n# 1 swxY w Y   Ft	          j        t                    5  t          |d           d d d            d S # 1 swxY w Y   d S )N)rH   rI   rJ   )weightsbad_argumentr]   )	r   r   r   r   r   r   NotImplementedErrorr   r   )r   r   r   rC   r   s        r    test_histogram_badargsrx      s@   
)


&
&CAA 0 * *].// 	* 	*aq))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 
z	"	" * *!.))))* * * * * * * * * * * * * * * * * *s$   A11A5	8A5	B55B9<B9)r
   r   )r>   r   )numpyr   r   numpy.testingr   astropy.statsr   r   r   r   r   "astropy.utils.compat.optional_depsr	   r!   r6   markskipifr=   rE   _bin_types_to_testparametrizerX   rO   rV   r[   rh   rs   rx    rF   r    <module>r      sB        ) ) ) ) ) )              9 8 8 8 8 8- - - -2 2 2 28 	M*:;;- - - <;- 	M*:;;( ( ( <;( 988  $7)# %7;2;r1b;Q;Q:R%RSS( ( ( TS( %788" " " 98"	# 	# 	# 	# 	M*:;;	X 	X <;	XB B BD* * * * * *rF   