
    ii'                         d dl Zd dlZd dlmc mZ d dlmZm	Z	 d dl
mZmZmZ  ej                  d      Z G d d      Zy)    N)	DataFrame
date_range)_check_legend_labels_check_legend_marker_check_text_labels
matplotlibc                   b   e Zd Zej                  j                  d      d        Zd Zej                  j                  dg d      d        Z	d Z
d	 Zd
 Zd Zd Zd Zej                  j                  dddd ej                   d ej$                  d            ddg      d        Zd Zd Zy)TestFrameLegendzLOpen bug in matplotlib https://github.com/matplotlib/matplotlib/issues/11357)reasonc                 d   t        ddddddddg      }|j                  ddddd	      }|j                  dd
dd |d       |j                         }|j                  }t	        |d   t
        j                  j                        sJ t	        |d   t
        j                  j                        sJ y )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        j/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/plotting/frame/test_frame_legend.pytest_mixed_yerrzTestFrameLegend.test_mixed_yerr   s     aaa02JKLWWS#8WD
SF"FC...+S__-K-KLLL.+SYY-=-=>>>    c                 2   t        ddgddgd      }t        dddgi      }|j                  ddd	dd
      }|j                  dddi|       |j                         }|j                  }|D cg c]  }|j	                          }}g d}||k(  sJ y c c}w )Nr   r   r   )r   r   dg      @Tr   greenr   )r$   colorsecondary_yred)r$   r,   r   )r   r+   r.   )r   r   r   r   	get_color)	r"   r#   df2r   r$   handleshandleresultexpecteds	            r&   test_legend_falsez!TestFrameLegend.test_legend_false'   s    aV1a&12sCj)*WWDf7(CQTWUS%LR8''3:;&""$;;+!!! <s   /Bkind)linebarbarhkdeareahistc                    t        j                  d       t        t        j                  j                  d      j	                  d      g d      }t        t        j                  j                  d      j	                  d      g d      }t        t        j                  j                  d      j	                  d      g d      }t        t        j                  j                  d      j	                  d      g d      }|j                  |d	
      }t        ||j                         |j                  |d|      }t        ||j                         |j                  |d	|      }t        ||j                  j                  |j                               |j                  |d|      }t        |j                  j                  |j                              t        t        |j                              z   }t        ||       y )Nscipyr   r   r   r   r   r   columnsr*   efghi)jklTr6   r$   labelsF)r6   r$   r   reverse)pytestimportorskipr   nprandomdefault_rngr   r   rB   unionlistreversed)r"   r6   r#   r0   df3df4r   r4   s           r&   test_df_legend_labelsz%TestFrameLegend.test_df_legend_labels4   sx   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                 `   t        j                  d       t        t        j                  j                  d      j	                  d      g d      }t        t        j                  j                  d      j	                  d      g d      }t        t        j                  j                  d      j	                  d      g d      }|j                  dd	
      }t        |g d       |j                  d|      }t        |g d       |j                  ddd|      }t        |g d       y )Nr>   r   r?   r@   rA   rC   rF   Tr   r$   r-   r   	b (right)r   rN   Fr$   r   r8   rH   )r6   r$   r-   r   )r   r_   r   rG   z	h (right)rI   )rQ   rR   r   rS   rT   rU   r   r   )r"   r#   r0   rY   r   s        r&   !test_df_legend_labels_secondary_yz1TestFrameLegend.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                 |   t        j                  d       t        dd      }t        t        j
                  j                  d      j                  d      g d|      }t        t        j
                  j                  d      j                  d      g d	|      }t        t        j
                  j                  d      j                  d      g d
|      }|j                  dd      }t        |g d       |j                  d|      }t        |g d       |j                  d|      }t        |g d       y )Nr>   1/1/2014r   periodsr   r?   r@   rB   indexrC   rF   Tr   r]   r^   rN   Fr`   )r   r_   r   rG   rH   rI   )
rQ   rR   r   r   rS   rT   rU   standard_normalr   r   r"   indr#   r0   rY   r   s         r&   !test_df_legend_labels_time_seriesz1TestFrameLegend.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                    t        j                  d       t        dd      }t        t        j
                  j                  d      j                  d      g d|      }t        t        j
                  j                  d      j                  d      g d	|      }t        t        j
                  j                  d      j                  d      g d
|      }|j                  j                  ddd      }t        |dg       |j                  j                  dddd|      }t        |dg       |j                  j                  ddd|      }t        |ddg       y )Nr>   rc   r   rd   r   r?   r@   rf   rC   rF   r   r   data1)r   yr   rN   r*   rD   Fdata2)r   rn   r$   r   r   rG   rH   data3)r   rn   r   r   )rQ   rR   r   r   rS   rT   rU   rh   r   scatterr   ri   s         r&   )test_df_legend_labels_time_series_scatterz9TestFrameLegend.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                 4   t        j                  d       t        dd      }t        t        j
                  j                  d      j                  d      g d|      }|j                  d	      }|j                  d
      }t        |d
g       |j                  d
d      }t        |dg       t        |j                  j                         d	       |j                  dd|      }t        |ddg       |j                  j                         d
dgk(  sJ y )Nr>   rc   r   rd   r   r?   r@   rf   r   r   )rn   rN   LABEL_b)rn   r   r   LABEL_c)rn   r   r   )rQ   rR   r   r   rS   rT   rU   rh   	set_indexr   r   r   xaxis	get_labelrB   tolist)r"   rj   r#   df5r   s        r&   +test_df_legend_labels_time_series_no_mutatez;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           	      "   t        g dg dgg d      }t        j                  j                  dd      \  }}|j	                  dd	d
dd	|d
          |j	                  ddddd|d
          |j	                  ddddd|d
          t        |d
   g d       t        |d
   g d       |j	                  ddddd|d          |j	                  dd	d
dd	|d          |j	                  ddddd|d          t        |d   g d       t        |d   g d       |j	                  ddddd|d          |j	                  ddddd|d          |j	                  dd	d
dd	|d          t        |d   g d       t        |d   g d       y )N)r   r   r   r   )r   r         )r   rrG   r   )datarB   r   r   )nrowsncolsr   r   r   o)r   rn   	linewidthmarkerr,   r   rG   r   )r   rG   r   rN   )r   r   r   expected_markers)r   r   rG   )r   r   r   r   )rG   r   r   )r   r   r   r   r   pyplotsubplotsr   r   r   )r"   r#   _r   s       r&   *test_missing_marker_multi_plots_on_same_axz:TestFrameLegend.test_missing_marker_multi_plots_on_same_ax   s   \<8BVW

##!1#52
##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                 F   t        t        j                  j                  d      j	                  d      t        j
                  g d      t        j
                  g d      g      }ddg|j                  _        |j                         }|j                  j                         }t        |d       t        t        j                  j                  d      j	                  d	            }|j                  d
|      }|j                  j                         }t        |d       d|j                  _        |j                  d|      }|j                  j                         }t        |d       |j                  d
|      }|j                  j                         }t        |d       y )Nr   )r}   r}   )r   r   r   r   )r   rn   r   rn   rA   group
individualzgroup,individual)   r   Tr`   newF)r   rS   rT   rU   rh   arrayrB   namesr   legend_	get_titler   name)r"   multir   	leg_titler#   s        r&   test_legend_namez 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(   r7   r8   r9   r:   r>   )marksr;   r<   c                     t        t        j                  j                  d      j                  d      g d      }|j	                  |d      }t        |d       y )Nr   r?   r@   rA   FrM   )visible)r   rS   rT   rU   r   r   )r"   r6   r#   r   s       r&   test_no_legendzTestFrameLegend.test_no_legend   sF     ryy,,Q/66v>XWW$uW-R/r(   c                 8   t        t        j                  j                  d      j	                  d      g d      }|j                  dgdd      }|j                  d	gd
d|       |j                  dgdd|       t        |g d       t        |g d       y )Nr   )r~   r   ABCrA   r   r   solid)rn   r   	linestyler   r   dotted)rn   r   r   r   r   <rN   )r   r   r   r   )r   rS   rT   rU   rh   r   r   r   )r"   r#   r   s      r&   test_missing_markers_legendz+TestFrameLegend.test_missing_markers_legend   s    II!!!$44V<o
 WWuSGW<
3%xB?
3%xB?R8R/Br(   c                     t        g dg dg dg dd      }t        j                  j                         \  }}dD ]  }|j	                  d|||d        t        |g d	
       t        |g d       y )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   rN   )r   r   r   r   r   )r"   r#   r   r   r6   s        r&   'test_missing_markers_legend_using_stylez7TestFrameLegend.test_missing_markers_legend_using_style   sp    ''''	
 

##%2 	=DGGCTbG<	= 	R8R/Br(   N)__name__
__module____qualname__rQ   markxfailr'   r5   parametrizer[   ra   rk   rr   r{   r   r   paramtd
skip_if_nor   r   r    r(   r&   r
   r
      s    [[D  ??" [[V%ST2 U24X"P4<62*F.-2 [[FLLmbmmG&<=	

0
0

CCr(   r
   )numpyrS   rQ   pandas.util._test_decoratorsutil_test_decoratorsr   pandasr   r   pandas.tests.plotting.commonr   r   r   rR   r   r
   r   r(   r&   <module>r      sB      ) )  f,'sC sCr(   