
    Vfd1"                        d dl Zd dlmZmZ d dlZd dlmZ d dlm	Z	m
Z
mZmZ 	 d dlmZ n# e$ r Y nw xY w ej                    Z ej        ej                  e_        ej        ddd f                             e          Zej        ddddf         Zej        j        d             Zej        j        ej        j        d                         Zej        j        ej        j        d                         Zej        j        ej        j        d	                         Zej        j        ej        j        d
                         Zej        j        ej        j        d                         Z ej        j        d             Z!ej        j        ej        j        d                         Z"d Z#d Z$ej        j        d             Z%dS )    N)assert_almost_equalassert_equal)elnino)	banddepthfboxplot
hdrboxplotrainbowplot   c                    	 t          t          t          d          \  }}n$# t          $ r t	          j        d           Y nw xY wt          |j                  dk    sJ g d}t          |j	        |d           t          j        |j        |j        |j        g          }t          j        g dg d	g d
g dg dg dg dg dg          }t          ||d           t          j        t          j        t          |j                                      t          j                  d          }t          |         }t'          g d|           t'          t          |j                 |           d S )N90  )labelsseed0Multiprocess randomly crashes in Windows testingr   gZd;?8@g     9@gX99@g9v8@gS7@gZd;OM6@gB`";5@gV-]4@g^I+4@gvo4@g#~j5@gCL6@   decimal)g\(\8@gQk9@ffffff9@g(\8@g(\58@gY7@g     6@gp=
5@g
ףp=
6@gzG6@gR8@gp=
9@)g     @;@g{G:<@g<@R<@gQ^<@gGzn;@g{G9@gzG7@(\B6@gQ86@g(\56@gq=
ף07@)g333337@gGz:@gQ+;@g=
ףp:@gQ:@gfffff&:@gףp=
9@g333338@gq=
ף8@gp=
ף8@g9@gGz;@)gQ<@r   g=
ףp==@g33333s<@g\(\;@gq=
ף09@g\(7@gQE6@(\O5@gQ^5@g5@g(\6@)g{Gz9@g=
ףp:@g(\;@g
ףp=
;@{G::@gq=
ף8@gq=
ף7@gQ6@r   p=
ף6@gGzT7@gq=
ףp8@)g\(7@g     8@g)\8@gq=
ףp7@g=
ףp5@gGz4@gGz3@gףp=
2@g(\2@g=
ףp2@g)\3@g\(4@)gףp=
8@r   gQ:@gGz9@gQ8@gR7@g(\u6@g33333s5@g(\B5@gR5@gp=
#6@g)\h7@)gQ7@皙9@gףp=
W9@gQ88@g=
ףp6@gQ5@gffffff4@g(\3@gzG3@gQ3@gQ^4@g(\5@r
   axis)        )r   datar   WindowsErrorpytestxfaillenextra_quantilesr   mediannpvstackoutliershdr_90hdr_50allin1dreshapeshaper   outliers_idx)close_figures_hdrmedian_tquantquant_t
labels_posr*   s           Jlib/python3.11/site-packages/statsmodels/graphics/tests/test_functional.pytest_hdr_basicr:      s   IDe<<<33 I I IGHHHHHI s"##q((((@ @ @H 
Ha8888Is|SZ<==Ei D D DD D DD D DD D DD D DD D DD D DD D DE F FG" w2222cl33;;DJGG     Jj!H)))8444()844444s   " AAc                     	 t          t          dt          d          \  }}n$# t          $ r t	          j        d           Y nw xY wt          |j                  dk    sJ g d}t          |j	        |d           d S )Nr   T)ncompr   	use_bruter   r   r   r   )
r   r!   r   r"   r#   r$   r%   r&   r   r'   )r2   reset_randomstater3   r4   r5   s        r9   test_hdr_basic_bruter?   C   s    ID&DIII33 I I IGHHHHHI s"##q((((@ @ @H 
Ha888888s    # AAc                 
   t          j                    }|                    d          }	 t          t          t
                                          |dd           n$# t          $ r t          j	        d           Y nw xY w|
                    d           |                    d           |                    t          j        dd	
          dz
             |                    g d           |                    ddg           d S )No   r
   r   )r   ax	thresholdr   r   zMonth of the yearzSea surface temperature (C)      )step) MarJunSepDecgɿgffffff&@)pltfigureadd_subplotr   r!   r   tolistr"   r#   r$   
set_xlabel
set_ylabel
set_xticksr(   arangeset_xticklabelsset_xlim)r2   figrB   s      r9   test_hdr_plotrW   S   s    *,,C			BI4B!	 	 	 	 	 I I IGHHHHHI MM%&&&MM/000MM")BQ'''!+,,,777888KKts   0A A<;A<c                     	 t          t          dgd          \  }}n$# t          $ r t          j        d           Y nw xY wt          j        g dg dg          }t          |j        |d           d S )	Ngffffff?r   alphar   r   )r   g     :@g      ;@gffffff:@r   g8@g      7@g      6@g333335@g6@g333336@g7@)gffffff7@g8@g      9@gfffff7@ffffff6@g5@g      4@gL3@g3333333@gffffff3@g4@gL5@r   r   )	r   r!   r"   r#   r$   r(   r)   r   r&   r2   r3   r4   extra_quant_ts       r9   test_hdr_alphar^   f   s    IDE:::33 I I IGHHHHHI I  D  D  D D  D  DE F FM +]AFFFFFFs    ??c                     	 t          t          ddgd          \  }}n$# t          $ r t          j        d           Y nw xY wg dg dg dg d	g}t          |j        t          j        |          d
           d S )Ng?gq=
ףp?r   rY   r   )gʡE9@gZd;O;@gt;@g333333;@gx):@gh|?8@g$7@gT㥛`6@g     @6@r   gFx7@g/$8@)g+6@g-阮8@gS㥛8@g+W7@g r5@gHz4@g     3@g3@gZd;2@gw/2@gQ3@g(\4@)gn8@g r:@g"~j:@g/$9@g+N8@gMbX6@gv5@g 4@gS{4@g/5@gK7A5@gp=
6@)gsh|7@g"^9@gn9@g/ݤ8@gZd;O-7@g?5^I5@g"~4@gp=
4@gOn3@g~jt3@gZd;4@gS5@r   r   )	r   r!   r"   r#   r$   r   r&   r(   r)   r\   s       r9   test_hdr_multiple_alphar`   u   s    IDd%@@@33 I I IGHHHHHI6 6 66 6 66 6 66 6 67M +RY}-E-E !# # # # # #    A A c                 h   	 t          t          dgdd          \  }}n$# t          $ r t          j        d           Y nw xY wt          j        t          j        t          |j                  	                    t          j
                  d          }t          |         }t          g d|           d S )	Ng?g(\?r   )rZ   rC   r   r   r
   r   )i  r   r   r   r    )r   r!   r"   r#   r$   r(   r-   r.   r*   r/   r0   r   r   )r2   r3   r4   r8   r*   s        r9   test_hdr_thresholdrc      s    ID!&( ( (33 I I IGHHHHHI cl33;;DJGG     Jj!H///:::::ra   c                     	 t          t          dd          \  }}n$# t          $ r t          j        d           Y nw xY wg d}t          |j        |d           d S )Ncv_mlr   )bwr   r   )g     @8@gp=
ף9@g=
ףp9@g
ףp=
9@g(\µ7@zGa6@r   gq=
ףp4@g=
ףp=4@g(\4@gq=
ף05@rg   r   r   r   r!   r"   r#   r$   r   r'   r2   r3   r4   r5   s       r9   test_hdr_bwrj      s    IDW599933 I I IGHHHHHI: : :H
Ha888888    >>c                     	 t          t          dd          \  }}n$# t          $ r t          j        d           Y nw xY wg d}t          |j        |d           d S )NrE   r   )r<   r   r   )gGzT8@g(\µ9@g
ףp=
:@gGz9@g=
ףp7@r[   gRQ5@g33333s4@g     @4@gHz4@g3333335@gp=
c6@r   r   rh   ri   s       r9   test_hdr_ncomprm      s    ID66633 I I IGHHHHHI: : :H
Ha888888rk   c                     t          j        d          dz  } ddt          j        |           z  z   }dt          j        | t           j        dz  z             z   }dt          j        | t           j        dz  z             z   }ddt          j        | t           j        dz  z             z  z   }t          j        ||||g          }t          |d	
          }g d}t          ||           d S )Ni  g     b@r
         ?g333333?   g      BD2method)ro   竪?ru   ro   )r(   rS   sinpicosasarrayr   r   xxy1y2y3y4r!   depthexpected_depths           r9   test_banddepth_BD2r      s    	3$	B	
S26"::	B	rvb257l##	#B	rBE!G|$$	$B	cBF2a<(((	(B:r2r2&''Dd5)))E+++N~.....    c                  d   t          j        d          dz  } t          j        | j                  }d| z  dz
  }t          j        | j                  dz  }t          j        | j                  dz  }t          j        ||||g          }t          |d          }g d	}t          ||d
           d S )Ni  g     @r   r
   ro   g      пMBDrs   )ru         ?g?r      r   )r(   rS   zerosr0   onesry   r   r   rz   s           r9   test_banddepth_MBDr      s    	45	 B	"(		B	
R!B			S	 B			U	"B:r2r2&''Dd5)))EEEEN~q999999r   c                 d   d t           j                            d           t          j        ddt           j        z  d          fdt          d          D             }t          j                    }|                    d          }t          |d|	          \  }}}}t          j
        g d
          }t          ||           t          j
        g d          }	t          ||	           t          j        |d         j                  }
t          ||
|t          j        j                  }d S )Nc                 H   t          t          j                                        dk              }t          j                                        dz  }t          j                                        dz  }dt          j                                        z  dz   }dt          j                                        z  dz   }d|z
  |t          j        |           z  |t          j        |           z  z   z  ||t          j        |           z  |t          j        |           z  z   z  z   }|S )z3Test function, combination of a few harmonic terms.g?g?g?g?r
   )intr(   randomrv   rx   )tcia1ia2ib1ib2ifuncs          r9   harmfuncz+test_fboxplot_rainbowplot.<locals>.harmfunc   s     !!##c)**i  4'i  4'RY--///#5RY--///#5B3?S26!99_<=#q		/C"&))O345 r   i r   r      c                 &    g | ]}           S  r   ).0r3   r   r   s     r9   
<listcomp>z-test_fboxplot_rainbowplot.<locals>.<listcomp>   s!    +++AHHQKK+++r      rA   )wfactorrB   )rD   r            rp   rE      	      r
      r               
   r      )r   r   r   r   )xdatar   cmap)r(   r   r   linspacerw   rangerL   rM   rN   r   arrayr   rS   sizer	   cmrainbow)r2   r!   rV   rB   r3   r   ix_depthix_outliersix_expectedix_expected2r   r   r   s              @@r9   test_fboxplot_rainbowplotr      s'      INN7
Aq25y#&&A+++++r+++D *,,C			B&.tQ2&F&F&F#Auh( 7 7 7 8 8K;'''8OOO,,Ll+++ Id1gl##E
d%u36>
J
J
JCCCr   )&numpyr(   numpy.testingr   r   r#   statsmodels.datasetsr   statsmodels.graphics.functionalr   r   r   r	   matplotlib.pyplotpyplotrL   ImportErrorloadr!   ry   raw_dataastyper   r   mark
matplotlibr:   slowr?   rW   r^   r`   rc   rj   rm   r   r   r   r   r   r9   <module>r      s       ; ; ; ; ; ; ; ;  ' ' ' ' ' '           	####### 	 	 	D	 v{}}
4=))	qqq!t		#	#C	(	(}QQQU %5 %5 %5P 9 9  9    " 
G 
G  
G # #  #, 
; 
;  
; 9 9 9 9 9  9
/ 
/ 
/,
: 
: 
: "K "K "K "K "Ks   + 33