
    I ji'                         S SK rS SKrS SKJs  Jr  S SKJrJ	r	  S SK
JrJrJr  \R                  " S5      r " S S5      rg)    N)	DataFrame
date_range)_check_legend_labels_check_legend_marker_check_text_labels
matplotlibc                   ^   \ rS rSr\R
                  R                  SS9S 5       rS r\R
                  R                  S/ SQ5      S 5       r
S	 rS
 rS rS rS rS r\R
                  R                  SSSS\R"                  " S\R&                  " S5      S9SS/5      S 5       rS rS rSrg)TestFrameLegend   zLOpen bug in matplotlib https://github.com/matplotlib/matplotlib/issues/11357)reasonc           	      l   [        SSSS.SSSS./5      nUR                  SSSSSS	9nUR                  SS
SS USS9  UR                  5       nUR                  n[	        US   [
        R                  R                  5      (       d   e[	        US   [
        R                  R                  5      (       d   eg )N   )xab      r   r   orangeg?)cyerrlabelr   blue)r   r   axr   r   )
r   plot
get_legendlegend_handles
isinstancemplcollectionsLineCollectionlinesLine2D)selfdfr   legendresult_handless        ~/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_legend.pytest_mixed_yerrTestFrameLegend.test_mixed_yerr   s     aaa02JKLWWS#8WD
SF"FC...+S__-K-KLLLL.+SYY-=-=>>>>    c                 *   [        SS/SS/S.5      n[        SSS/05      nUR                  SSS	S.S
S9nUR                  SSS0US9  UR                  5       nUR                  nU Vs/ s H  ofR	                  5       PM     nn/ SQnXx:X  d   eg s  snf )Nr   r   r   )r   r   dg      @Tr   greenr   )r%   colorsecondary_yred)r%   r.   r   )r   r-   r0   )r   r   r   r   	get_color)	r#   r$   df2r   r%   handleshandleresultexpecteds	            r'   test_legend_false!TestFrameLegend.test_legend_false'   s    aV1a&12sCj)*WWDf7(CQTWUS%LR8''3:;7""$7;+!!! <s   )Bkind)linebarbarhkdeareahistc                    [         R                  " S5        [        [        R                  R                  S5      R	                  S5      / SQS9n[        [        R                  R                  S5      R	                  S5      / SQS9n[        [        R                  R                  S5      R	                  S5      / SQS9n[        [        R                  R                  S5      R	                  S5      / SQS9nUR                  US	S
9n[        XbR                  S9  UR                  USUS9n[        XbR                  S9  UR                  US	US9n[        XbR                  R                  UR                  5      S9  UR                  USUS9n[        UR                  R                  UR                  5      5      [        [        UR                  5      5      -   n[        XgS9  g )Nscipyr   r   r   r   r   r   columnsr,   efghi)jklTr9   r%   labelsF)r9   r%   r   reverse)pytestimportorskipr   nprandomdefault_rngr   r   rE   unionlistreversed)r#   r9   r$   r2   df3df4r   r6   s           r'   test_df_legend_labels%TestFrameLegend.test_df_legend_labels4   sp   G$ryy,,Q/66v>XII!!!$++F3_
 II!!!$++F3_
 II!!!$++F3_
 WW$tW,R

3XX4"X5R

3XX4X4R

(8(8(EFXX4	bX9

((56hs{{>S9TTR1r*   c                 ,   [         R                  " S5        [        [        R                  R                  S5      R	                  S5      / SQS9n[        [        R                  R                  S5      R	                  S5      / SQS9n[        [        R                  R                  S5      R	                  S5      / SQS9nUR                  SS	S
9n[        U/ SQS9  UR                  SUS9n[        U/ SQS9  UR                  SSSUS9n[        U/ SQS9  g )NrA   r   rB   rC   rD   rF   rI   Tr   r%   r/   r   	b (right)r   rQ   Fr%   r   r;   rK   )r9   r%   r/   r   )r   rc   r   rJ   z	h (right)rL   )rT   rU   r   rV   rW   rX   r   r   )r#   r$   r2   r\   r   s        r'   !test_df_legend_labels_secondary_y1TestFrameLegend.test_df_legend_labels_secondary_yO   s    G$ryy,,Q/66v>XII!!!$++F3_
 II!!!$++F3_
 WWDcW2R(?@XXUrX*R(?@XX532XFR(VWr*   c                 B   [         R                  " S5        [        SSS9n[        [        R
                  R                  S5      R                  S5      / SQUS9n[        [        R
                  R                  S5      R                  S5      / S	QUS9n[        [        R
                  R                  S5      R                  S5      / S
QUS9nUR                  SSS9n[        U/ SQS9  UR                  SUS9n[        U/ SQS9  UR                  SUS9n[        U/ SQS9  g )NrA   1/1/2014r   periodsr   rB   rC   rE   indexrF   rI   Tr   ra   rb   rQ   Frd   )r   rc   r   rJ   rK   rL   )
rT   rU   r   r   rV   rW   rX   standard_normalr   r   r#   indr$   r2   r\   r   s         r'   !test_df_legend_labels_time_series1TestFrameLegend.test_df_legend_labels_time_series`   s    G$Q/II!!!$44V<#

 II!!!$44V<#

 II!!!$44V<#

 WWDcW2R(?@XXUrX*R(?@XXTbX)R(NOr*   c                    [         R                  " S5        [        SSS9n[        [        R
                  R                  S5      R                  S5      / SQUS9n[        [        R
                  R                  S5      R                  S5      / S	QUS9n[        [        R
                  R                  S5      R                  S5      / S
QUS9nUR                  R                  SSSS9n[        US/S9  UR                  R                  SSSSUS9n[        US/S9  UR                  R                  SSSUS9n[        USS/S9  g )NrA   rh   r   ri   r   rB   rC   rk   rF   rI   r   r   data1)r   yr   rQ   r,   rG   Fdata2)r   rt   r%   r   r   rJ   rK   data3)r   rt   r   r   )rT   rU   r   r   rV   rW   rX   rm   r   scatterr   rn   s         r'   )test_df_legend_labels_time_series_scatter9TestFrameLegend.test_df_legend_labels_time_series_scatterz   s$   G$Q/II!!!$44V<#

 II!!!$44V<#

 II!!!$44V<#
 WW__sc_9R	2XXs5BOR	2XXs'bAR'(:;r*   c                    [         R                  " S5        [        SSS9n[        [        R
                  R                  S5      R                  S5      / SQUS9nUR                  S	5      nUR                  S
S9n[        US
/S9  UR                  S
SS9n[        US/S9  [        UR                  R                  5       S	5        UR                  SSUS9n[        USS/S9  UR                  R                  5       S
S/:X  d   eg )NrA   rh   r   ri   r   rB   rC   rk   r   r   )rt   rQ   LABEL_b)rt   r   r   LABEL_c)rt   r   r   )rT   rU   r   r   rV   rW   rX   rm   	set_indexr   r   r   xaxis	get_labelrE   tolist)r#   ro   r$   df5r   s        r'   +test_df_legend_labels_time_series_no_mutate;TestFrameLegend.test_df_legend_labels_time_series_no_mutate   s    G$Q/II!!!$44V<#
 ll3XXX_R.XX9X-R4288--/5XX9X4RI(>?{{!!#Sz111r*   c           	         [        / SQ/ SQ// SQS9n[        R                  R                  SSS9u  p#UR	                  SS	S
SS	US
   S9  UR	                  SSSSSUS
   S9  UR	                  SSSSSUS
   S9  [        US
   / SQS9  [        US
   / SQS9  UR	                  SSSSSUS   S9  UR	                  SS	S
SS	US   S9  UR	                  SSSSSUS   S9  [        US   / SQS9  [        US   / SQS9  UR	                  SSSSSUS   S9  UR	                  SSSSSUS   S9  UR	                  SS	S
SS	US   S9  [        US   / SQS9  [        US   / SQS9  g )N)r   r   r   r   )r   r         )r   rrJ   r   )datarE   r   r   )nrowsncolsr   r   r   o)r   rt   	linewidthmarkerr.   r   rJ   r   )r   rJ   r   rQ   )r   r   r   expected_markers)r   r   rJ   )r   r   r   r   )rJ   r   r   )r   r   r   r   r   pyplotsubplotsr   r   r   )r#   r$   _r   s       r'   *test_missing_marker_multi_plots_on_same_ax:TestFrameLegend.test_missing_marker_multi_plots_on_same_ax   s   \<8BVW

##!1#5
##SRUK
##SRUK
##SRUKRU?;RU_E
##SRUK
##SRUK
##SRUKRU?;RU_E
##SRUK
##SRUK
##SRUKRU?;RU_Er*   c                 2   [        [        R                  R                  S5      R	                  S5      [        R
                  " / SQ5      [        R
                  " / SQ5      /S9nSS/UR                  l        UR                  5       nUR                  R                  5       n[        US5        [        [        R                  R                  S5      R	                  S	5      5      nUR                  S
US9nUR                  R                  5       n[        US5        SUR                  l        UR                  SUS9nUR                  R                  5       n[        US5        UR                  S
US9nUR                  R                  5       n[        US5        g )Nr   )r   r   )r   r   r   r   )r   rt   r   rt   rD   group
individualzgroup,individual)   r   Trd   newF)r   rV   rW   rX   rm   arrayrE   namesr   legend_	get_titler   name)r#   multir   	leg_titler$   s        r'   test_legend_name TestFrameLegend.test_legend_name   s;   II!!!$44V<XX23RXX>R5ST
  '5ZZ\JJ((*	9&89ryy,,Q/??GHWWDRW(JJ((*	9&89

WWEbW)JJ((*	9&89WWDRW(JJ((*	9e,r*   r:   r;   r<   r=   rA   )marksr>   r?   c                     [        [        R                  R                  S5      R                  S5      / SQS9nUR	                  USS9n[        USS9  g )Nr   rB   rC   rD   FrP   )visible)r   rV   rW   rX   r   r   )r#   r9   r$   r   s       r'   test_no_legendTestFrameLegend.test_no_legend   sF     ryy,,Q/66v>XWW$uW-R/r*   c                    [        [        R                  R                  S5      R	                  S5      / SQS9nUR                  S/SSS9nUR                  S	/S
SUS9  UR                  S/SSUS9  [        U/ SQS9  [        U/ SQS9  g )Nr   )r   r   ABCrD   r   r   solid)rt   r   	linestyler   r   dotted)rt   r   r   r   r   <rQ   )r   r   r   r   )r   rV   rW   rX   rm   r   r   r   )r#   r$   r   s      r'   test_missing_markers_legend+TestFrameLegend.test_missing_markers_legend   s    II!!!$44V<o
 WWuSGW<
3%xB?
3%xB?R8R/Br*   c           	          [        / SQ/ SQ/ SQ/ SQS.5      n[        R                  R                  5       u  p#S H  nUR	                  SXDUSS9  M     [        U/ S	QS
9  [        U/ SQS9  g )N)r   r   r   r   r      )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   XABCr   .)r   r   styler   rQ   )r   r   r   r   r   )r#   r$   r   r   r9   s        r'   'test_missing_markers_legend_using_style7TestFrameLegend.test_missing_markers_legend_using_style   sg    ''''	
 

##%DGGCbG<  	R8R/Br*    N)__name__
__module____qualname____firstlineno__rT   markxfailr(   r7   parametrizer^   re   rp   rx   r   r   r   paramtd
skip_if_nor   r   r   __static_attributes__r   r*   r'   r
   r
      s    [[D  ??" [[V%ST2 U24X"P4<62*F.-2 [[LLbmmG&<=	

0
0

CCr*   r
   )numpyrV   rT   pandas.util._test_decoratorsutil_test_decoratorsr   pandasr   r   pandas.tests.plotting.commonr   r   r   rU   r   r
   r   r*   r'   <module>r      s@      ) )  ,'sC sCr*   