
    A>i/                     ,   S r SSKrSSKrSSKrSSKJrJrJrJ	r	J
r
  SSKJr  SSKJrJrJrJrJrJrJrJrJrJr  \R2                  " S5      r\R2                  " S5      rSSKJr  \R<                  S 5       r " S	 S
5      r  " S S5      r! " S S5      r"g)zTest cases for .hist method    N)	DataFrameIndexSeries
date_rangeto_datetime)
_check_ax_scales_check_axes_shape_check_colors_check_legend_labels_check_patches_all_filled_check_plot_works_check_text_labels_check_ticks_props
get_x_axis
get_y_axis
matplotlibzmatplotlib.pyplot)_grouped_histc            	      l    [        [        R                  " S[        R                  S9[	        SSSS9SS9$ )N   dtypez
2020-01-01B)periodsfreqtsindexname)r   nparangefloat64r        e/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/plotting/test_hist_method.pyr   r   #   s0    
		"BJJ'r< r#   c                      \ rS rSr\R
                  R                  S0 SS0SS0/5      S 5       r\R
                  R                  S0 SS	0/5      S
 5       rS r	S r
S rS rS rS rS r\R
                  R                   \R
                  R                  S/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      S 5       5       rS rS rS rS r\R
                  R                  S/ S Q5      S! 5       r\R
                  R                  S"S#S$/5      S% 5       r\R
                  R                  S&S'S(/5      S) 5       rS* rS+ rS, r\R
                  R9                  S-S.9S/ 5       rS0 rS1 r\R
                  R9                  S-S.9S2 5       r S3 r!S4 r"S5r#g')6TestSeriesPlots,   kwargsgridFfigsize   
   c                 0    [        UR                  40 UD6  g N)r   histselfr   r(   s      r$   test_hist_legacy_kwargs'TestSeriesPlots.test_hist_legacy_kwargs-   s    "'',V,r#   bins   c                     [         R                  " [        SS9   [        UR                  4SUR
                  R                  0UD6  S S S 5        g ! , (       d  f       g = f)NFcheck_stacklevelby)tmassert_produces_warningUserWarningr   r0   r   monthr1   s      r$   test_hist_legacy_kwargs_warning/TestSeriesPlots.test_hist_legacy_kwargs_warning1   s?     ''eLbggC"((..CFC MLLs   -A
Ac                 r    [         R                  R                  SS5      u  p#[        UR                  USS9  g )N   T)axdefault_axesmplpyplotsubplotsr   r0   r2   r   figrC   s       r$   test_hist_legacy_ax#TestSeriesPlots.test_hist_legacy_ax7   s*    **%%a+"''bt<r#   c                 r    [         R                  R                  SS5      u  p#[        UR                  X2SS9  g )NrB   T)rC   figurerD   rE   rI   s       r$   test_hist_legacy_ax_and_fig+TestSeriesPlots.test_hist_legacy_ax_and_fig;   s*    **%%a+"''b4Hr#   c                 r    [         R                  R                  SS5      u  p#[        UR                  USS9  g )NrB   T)rN   rD   rE   )r2   r   rJ   _s       r$   test_hist_legacy_fig$TestSeriesPlots.test_hist_legacy_fig?   s*    $$Q*"''#DAr#   c                     [         R                  R                  SS5      u  nu  p4[        UR                  X#SS9  [        UR                  X$SS9  g )NrB      T)rN   rC   rD   rE   )r2   r   rJ   ax1ax2s        r$   test_hist_legacy_multi_ax)TestSeriesPlots.test_hist_legacy_multi_axC   s>    **--a3Zc"''#DI"''#DIr#   c                     [         R                  R                  SS5      u  p#Sn[        R                  " [
        US9   UR                  UR                  US9  S S S 5        g ! , (       d  f       g = f)NrB   z`Cannot pass 'figure' when using the 'by' argument, since a new 'Figure' instance will be createdmatch)r:   rN   )rF   rG   rH   pytestraises
ValueErrorr0   r   )r2   r   rJ   rR   msgs        r$   test_hist_legacy_by_fig_error-TestSeriesPlots.test_hist_legacy_by_fig_errorH   sT    $$Q*' 	 ]]:S1GGrxxG, 211s   A""
A0c                     [        [        R                  R                  S5      R	                  S5      5      nUR                  SS9S   S   n[        UR                  5      S:X  d   eg )NrV   r-   rV   )r5   r   )r   r   randomdefault_rngstandard_normalr0   lenpatches)r2   dfrC   s      r$   test_hist_bins_legacy%TestSeriesPlots.test_hist_bins_legacyQ   sU    ryy,,Q/??HIWW!W_Q"2::!###r#   c                 @   UnSn[         R                  " [        US9   UR                  R	                  SS9  S S S 5        [         R                  " [        US9   UR                  R	                  SS/S9  S S S 5        g ! , (       d  f       NL= f! , (       d  f       g = f)Nz7The 'layout' keyword is not supported when 'by' is Noner\   rB   rB   layoutrB   )r^   r_   r`   heightr0   )r2   hist_dfrk   ra   s       r$   test_hist_layout TestSeriesPlots.test_hist_layoutV   sq    G]]:S1IINN&N) 2 ]]:S1IINN1a&N) 21 21 21s   A>B>
B
Bz by, layout, axes_num, res_layout)genderrV   rB   rV   rw   )rv      rV   )ry   rB   )category   rB   r}   r|   )r{   rV   rz   r}   rV   rV   )r{   rx   r}   )ry   rV   )r{   rz   r}   r}   rB   r}   )	classroomr   ry   r   c                     Un[         R                  " [        SS9   [        UR                  R
                  [        Xb5      US9nS S S 5        [        WXES9  g ! , (       d  f       N= f)NFr8   r:   rq   axes_numrq   )r;   r<   r=   r   rr   r0   getattrr	   )r2   rs   r:   rq   r   
res_layoutrk   axess           r$   test_hist_layout_with_by(TestSeriesPlots.test_hist_layout_with_by_   sP     
 ''eL$RYY^^PVWD M$E MLs   )A
A&c                 j    UnUR                   R                  UR                  SSS9n[        USSSS9  g )Nr}   rV   )      )r:   rq   r*   r}   r   rq   r*   )rr   r0   r{   r	   r2   rs   rk   r   s       r$   test_hist_layout_with_by_shape.TestSeriesPlots.test_hist_layout_with_by_shapev   s1    yy~~VW~M$67Kr#   c                    [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R	                  S5      5      n[
        R                  S5        UR                  5         [
        R                  S5        UR                  5         [
        R                  5       nUR                  n[        U5      S:X  d   eg )NrV   y   z   )r   r   rf   rg   rh   pltsubplotr0   gcfr   ri   )r2   xyrJ   r   s        r$   test_hist_no_overlap$TestSeriesPlots.test_hist_no_overlap|   s    299((+;;A>?299((+;;A>?C	C	ggixx4yA~~r#   c                     UnUR                   R                  UR                  S9  [        [        R
                  R                  5       5      S:X  d   eg )Nr:   rB   )rr   r0   rv   ri   rF   rG   get_fignums)r2   rs   rk   s      r$   test_hist_by_no_extra_plots+TestSeriesPlots.test_hist_by_no_extra_plots   s=    
		"))$3::))+,111r#   c                    [         R                  S5      n[         R                  S5      nUR                  S5      nSn[        R                  " [
        US9   UR                  XCS9  S S S 5        g ! , (       d  f       g = f)NrB   rV   o   z&passed axis not bound to passed figurer\   )rC   rN   )r   rN   add_subplotr^   r_   AssertionErrorr0   )r2   r   fig1fig2rW   ra   s         r$   +test_plot_fails_when_ax_differs_from_figure;TestSeriesPlots.test_plot_fails_when_ax_differs_from_figure   sY    zz!}zz!}s#6]]>5GGsG( 655s   A00
A>histtype, expected)barT)
barstackedT)stepF)
stepfilledTc                     [        [        R                  R                  S5      R	                  SS5      5      nUR                  US9n[        XBS9  g )NrV   rB   r-   histtypefilled)r   r   rf   rg   integersr0   r   )r2   r   expectedserrC   s        r$   test_histtype_argument&TestSeriesPlots.test_histtype_argument   sB     RYY**1-66q"=>XXxX(!"6r#   z&by, expected_axes_num, expected_layout)NrB   ro   )brV   )rB   rV   c                    SS/-  SS/-  -   n[        [        R                  R                  S5      R	                  S5      USS9nSUR
                  l        [        UR                  S	S	US
9n[        XbUS9  [        US5        g )Nr6   12rV   r-   ar   r   T)rD   legendr:   r   )r   r   rf   rg   rh   r   r   r   r0   r	   r   )r2   r:   expected_axes_numexpected_layoutr   sr   s          r$   test_hist_with_legend%TestSeriesPlots.test_hist_with_legend   sx    
 SE	AI%299((+;;B?uSVW !d4BO$?ST3'r#   r:   Nr   c                 6   SS/-  SS/-  -   n[        [        R                  R                  S5      R	                  S5      USS9nSUR
                  l        [        R                  " [        S	S
9   UR                  SUSS9  S S S 5        g ! , (       d  f       g = f)Nr6   r   r   rV   r-   r   r   r    Cannot use both legend and labelr\   Tc)r   r:   label)r   r   rf   rg   rh   r   r   r^   r_   r`   r0   )r2   r:   r   r   s       r$   test_hist_with_legend_raises,TestSeriesPlots.test_hist_with_legend_raises   s|     SE	AI%299((+;;B?uSVW]]:-OPFF$2SF1 QPPs   /B


Bc                     [         R                  R                  5       u  p#UR                  R	                  SUS9n[        UR                  5      S:X  d   e[        UR                  R                  5       S5        g )Nr6   r5   rC   	Frequency)
rF   rG   rH   plotr0   ri   rj   r   yaxis	get_labelr2   r   rR   rC   s       r$   test_hist_kwargs TestSeriesPlots.test_hist_kwargs   sY    

##%WW\\qR\(2::!###288--/=r#   c                     [         R                  R                  5       u  p#UR                  R	                  SUS9nUR                  R	                  SUS9n[        UR                  R                  5       S5        g )Nr6   r   
horizontal)orientationrC   r   )rF   rG   rH   r   r0   r   xaxisr   r   s       r$   test_hist_kwargs_horizontal+TestSeriesPlots.test_hist_kwargs_horizontal   sY    

##%WW\\qR\(WW\\lr\:288--/=r#   c                     [         R                  R                  5       u  p#UR                  R	                  SUS9nUR                  R	                  SSUS9ng )Nr6   r   leftT)alignstackedrC   )rF   rG   rH   r   r0   r   s       r$   test_hist_kwargs_align&TestSeriesPlots.test_hist_kwargs_align   sD    

##%WW\\qR\(WW\\\<r#   zApi changed in 3.6.0)reasonc                 \   [         R                  " S5        [        R                  R	                  5       u  p#UR
                  R                  SUS9n[        USS9  UR                  5       n[        US/[        U5      -  5        UR                  5       n[        US/[        U5      -  5        g NscipyT)logyrC   logr    )r^   importorskiprF   rG   rH   r   r0   r   get_xticklabelsr   ri   get_yticklabelsr2   r   rR   rC   xlabelsylabelss         r$   test_hist_kdeTestSeriesPlots.test_hist_kde   s    G$

##%WW\\t\+5)$$&7RD3w<$78$$&7RD3w<$78r#   c                 n    [         R                  " S5        [        UR                  R                  5        g Nr   )r^   r   r   r   kder2   r   s     r$   test_hist_kde_plot_works(TestSeriesPlots.test_hist_kde_plot_works   s     G$"''++&r#   c                 n    [         R                  " S5        [        UR                  R                  5        g r   )r^   r   r   r   densityr   s     r$   test_hist_kde_density_works+TestSeriesPlots.test_hist_kde_density_works   s     G$"''//*r#   c                 \   [         R                  " S5        [        R                  R	                  5       u  p#UR
                  R                  SUS9n[        USS9  UR                  5       n[        US/[        U5      -  5        UR                  5       n[        US/[        U5      -  5        g r   )r^   r   rF   rG   rH   r   r   r   r   r   ri   r   r   s         r$   test_hist_kde_logy"TestSeriesPlots.test_hist_kde_logy   s    G$

##%WW[[dr[*5)$$&7RD3w<$78$$&7RD3w<$78r#   c                 "   [         R                  " S5        [        R                  R	                  5       u  p#UR
                  R                  SSSUS9n[        USS9  [        UR                  5      S:X  d   e[        UR                  S/S-  S9  g )	Nr   Tr-   r   )r   r5   colorrC   r   r   )
facecolors)r^   r   rF   rG   rH   r   r0   r   ri   rj   r
   r   s       r$   test_hist_kde_color_bins(TestSeriesPlots.test_hist_kde_color_bins   sr    G$

##%WW\\t"CB\?5)2::"$$$bjjcURZ8r#   c                    [         R                  " S5        [        R                  R	                  5       u  p#UR
                  R                  SSUS9n[        USS9  UR                  5       n[        U5      S:X  d   e[        US/5        g )Nr   Tr)r   r   rC   r   r   rB   )r^   r   rF   rG   rH   r   r   r   	get_linesri   r
   )r2   r   rR   rC   liness        r$   test_hist_kde_color#TestSeriesPlots.test_hist_kde_color   sm    G$

##%WW[[d#"[55)5zQecU#r#   r"   )$__name__
__module____qualname____firstlineno__r^   markparametrizer3   r?   rK   rO   rS   rY   rb   rl   rt   slowr   r   r   r   r   r   r   r   r   r   r   xfailr   r   r   r   r  r  __static_attributes__r"   r#   r$   r&   r&   ,   s   [[XVUOi=Q'RS- T- [[XVQK'89D :D
=IBJ
-$
* [[[[*)*+,,,,	
F FL	2
) [[	
77 [[03DFV2W	(	( [[TD#;/2 02>>=
 [[45	9 6	9'+ [[459 699$r#   r&   c                      \ rS rSr\R
                  R                  S 5       r\R
                  R                  S 5       r\R
                  R                  S 5       r	\R
                  R                  S 5       r
\R
                  R                  \R
                  R                  SSSS.S	S
0SS0/5      S 5       5       r\R
                  R                  S 5       r\R
                  R                  S 5       r\R
                  R                  S 5       r\R
                  R                  S 5       rS r\R
                  R                  SSSS.SSS.SSS.SSS.SSS.SSS.SSS.SSS.SSS.4	5      S 5       rS rS  rS! r\R
                  R                  S"S/ S#Q4/ S$Q/ S$Q4/5      S% 5       r\R
                  R                  S&/ S'Q5      S( 5       r\R
                  R                  S)SS*/5      \R
                  R                  S+SS,/5      S- 5       5       r\R
                  R                  S)SS*/5      \R
                  R                  S+SS,/5      S. 5       5       rS/ rS0 rS1 rS2 rS3 rS4 rS5 r S6r!g)7TestDataFramePlots   c                     [         R                  " [        SS9   [        UR                  5        S S S 5        g ! , (       d  f       g = f)NFr8   )r;   r<   r=   r   r0   )r2   rs   s     r$   test_hist_df_legacy&TestDataFramePlots.test_hist_df_legacy   s+    ''eLgll+ MLLs	   9
Ac           	         [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSS[        R                  S95      US'   [        R                  " [        SS9   [        UR                  SS	9nS S S 5        [        WS
SS9  US   R                  5       (       a   e[        US/   R                  5        g ! , (       d  f       NM= f)NrV   re        j+2Z     ReZr-   sizer   Fr8   )r)   ry   r   r   ro   )r   r   rf   rg   rh   r   r   int64r;   r<   r=   r   r0   r	   get_visibler2   rk   r   s      r$   test_hist_df_legacy_layout-TestDataFramePlots.test_hist_df_legacy_layout  s     ryy,,Q/??HIII!!!$--""hh	 . 
1 ''eL$RWW59D M$6::))++++"aS',,' MLs   C66
Dc                     [        [        R                  R                  S5      R	                  S5      5      n[        UR                  5        g )NrV   r-   rB   )r   r   rf   rg   rh   r   r0   r2   rk   s     r$   test_hist_df_legacy_layout2.TestDataFramePlots.test_hist_df_legacy_layout2  s2    ryy,,Q/??HI"''"r#   c           	         [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSS[        R                  S95      US'   [        R                  " [        SS	9   [        UR                  S
S9nS S S 5        [        WSS
S9  g ! , (       d  f       N= f)NrV   r-   r6   r  r  r-   r  r6   Fr8   r   rp      r   )r   r   rf   rg   rh   r   r   r  r;   r<   r=   r   r0   r	   r  s      r$   test_hist_df_legacy_layout3.TestDataFramePlots.test_hist_df_legacy_layout3  s     ryy,,Q/??HIII!!!$--""hh	 . 
1 ''eL$RWWV<D M$6: MLs   C
Cr(   T)sharexshareyr*   r+   r5   r6   c           	         [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSS[        R                  S95      US'   [        R                  " [        SS	9   [        UR                  40 UD6  S S S 5        g ! , (       d  f       g = f)
NrV   r(  r  r  r-   r  r6   Fr8   )r   r   rf   rg   rh   r   r   r  r;   r<   r=   r   r0   )r2   r(   rk   s      r$   !test_hist_df_legacy_layout_kwargs4TestDataFramePlots.test_hist_df_legacy_layout_kwargs+  s    
 ryy,,Q/??HIII!!!$--""hh	 . 
1 ''eLbgg00 MLLs   B::
Cc                 l    U" [        S5      5      nSu  p4Su  pVUR                  X5XFS9n[        XsXTUS9  g )Nr-         r   (   
xlabelsizexrot
ylabelsizeyrot)ranger0   r   )r2   frame_or_seriesobjxfyfr9  r;  r   s           r$   (test_hist_df_legacy_layout_labelsize_rot;TestDataFramePlots.test_hist_df_legacy_layout_labelsize_rot?  s>     eBi(
xx2RxK4TtTr#   c                 >   [        [        S5      5      nUR                  SSSS9nUR                  5        Vs/ s H0  n[	        U[
        R                  R                  5      (       d  M.  UPM2     nn[        R                  " US   R                  5       S5        g s  snf )Nr-   Tr}   )
cumulativer5   r   rz         ?)r   r<  r0   get_children
isinstancerF   rj   	Rectangler;   assert_almost_equal
get_height)r2   r   rC   r   rectss        r$   test_hist_df_legacy_rectangles1TestDataFramePlots.test_hist_df_legacy_rectanglesH  sw    U2YXXAtX<OO-V-qAs{{?T?T1U-V
uRy335s; Ws   -B)Bc                 ^    [        [        S5      5      nUR                  SS9n[        USS9  g )Nr-   T)r   r   r   )r   r<  r0   r   )r2   r   rC   s      r$   test_hist_df_legacy_scale,TestDataFramePlots.test_hist_df_legacy_scaleP  s*    U2YXX$X5)r#   c                     [        [        S5      5      n[        R                  " [        5         UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nr-   r   )foo)r   r<  r;   external_error_raisedAttributeErrorr0   )r2   r   s     r$   "test_hist_df_legacy_external_error5TestDataFramePlots.test_hist_df_legacy_external_errorW  s8    U2Y%%n5HHH 655s   A
Ac                    [        [        R                  R                  S5      R                  S5      [        R                  R                  S5      R	                  SSS5      [        [        R                  R                  S5      R	                  SSS[        R                  S95      [        [        R                  R                  S5      R	                  SSS[        R                  S9SS9S	.5      nUR                  [        5      nS
n[        R                  " [        US9   UR                  5         S S S 5        g ! , (       d  f       g = f)NrV   r-   r   l     p/ l    @spc/ r   T)utc)r   r   r   dzDhist method requires numerical or datetime columns, nothing to plot.r\   )r   r   rf   rg   r   r   r  astypeobjectr^   r_   r`   r0   )r2   rk   df_ora   s       r$   *test_hist_non_numerical_or_datetime_raises=TestDataFramePlots.test_hist_non_numerical_or_datetime_raises^  s    YY**1-44R8YY**1-66q"bA II))!,55+-@"BHH 6 
 !II))!,55+-@"BHH 6  	
" yy T]]:S1IIK 211s   "D<<
E
layout_testNr   )rq   expected_sizer|   r   )ry   ry   r   )r}   rz   )rz   rV   r~   c           	      H   [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSS[        R                  S95      US'   UR                  US   S9nUS	   n[        US
US9  g )NrV   re   r  r  r-   r  rq   rp   r`  ry   r   )
r   r   rf   rg   rh   r   r   r  r0   r	   )r2   r_  rk   r   r   s        r$   rt   #TestDataFramePlots.test_hist_layoutw  s     ryy,,Q/??HIII!!!$--""hh	 . 
1 wwk(3w4/$8<r#   c           	         [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSS[        R                  S95      US'   Sn[        R                  " [        US9   UR                  S	S
9  S S S 5        [        R                  " S5      n[        R                  " [        US9   UR                  SS
9  S S S 5        Sn[        R                  " [        US9   UR                  SS
9  S S S 5        g ! , (       d  f       N= f! , (       d  f       NS= f! , (       d  f       g = f)NrV   re   r  r  r-   r  z1Layout of 1x1 must be larger than required size 3r\   ro   rp   z)Layout must be a tuple of (rows, columns))rB   1At least one dimension of layout must be positiverz   rz   )r   r   rf   rg   rh   r   r   r  r^   r_   r`   r0   reescape)r2   rk   ra   s      r$   test_hist_layout_error)TestDataFramePlots.test_hist_layout_error  s   ryy,,Q/??HIII!!!$--""hh	 . 
1 B]]:S1GG6G" 2 iiCD]]:S1GG4G  2A]]:S1GG8G$ 21 21
 21 21s$   D/#E E/
D= 
E
Ec           	      h   [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSS[        R                  S95      US'   [        UR                  SS9  [        R                  R                  5         g )	NrV   re   r  r  r-   r  T)rD   )r   r   rf   rg   rh   r   r   r  r   r0   rF   rG   tight_layoutr$  s     r$   test_tight_layout$TestDataFramePlots.test_tight_layout  s    ryy,,Q/??HIII!!!$--""hh	 . 
1 	"''5

!r#   c           	      l    [        / SQ/ SQS.5      n[        UR                  SSSSSS	9n[        USS
9  g )Ng      ?      ?g333333??ry   )pigrabbitrr  rr  rs  )lengthanimalTrt  ru  r6   r   )rD   columnr:   r5   r9  r9  )r   r   r0   r   r  s      r$   test_hist_subplot_xrot)TestDataFramePlots.test_hist_subplot_xrot  sE    1C
 !GG
 	4a(r#   zcolumn, expectedwidthrt  rr   )rt  r{  rr   c                     [        / SQ/ SQ/ SQS./ SQS9n[        UR                  SUSS	9n[        S
5       Vs/ s H  oTSU4   R	                  5       PM     nnXb:X  d   eg s  snf )N)ffffff?皙?g333333?r~  g?ro  )ry   rp  g333333@rV   rB   rz  )rr  rs  duckchickenhorse)r   TrB   ry   )rD   rv  rq   ry   r   )r   r   r0   r<  	get_title)r2   rv  r   rk   r   iresults          r$    test_hist_column_order_unchanged3TestDataFramePlots.test_hist_column_order_unchanged  sx     31-
 @
 !GG	
 38(;(Qq!t*&&((;!!! <s   A"r   r   c                     [        [        R                  R                  S5      R	                  SSSS9SS/S9nUR                  US	9n[        XBS
9  g )NrV   rB   r-   re   r  r   r   columnsr   r   r   r   rf   rg   r   r0   r   r2   r   r   rk   rC   s        r$   r   )TestDataFramePlots.test_histtype_argument  sS     II!!!$--a'-BSRUJ
 WWhW'!"6r#   r:   r   rv  r   c                 |   Uc  Ub  SOSnSU4nU=(       d    SS/nUb  U/S-  n[        SS/-  SS/-  -   SS	9n[        [        R                  R	                  S5      R                  S
5      USS/S9n[        UR                  SSUUS9n[        XUS9  Uc  Uc  US   n[        XXSS9 H  u  p[        X5        M     g )NrB   rV   r   r   r6   r   r   r   r   re   r   r  T)rD   r   r:   rv  r   r   strict)r   r   r   rf   rg   rh   r   r0   r	   zipr   )r2   r:   rv  r   r   expected_labelsr   rk   r   expected_labelrC   s              r$   r   (TestDataFramePlots.test_hist_with_legend  s     "$0BA/0 .S#J>./!3Oa3%i!se)+#6II!!!$44W=#J
 !GG
 	$?S:&.7D"%oD"IN 4 #Jr#   c                 (   [        SS/-  SS/-  -   SS9n[        [        R                  R	                  S5      R                  S5      USS	/S
9n[        R                  " [        SS9   UR                  SXSS9  S S S 5        g ! , (       d  f       g = f)Nr6   r   r   r   r  rV   re   r   r   r  r   r\   TrY  )r   r:   rv  r   )
r   r   r   rf   rg   rh   r^   r_   r`   r0   )r2   r:   rv  r   rk   s        r$   r   /TestDataFramePlots.test_hist_with_legend_raises  s     a3%i!se)+#6II!!!$44W=#J
 ]]:-OPGG4BSGA QPPs   (B
Bc                    [        [        R                  R                  S5      R	                  S5      5      n[
        R                  R                  5       u  p#UR                  R                  SUS9n[        UR                  5      S:X  d   eg )NrV   re   r6   r   r-   r   r   rf   rg   rh   rF   rG   rH   r   r0   ri   rj   r2   rk   rR   rC   s       r$   test_hist_df_kwargs&TestDataFramePlots.test_hist_df_kwargs(  sf    ryy,,Q/??HI

##%WW\\qR\(2::"$$$r#   c                 2   [        [        R                  R                  S5      R	                  S5      / SQS9nSS/S-  US'   [
        R                  R                  5       u  p#UR                  R                  SUS	9n[        UR                  5      S
:X  d   eg )NrV   r-   r}   Ar   CDr  r   r   r6   Er   r3  r  r  s       r$   test_hist_df_with_nonnumerics0TestDataFramePlots.test_hist_df_with_nonnumerics.  s    II!!!$44W=(
 *q.3

##%WW\\qR\(2::"$$$r#   c                 0   [        [        R                  R                  S5      R	                  S5      / SQS9nSS/S-  US'   [
        R                  R                  5       u  p#UR                  R                  US	9n[        UR                  5      S
:X  d   eg )NrV   r  r  r  r   r   r6   r  )rC   r6  r  r  s       r$   %test_hist_df_with_nonnumerics_no_bins8TestDataFramePlots.test_hist_df_with_nonnumerics_no_bins9  s}    II!!!$44W=(
 *q.3

##%WW\\R\ 2::"$$$r#   c                    [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  R                  5       u  p#US   R                  R                  SUS9nUS   R                  R                  USSS	9  [        USS
/S9  UR                  5       R                  5       (       d   eUR                  R                  5       R                  5       (       d   eg )NrV   r  abcdr  r   T)r   rC   r   rC   r   secondary_y	b (right)labels)r   r   rf   rg   rh   listrF   rG   rH   r   r0   r   	get_yaxisr  right_axr  s       r$   test_hist_secondary_legend-TestDataFramePlots.test_hist_secondary_legendD  s    II!!!$44W=tF|

 

##%W\\dr2
3R$? 	Rk(:;||~))++++{{$$&224444r#   c                    [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  R                  5       u  p#US   R                  R                  SSUS9nUS   R                  R                  USSS	9  [        UR                  S
S/S9  UR                  R                  5       R                  5       (       a   eUR                  5       R                  5       (       d   eg )NrV   r  r  r  r   Tr   r  rC   r   r  	a (right)r  r  r   r   rf   rg   rh   r  rF   rG   rH   r   r0   r   left_axr  r  r  s       r$   test_hist_secondary_secondary0TestDataFramePlots.test_hist_secondary_secondaryT  s    II!!!$44W=tF|
 

##%W\\dD
3R$? 	RZZk0JK::'')557777||~))++++r#   c                    [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  R                  5       u  p#US   R                  R                  SSUS9nUS   R                  R                  USS	9  [        UR                  S
S/S9  UR                  R                  5       R                  5       (       d   eUR                  5       R                  5       (       d   eg )NrV   r  r  r  r   Tr  r   )rC   r   r  r  r  r  s       r$   test_hist_secondary_primary.TestDataFramePlots.test_hist_secondary_primaryc  s    II!!!$44W=tF|
 

##%W\\dD
3R- 	RZZc0BCzz##%113333||~))++++r#   c           	      <   [        [        R                  SS/S[        R                  [        R                  // SQ/[        S5      S9n[        R                  " / SQ5      n[        / SQ/ SQ/[        S5      S9n[        R                  " / S	Q/ S
Q/5      n[
        R                  R                  5       u  pVUR                  R                  XbS9  UR                  5        Vs/ s H0  n[        U[
        R                  R                  5      (       d  M.  UPM2     nnU V	s/ s H  oR                  5       PM     n
n	[
        R                  R                  5       u  p[UR                  R                  XS9  UR                  5        Vs/ s H0  n[        U[
        R                  R                  5      (       d  M.  UPM2     nnU V	s/ s H  oR                  5       PM     nn	[        S [!        XSS9 5       5      (       d   e[        R                  " SS/SS//5      nSn[
        R                  R                  5       u  nn["        R$                  " [&        US9   UR                  R                  UUS9  S S S 5        g s  snf s  sn	f s  snf s  sn	f ! , (       d  f       g = f)Nr~  333333?皙?)r}  g?rq  abcr  )      ?r  ?)r  r~  r  )r  r  r  )r  r  r  )rC   weightsc              3   .   #    U  H  u  pX:H  v   M     g 7fr/   r"   ).0h0h1s      r$   	<genexpr>ETestDataFramePlots.test_hist_with_nans_and_weights.<locals>.<genexpr>  s     T*S28*Ss   Tr  r  r  z?weights must have the same shape as data, or be a single columnr\   )r   r   nanr  arrayrF   rG   rH   r   r0   rF  rG  rj   rH  rJ  allr  r^   r_   r`   )r2   rk   r  	no_nan_dfno_nan_weightsrR   ax0r   rK  rectheightsrW   no_nan_rectsno_nan_heightsidxerror_weightsra   rX   s                    r$   test_hist_with_nans_and_weights2TestDataFramePlots.test_hist_with_nans_and_weightss  s   ffc3#rvvrvv!6HK
 ((,-@$u+V	#46H"IJ$$&
-,,.W.q*Q@U@U2V.W167??$7$$&s;'')
)!Z3;;;P;P-QA) 	 
 9EE//+ET#gd*STTTTT88c4[4,$?@O$$&3]]:S1NN30@A 21 X7
 F 21s0   !-I9I9I>-J5JJJ
Jr"   )"r	  r
  r  r  r^   r  r  r  r   r%  r*  r  r/  rA  rL  rO  rU  r]  rt   rh  rl  rx  r  r   r   r   r  r  r  r  r  r  r  r  r"   r#   r$   r  r     s   [[, , [[( ($ [[# # [[; ; [[[[dd3i5IFTU;W1 1  [[U U [[< < [[* * [[   2 [[f577778888
	
==%0")& [[01*,IJ	
"", [[	
77 [[TD#;/[[Xc{35 4 05< [[TD#;/[[Xc{3
B 4 0
B%	%	%5 ,, Br#   r  c                      \ rS rSrS rS rS rS rS rS r	S r
S	 r\R                  R                  \R                  R                  S
/ SQ/ SQ/ SQ/5      S 5       5       r\R                  R                  S 5       r\R                  R                  \R                  R                  S/ SQ/ SQ/ SQ/5      S 5       5       r\R                  R                  \R                  R                  S0 SSS./5      S 5       5       r\R                  R                  \R                  R                  SSSS.SS/S/ S Q0S!S//5      S" 5       5       rS# rS$ rS% rS& rS' rS( r\R                  R                  S)/ S*Q5      S+ 5       rS,rg-).TestDataFrameGroupByPlotsi  c           	      ^   [         R                  R                  S5      n[        UR	                  S5      S/S9n[        UR                  SSS[         R                  S95      US'   UR                  S	S
S5      US'   S/S-  US'   [        UR                  UR                  S9n[        US
SS9  g Nr-   r#  r  r  r  r  r  r   r   r}   r  Xr  r   r   r   )r   rf   rg   r   rh   r   r   r  r   r  r  r	   r2   rsrk   r   s       r$   test_grouped_hist_legacy2TestDataFrameGroupByPlots.test_grouped_hist_legacy  s    YY""2&r))'2SEBKK""hh	  
3 ++aB'3%"*3RTTbdd+$6:r#   c           	      T   [         R                  R                  S5      n[        UR	                  S5      S/S9n[        UR                  SSS[         R                  S95      US'   UR                  S	S
S5      US'   S/S-  US'   UR                  UR                  S9n[        US
SS9  g r  )r   rf   rg   r   rh   r   r   r  r0   r  r	   r  s       r$   *test_grouped_hist_legacy_axes_shape_no_colDTestDataFrameGroupByPlots.test_grouped_hist_legacy_axes_shape_no_col  s    YY""2&r))'2SEBKK""hh	  
3 ++aB'3%"*3ww"$$w$6:r#   c           	      V   [         R                  R                  S5      n[        UR	                  S5      S/S9n[        UR                  SSS[         R                  S95      US	'   UR                  S
SS5      US'   S/S-  US'   UR                  SSS9n[        USSS9  [        USS9  g )NrV   r#  r  r  r  r  r-   r  r   r   r}   r  r  r  r   )r:   rotrB   ro   r   rw  )r   rf   rg   r   rh   r   r   r  r0   r	   r   r  s       r$   #test_grouped_hist_legacy_single_key=TestDataFrameGroupByPlots.test_grouped_hist_legacy_single_key  s    YY""1%r))'2SEBKK""hh	  
3 ++aB'3%"*3ww#2w&$6:4b)r#   c                    [         R                  R                  S5      n[        UR	                  S5      S/S9n[        UR                  SSS[         R                  S95      US	'   UR                  S
SS5      US'   Su  p4Su  pV[        UR                  UR                  SSUUUUSS9	nUR                  5        Hx  nUR                  5        V	s/ s H0  n	[        U	[        R                  R                   5      (       d  M.  U	PM2     n
n	U
S   R#                  5       n[$        R&                  " US5        Mz     [)        XsXTUS9  g s  sn	f )NrV   r#  r  r  r  r  r-   r  r   r   r}   r  r2  r5  T)r:   rD  r5   r8  r9  r:  r;  r   rz   rE  r7  )r   rf   rg   r   rh   r   r   r  r   r  r  ravelrF  rG  rF   rj   rH  rJ  r;   rI  r   )r2   r  rk   r?  r@  r9  r;  r   rC   r   rK  rr   s               r$   ,test_grouped_hist_legacy_grouped_hist_kwargsFTestDataFrameGroupByPlots.test_grouped_hist_legacy_grouped_hist_kwargs  s1   YY""1%r))'2SEBKK""hh	  
3 ++aB'3
DDtt

 **,B??,,a
1ckk>S>S0T,   2Y))+F""63/  	4TtTs   -E?Ec           	      ^   [         R                  R                  S5      n[        UR	                  S5      S/S9n[        UR                  SSS[         R                  S95      US	'   UR                  S
SS5      US'   S/S-  US'   [        UR                  UR                  SS9n[        USS9  g )NrV   r#  r  r  r  r  r-   r  r   r   r}   r  r  r  T)r:   r   r   r   )r   rf   rg   r   rh   r   r   r  r   r  r  r   r  s       r$   %test_grouped_hist_legacy_grouped_hist?TestDataFrameGroupByPlots.test_grouped_hist_legacy_grouped_hist  s    YY""1%r))'2SEBKK""hh	  
3 ++aB'3%"*3RTTbdd5U+r#   c           	         [         R                  R                  S5      n[        UR	                  S5      S/S9n[        UR                  SSS[         R                  S95      US	'   UR                  S
SS5      US'   S/S-  US'   [        R                  " [        5         [        UR                  UR                  SS9  S S S 5        g ! , (       d  f       g = f)NrV   r#  r  r  r  r  r-   r  r   r   r}   r  r  r  r   )r:   rR  )r   rf   rg   r   rh   r   r   r  r;   rS  rT  r   r  r  )r2   r  rk   s      r$   %test_grouped_hist_legacy_external_err?TestDataFrameGroupByPlots.test_grouped_hist_legacy_external_err  s    YY""1%r))'2SEBKK""hh	  
3 ++aB'3%"*3%%n5"$$244U3 655s    C
Cc           	         [         R                  R                  S5      n[        UR	                  S5      S/S9n[        UR                  SSS[         R                  S95      US	'   UR                  S
SS5      US'   S/S-  US'   Sn[        R                  " [        US9   UR                  SSS9  S S S 5        g ! , (       d  f       g = f)NrV   r#  r  r  r  r  r-   r  r   r   r}   r  r  r  z$Specify figure size by tuple insteadr\   default)r:   r*   )r   rf   rg   r   rh   r   r   r  r^   r_   r`   r0   )r2   r  rk   ra   s       r$   $test_grouped_hist_legacy_figsize_err>TestDataFrameGroupByPlots.test_grouped_hist_legacy_figsize_err  s    YY""1%r))'2SEBKK""hh	  
3 ++aB'3%"*34]]:S1GGsIG. 211s    B::
Cc                    Sn[        [        R                  R                  S5      R	                  SSUS95      n[        [        R                  R                  S5      R	                  SSUS95      n[        R                  R                  S5      R                  SS/US9n[        X2US	.5      nUR                  S
5      nUR                  5       n[        U5      S:X  d   e[        [        R                  R                  5       5      S:X  d   eg )Nr-   rV      r3  r  <   r   rB   )rr   weightrv   rv   )r   r   rf   rg   normalchoicer   groupbyr0   ri   rF   rG   r   )r2   nr  rr   
gender_intdf_intgbr   s           r$   test_grouped_hist_legacy23TestDataFrameGroupByPlots.test_grouped_hist_legacy2  s    		--a077Ra7HI		--a077BQ7GHYY**1-44aV!4D
f*UV^^H%wwy4yA~~3::))+,111r#   zmsg, plot_col, by_col, layout)z1Layout of 1x1 must be larger than required size 2r  rv   ro   )z1Layout of 1x3 must be larger than required size 4rr   r{   r  )rd  rr   r{   re  c                     Un[         R                  " [        US9   UR                  U[	        Xd5      US9  S S S 5        g ! , (       d  f       g = f)Nr\   rv  r:   rq   )r^   r_   r`   r0   r   )r2   rs   ra   plot_colby_colrq   rk   s          r$   test_grouped_hist_layout_error8TestDataFrameGroupByPlots.test_grouped_hist_layout_error'  s:    2 ]]:S1GG8(;FGK 211s   A  
Ac                     Un[         R                  " [        SS9   [        UR                  SUR
                  SS9nS S S 5        [        WSSS9  g ! , (       d  f       N= f)NFr8   rr   rw   r  rV   r   )r;   r<   r=   r   r0   rv   r	   r   s       r$    test_grouped_hist_layout_warning:TestDataFrameGroupByPlots.test_grouped_hist_layout_warningD  sP    ''eL$RYYvD M 	$6:	 MLs   !A
Azlayout, check_layout, figsize)r|   r|   N))rz   rB   r|   N)r   r   )r   r,   c                 T    UnUR                  SUR                  X$S9n[        USX4S9  g )Nrr   )rv  r:   rq   r*   r}   r   )r0   r{   r	   )r2   rs   rq   check_layoutr*   rk   r   s          r$    test_grouped_hist_layout_figsize:TestDataFrameGroupByPlots.test_grouped_hist_layout_figsizeM  s-     wwh2;;vwW$<Qr#   r(   rr   r   )rv  rq   c                     Un[         R                  " [        SS9   [        UR                  4SS0UD6nS S S 5        [        WSSS9  g ! , (       d  f       N= f)NFr8   r:   r   ry   r   r   )r;   r<   r=   r   r0   r	   )r2   rs   r(   rk   r   s        r$   #test_grouped_hist_layout_by_warning=TestDataFrameGroupByPlots.test_grouped_hist_layout_by_warningW  sM     ''eL$RWWGGGD M$6: MLs   A		
Azkwargs, axes_num, layoutrv   )ry   r6   r   rV   rv  rr   r  r{   ry   c                 @    UnUR                   " S0 UD6n[        XcUS9  g )Nr   r"   )r0   r	   )r2   rs   r(   r   rq   rk   r   s          r$   test_grouped_hist_layout_axes7TestDataFrameGroupByPlots.test_grouped_hist_layout_axes`  s$     ww  $&Ar#   c                     Un[         R                  R                  SS5      u  p4UR                  / SQUS   S9n[	        USSS9  [
        R                  " XTS   5        US   R                  UL d   eg )NrV   ry   r  r   rv  rC   r  r   rF   rG   rH   r0   r	   r;   assert_numpy_array_equalrN   r2   rs   rk   rJ   r   returneds         r$   test_grouped_hist_multiple_axes9TestDataFrameGroupByPlots.test_grouped_hist_multiple_axesm  sl    JJ''1-	77"BtAw7O(Qv>
##H1g6{!!S(((r#   c                     Un[         R                  R                  SS5      u  p4UR                  SUS   S9n[	        USSS9  [
        R                  " XTS   5        US   R                  UL d   eg )	NrV   ry   r   rB   )r:   rC   r  r   r   r  r  s         r$   'test_grouped_hist_multiple_axes_no_colsATestDataFrameGroupByPlots.test_grouped_hist_multiple_axes_no_colsw  sk    JJ''1-	77kd1g76(Qv>
##H1g6{!!S(((r#   c                     Un[         R                  R                  SS5      u  p4Sn[        R                  " [
        US9   UR                  SUS9nS S S 5        g ! , (       d  f       g = f)NrV   ry   z@The number of passed axes must be 1, the same as the output plotr\   rr   r  )rF   rG   rH   r^   r_   r`   r0   )r2   rs   rk   rJ   r   ra   s         r$   %test_grouped_hist_multiple_axes_error?TestDataFrameGroupByPlots.test_grouped_hist_multiple_axes_error  sP    JJ''1-	P]]:S177(t74D 211s    A
A(c                 J   UnUR                  SUR                  SS9u  p4[        U5      R                  X45      (       d   e[        U5      R                  X45      (       d   e[	        U5      R                  X45      (       a   e[	        U5      R                  X45      (       a   eg )Nrr   T)rv  r:   r,  r0   rv   r   joinedr   r2   rs   rk   rW   rX   s        r$   test_axis_share_x+TestDataFrameGroupByPlots.test_axis_share_x  s    77(ryy7F #%%c////#%%c//// c?))#3333c?))#33333r#   c                 J   UnUR                  SUR                  SS9u  p4[        U5      R                  X45      (       d   e[        U5      R                  X45      (       d   e[	        U5      R                  X45      (       a   e[	        U5      R                  X45      (       a   eg )Nrr   T)rv  r:   r-  )r0   rv   r   r*  r   r+  s        r$   test_axis_share_y+TestDataFrameGroupByPlots.test_axis_share_y  s    77(ryy7F #%%c////#%%c//// c?))#3333c?))#33333r#   c                 L   UnUR                  SUR                  SSS9u  p4[        U5      R                  X45      (       d   e[        U5      R                  X45      (       d   e[	        U5      R                  X45      (       d   e[	        U5      R                  X45      (       d   eg )Nrr   T)rv  r:   r,  r-  r)  r+  s        r$   test_axis_share_xy,TestDataFrameGroupByPlots.test_axis_share_xy  s    77(ryyd7S #%%c////#%%c////#%%c////#%%c////r#   r   r   c                     [        [        R                  R                  S5      R	                  SSSS9SS/S9nUR                  SUS	9n[        XBS
9  g )NrV   rB   r-   re   r  r   r   r  )r:   r   r   r  r  s        r$   r   0TestDataFrameGroupByPlots.test_histtype_argument  sU     II!!!$--a'-BSRUJ
 WWhW/!"6r#   r"   N)r	  r
  r  r  r  r  r  r  r  r  r  r  r^   r  r  r  r
  r  r  r  r  r   r#  r&  r,  r/  r2  r   r  r"   r#   r$   r  r    s   ;"; *$"UH,"4"/"	2 [[[['	
.L/ 0L
 [[; ; [[[['	!8:STR	 
R
 [[[[Xx6,R'ST; U ; [[[["/F;891fE	
B B
))54
4	0 [[	
77r#   r  )#__doc__rf  numpyr   r^   pandasr   r   r   r   r   pandas._testing_testingr;   pandas.tests.plotting.commonr   r	   r
   r   r   r   r   r   r   r   r   rF   r    pandas.plotting._matplotlib.histr   fixturer   r&   r  r  r"   r#   r$   <module>r>     s    ! 	       ,'-. :  N$ N$bQB QBhl7 l7r#   