
    e5*                         d dl Zd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZ ddlmZmZ  G d d	e          ZdS )
    N)AbbreviatedException)	NdOverlay)Curve)dim   )TestMPLPlotmpl_rendererc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestCurvePlotc                 $   d t          dd          D             }t          |t          j                            d          f          }t          j        |          }|                     |j        d         	                                d           d S )Nc           	      ^    g | ]*}t          j        t          j        d d|                    +S i  r   np
datetime64dtdatetime.0is     Rlib/python3.11/site-packages/holoviews/tests/plotting/matplotlib/test_curveplot.py
<listcomp>z7TestCurvePlot.test_curve_datetime64.<locals>.<listcomp>   s0    LLL!r{4!4455LLL    r      
   axis    @h@g    j@)
ranger   r   randomrandr	   get_plotassertEqualhandlesget_xlimselfdatescurveplots       r   test_curve_datetime64z#TestCurvePlot.test_curve_datetime64   s}    LLuQ||LLLubinnR00122$U++f-6688:LMMMMMr   c                    t          j        ddd          }t          |t          j                            d          f          }t          j        |          }|                     |j	        d         
                                d           d S )Nz
2016-01-01z
2016-01-10Dfreqr   r   r   )pd
date_ranger   r   r    r!   r	   r"   r#   r$   r%   r&   s       r   test_curve_pandas_timestampsz*TestCurvePlot.test_curve_pandas_timestamps   sx    lLsCCCubinnR00122$U++f-6688:LMMMMMr   c           	      d   d t          dd          D             }t          |t          j                            d          f          }t          j        |          }|                     t          t          t          |j        d                                                             d           d S )Nc                 :    g | ]}t          j        d d|          S r   r   r   r   s     r   r   z8TestCurvePlot.test_curve_dt_datetime.<locals>.<listcomp>   &    ===1T!A&&===r   r   r   r   r   r   r   r   r   r    r!   r	   r"   r#   tuplemaproundr$   r%   r&   s       r   test_curve_dt_datetimez$TestCurvePlot.test_curve_dt_datetime   s    ==a===ubinnR00122$U++s5$,v*>*G*G*I*IJJKKM_`````r   c           	         d t          dd          D             }d t          dd          D             }t          |t          j                            d          f          }t          |t          j                            d          f          }t          j        ||z            }|                     t          t          t          |j        d                                                             d	           d S )
Nc           	      ^    g | ]*}t          j        t          j        d d|                    +S r   r   r   s     r   r   zQTestCurvePlot.test_curve_heterogeneous_datetime_types_overlay.<locals>.<listcomp>$   0    NNNA2=T!A!6!677NNNr   r   r   c                 :    g | ]}t          j        d d|          S r   r5   r   s     r   r   zQTestCurvePlot.test_curve_heterogeneous_datetime_types_overlay.<locals>.<listcomp>%   r6   r         r   r   )r   g    j@r7   )r'   dates64r(   
curve_dt64curve_dtr*   s         r   /test_curve_heterogeneous_datetime_types_overlayz=TestCurvePlot.test_curve_heterogeneous_datetime_types_overlay#   s    NNq"NNN==a===GRY^^B%7%7899
%!3!3455$Xj%899s5$,v*>*G*G*I*IJJKKM_`````r   c                 J   t          j        ddd          }d t          dd          D             }d t          d	d
          D             }t          |t          j                            d          f          }t          |t          j                            d          f          }t          |t          j                            d          f          }t          j        ||z  |z            }| 	                    |j
        d                                         d           d S )Nz
2016-01-04z
2016-01-13r-   r.   c           	      ^    g | ]*}t          j        t          j        d d|                    +S r   r   r   s     r   r   zYTestCurvePlot.test_curve_heterogeneous_datetime_types_with_pd_overlay.<locals>.<listcomp>-   r>   r   r   r   c                 :    g | ]}t          j        d d|          S r   r5   r   s     r   r   zYTestCurvePlot.test_curve_heterogeneous_datetime_types_with_pd_overlay.<locals>.<listcomp>.   r6   r   r@   rA   r   r   )r   g    @k@)r0   r1   r   r   r   r    r!   r	   r"   r#   r$   r%   )r'   dates_pdrB   r(   rC   rD   curve_pdr*   s           r   7test_curve_heterogeneous_datetime_types_with_pd_overlayzETestCurvePlot.test_curve_heterogeneous_datetime_types_with_pd_overlay+   s    =|#FFFNNq"NNN==a===GRY^^B%7%7899
%!3!3455(BINN2$6$6788$Xj%8%ABBf-6688:LMMMMMr   c                    t          g d                              d          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d           |                     |d         d           |                     |d         d	           |                     |d         d
           d S )Nr   r@      皙?paddingr   r   皙ɿr   皙@皙?皙	@r   optsr	   r"   r$   r%   get_ylimr#   r'   r)   r*   x_rangey_ranges        r   test_curve_padding_squarez'TestCurvePlot.test_curve_padding_square5   s    iii  %%c%22$U++</88::DL<P<Y<Y<[<[T***S)))S)))S)))))r   c                    t          g d                              d          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d	           d S )
NrM   ))r   rO   )rO   g?rP   r   r   r   rS   rT   g333333@rV   rY   s        r   "test_curve_padding_square_per_axisz0TestCurvePlot.test_curve_padding_square_per_axis>   s    iii  %%.D%EE$U++</88::DL<P<Y<Y<[<[Q'''S)))S)))S)))))r   c                    t          g d          j                            d                              d          }t	          j        |          }|j        d                                         |j        d                                         }}| 	                    |d         d           | 	                    |d         d	           | 	                    |d         d
           | 	                    |d         d           d S NrM   r   rN   )xrO   rP   r   r   r   rN   rT   rU   )
r   redimr   rW   r	   r"   r$   r%   rX   r#   rY   s        r   test_curve_padding_hard_xrangez,TestCurvePlot.test_curve_padding_hard_xrangeG   s    iii  &,,v,66;;C;HH$U++</88::DL<P<Y<Y<[<[Q'''Q'''S)))S)))))r   c                    t          g d          j                            d                              d          }t	          j        |          }|j        d                                         |j        d                                         }}| 	                    |d         d           | 	                    |d         d	           | 	                    |d         d
           | 	                    |d         d           d S r`   )
r   rc   
soft_rangerW   r	   r"   r$   r%   rX   r#   rY   s        r   test_curve_padding_soft_xrangez,TestCurvePlot.test_curve_padding_soft_xrangeP   s    iii  &11F1;;@@@MM$U++</88::DL<P<Y<Y<[<[Q'''Q'''S)))S)))))r   c                    t          g d                              d          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d           |                     |d         d           |                     |d         d	           |                     |d         d
           d S )NrM   )g?rO   rP   r   r   皙r    @rT   rU   rV   rY   s        r   test_curve_padding_unequalz(TestCurvePlot.test_curve_padding_unequalY   s    iii  %%k%::$U++</88::DL<P<Y<Y<[<[T***S)))S)))S)))))r   c                    t          g d                              dd          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d           |                     |d         d	           |                     |d         d
           |                     |d         d           d S )NrM   rO   r@   rQ   aspectr   r   ri   r   rj   rT   rU   rV   rY   s        r   test_curve_padding_nonsquarez*TestCurvePlot.test_curve_padding_nonsquareb   s    iii  %%c!%<<$U++</88::DL<P<Y<Y<[<[T***S)))S)))S)))))r   c                    t          g d                              dd          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d           |                     |d         d	           |                     |d         d
           |                     |d         d           d S )N))r   r   )r@   r@   )rN   rN   rO   T)rQ   logxr   r   9r?r   u
@rT   rU   rV   rY   s        r   test_curve_padding_logxz%TestCurvePlot.test_curve_padding_logxk   s    ---..33Cd3KK$U++</88::DL<P<Y<Y<[<[%8999%7888S)))S)))))r   c                    t          g d                              dd          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d           |                     |d         d	           |                     |d         d
           |                     |d         d           d S )NrM   rO   T)rQ   logyr   r   rR   r   rS   rr   rs   rV   rY   s        r   test_curve_padding_logyz%TestCurvePlot.test_curve_padding_logyt   s    iii  %%c%==$U++</88::DL<P<Y<Y<[<[T***S)))%8999%788888r   c                     t          d t          dd          D                                           d          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d           |                     |d         d	           |                     |d         d
           |                     |d         d           d S )Nc                 @    g | ]}t          j        d |z            |fS z2016-04-0%dr   r   r   s     r   r   zDTestCurvePlot.test_curve_padding_datetime_square.<locals>.<listcomp>~   ,    RRRma&788!<RRRr   r      rO   rP   r   r   g3333~@ǧ@rT   rU   	r   r   rW   r	   r"   r$   r%   rX   r#   rY   s        r   "test_curve_padding_datetime_squarez0TestCurvePlot.test_curve_padding_datetime_square}   s    RReAqkkRRRSSXX Y 
 
 $U++</88::DL<P<Y<Y<[<[W---W---S)))S)))))r   c                    t          d t          dd          D                                           dd          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d	           |                     |d         d
           |                     |d         d           |                     |d         d           d S )Nc                 @    g | ]}t          j        d |z            |fS rz   r{   r   s     r   r   zGTestCurvePlot.test_curve_padding_datetime_nonsquare.<locals>.<listcomp>   r|   r   r   r}   rO   r@   rm   r   r   g~@gffff@rT   rU   r~   rY   s        r   %test_curve_padding_datetime_nonsquarez3TestCurvePlot.test_curve_padding_datetime_nonsquare   s    RReAqkkRRRSSXX Y 
 
 $U++</88::DL<P<Y<Y<[<[W---W---S)))S)))))r   c                     t          g dddg                              d          }t          j        |          }|j        d         }|                     |                                d           d S )N)r   r   red)r   r   r   r   r@   r   ycolorvdimsr   artistr   )r   rW   r	   r"   r$   r#   	get_color)r'   r)   r*   r   s       r   test_curve_scalar_color_opz(TestCurvePlot.test_curve_scalar_color_op   s|    CCC!7^- - --1TT-@-@ 	$U++h'))++U33333r   c                    ddg}t          d t          |          D             d                              dd          }t          j        |          }t          |j                                        |          D ]\\  }}t          |j	        |j
                           }|                    |j        i |          }|                     |d         |           ]d S )Nbluer   c                 X    i | ]'\  }}|t          t          j        |                    (S  )r   r   arange)r   r   r   s      r   
<dictcomp>z?TestCurvePlot.test_op_ndoverlay_color_value.<locals>.<dictcomp>   sD     @ @ @!)E #E")A,,$7$7 @ @ @r   r   r   r   )r   	enumeraterW   r	   r"   zipsubplotsvaluesdictstylecyclic_index_apply_transformscurrent_framer#   )r'   colorsoverlayr*   subplotr   r   s          r   test_op_ndoverlay_color_valuez+TestCurvePlot.test_op_ndoverlay_color_value   s    % @ @-6v->->@ @ @#% %%)T'T%A%A 	 $W--!$-"6"6"8"8&AA 	4 	4NGUw';<==E--g.CROOEU7^U3333	4 	4r   c                     t          g dddg                              d          }d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )N)r   )r   r   r   r   r   r   r   r   z4ValueError: Mapping a dimension to the "color" stylematchr   rW   pytestraisesr   r	   r"   r'   r)   msgs      r   test_curve_color_opz!TestCurvePlot.test_curve_color_op   s    DDD!7^- - --1TT-@-@ 	D]/s;;; 	) 	)!%(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)   A))A-0A-c                     t          g dddg                              d          }d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )N)r   r   rO   )r   r   g333333?)r   r@   r   r   alphar   )r   z4ValueError: Mapping a dimension to the "alpha" styler   r   r   s      r   test_curve_alpha_opz!TestCurvePlot.test_curve_alpha_op   s    ;;;!7^- - --1TT-@-@ 	D]/s;;; 	) 	)!%(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)r   c                     t          g dddg                              d          }d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nr   r   	linewidthr   )r   z8ValueError: Mapping a dimension to the "linewidth" styler   r   r   s      r   test_curve_linewidth_opz%TestCurvePlot.test_curve_linewidth_op   s    ;;;!;/1 1 1151L1L 	H]/s;;; 	) 	)!%(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)r   c                 "   t          t          g d          t          g d          t          g d          t          g d          dddg                              dt          t	          d                              d	d
d          t	          d                              ddd                    i          }t          j        |          }|j        	                                D ]\  \  }}}|j
        d         }|                                }|dk    r|                     |d	           n|                     |d
           |                                }|dk    r|                     |d           |                     |d           d S )N)r   r@   r   )r   r@   r   )r   r@   r@   rM   ))r   A)r   B)r   r   )r   r   numcatr   r   r   r   r   -.-r   r   r   	linestyler   r   r   )r   r   rW   r   r   
categorizer	   r"   r   itemsr$   r   r#   get_linestyle)	r'   	ndoverlayr*   r   r   spr   r   r   s	            r   -test_curve_style_mapping_ndoverlay_dimensionsz;TestCurvePlot.test_curve_style_mapping_ndoverlay_dimensions   s   III&&%			2B2BIII&&%			2B2BD D  %en
 
 $T%jj++&,A,ABBe**//d0E0EFF  
  	 	 $Y//"m1133 	1 	1NJS#Z)F$$&&Eaxx  ....  ///,,..Iczz  D1111  C0000	1 	1r   c                 r   g d}t          t          ddg|          t          ddg|          t          ddg|          t          d	d
g|          d                              dt          t	          d                              ddd          t	          d                              ddd                    i          }t          j        |          }|j        	                                D ]\  }}|j
        d         }|                                }||         j        d         dk    r|                     |d           n|                     |d           |                                }||         j        d         dk    r|                     |d           |                     |d           d S )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@   r   r   )r   r   r   r   )r   rN   r   r   )r   r   r@   rN   r   r   r   r   r   r   r   r   r   r   r   )r   r@   r   ra   r   )r   r   rW   r   r   r   r	   r"   r   r   r$   r   ilocr#   r   )	r'   r   r   r*   kr   r   r   r   s	            r   2test_curve_style_mapping_constant_value_dimensionsz@TestCurvePlot.test_curve_style_mapping_constant_value_dimensions   s   ###nn5UCCCnn5UCCCnn5UCCCnn5UCCC	E E 
 

 $T%jj++&,A,ABBe**//d0E0EFF  
   	 $Y//]((** 	1 	1EArZ)F$$&&E| &!++  ....  ///,,..I| &#--  D1111  C0000	1 	1r   N)__name__
__module____qualname__r+   r2   r;   rE   rK   r\   r^   rd   rg   rk   ro   rt   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r      sm       N N NN N Na a aa a aN N N* * ** * ** * ** * ** * ** * ** * *9 9 9	* 	* 	*	* 	* 	*4 4 4	4 	4 	4) ) )) ) )) ) )1 1 121 1 1 1 1r   r   )r   r   numpyr   pandasr0   r   holoviews.core.optionsr   holoviews.core.overlayr   holoviews.elementr   holoviews.util.transformr   	test_plotr   r	   r   r   r   r   <module>r      s                 7 7 7 7 7 7 , , , , , , # # # # # # ( ( ( ( ( ( 0 0 0 0 0 0 0 0a1 a1 a1 a1 a1K a1 a1 a1 a1 a1r   