
    e5                     d    d dl mZmZmZmZ d dlmZ ddlmZ ddl	m
Z
mZ  G d dee
          Zd	S )
    )
LinearAxisLinearScaleLogAxisLogScale)Curve   )LoggingComparisonTestCase   )TestBokehPlotbokeh_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 Zd Zd Zd ZdS )TestCurveTwinAxesc                     t          t          d                    t          t          d                    z  }t          j        |          j        }|                     t          |j                  d           d S )N
   r
   )r   ranger   get_plotstateassertEquallenyaxisselfoverlayplots      Mlib/python3.11/site-packages/holoviews/tests/plotting/bokeh/test_multiaxis.pytest_multi_y_disabledz'TestCurveTwinAxes.test_multi_y_disabled   s_    r##eE"II&6&66&w//5TZ!,,,,,    c                 "   t          t          d                    t          t          d                    z                      d          }t          j        |          j        }|                     t          |j                  d           d S )Nr   Tmulti_yr
   	r   r   optsr   r   r   r   r   r   r   s      r   (test_multi_y_enabled_two_curves_one_vdimz:TestCurveTwinAxes.test_multi_y_enabled_two_curves_one_vdim   sp    r##eE"II&6&66<<T<JJ&w//5TZ!,,,,,r   c                    t          t          d          dg          t          t          d          dg          z                      d          }t          j        |          }|                     t          |j        j                  d           |j	        d         }|                     |j
        d	           |                     |j        d
           |j	        d         }|                     t          |                                          dg           |                     |d         j
        d	           |                     |d         j        d
           d S )Nr   AvdimsBTr      y_ranger   	   extra_y_ranges)r   r   r"   r   r   r   r   r   r   handlesstartendlistkeysr   r   r   r*   r,   s        r   (test_multi_y_enabled_two_curves_two_vdimz:TestCurveTwinAxes.test_multi_y_enabled_two_curves_two_vdim   s5   r3%000599SE222348DD4F4F 	&w//TZ-..222,y)***a(((&67n113344se<<<,2A666,0!44444r   c                 z   t          t          d          dg          }t          t          d          dg          }t          t          d          dg          }||z  |z                      d          }t          j        |          j        }|                     t          |j                  d	           d S )
Nr   r%   r&      r(      Tr   r)   r!   )r   curve_1Acurve_2Bcurve_3Ar   r   s         r   *test_multi_y_enabled_three_curves_two_vdimz<TestCurveTwinAxes.test_multi_y_enabled_three_curves_two_vdim"   s    r3%000r3%000r3%000h&1888FF&w//5TZ!,,,,,r   c                    t          t          d          dg                              d          t          t          d          dg          z                      d          }t          j        |          }|j        d	         }|                     |j        d
           |                     |j        d           |j        d         }|                     t          |
                                          dg           |                     |d         j        d           |                     |d         j        d           d S )Nr   r%   r&      ylimr(   Tr   r*   r=   r>   r,   r   r+   r   r   r"   r   r   r-   r   r.   r/   r0   r1   r2   s        r   test_multi_y_lims_left_axisz-TestCurveTwinAxes.test_multi_y_lims_left_axis,   s#   r3%0005585DD599SE222348DD4F4F 	&w//,y),,,b)))&67n113344se<<<,2A666,0!44444r   c                    t          t          d          dg          t          t          d          dg                              d          z                      d          }t          j        |          }|j        d	         }|                     |j        d
           |                     |j        d           |j        d         }|                     t          |
                                          dg           |                     |d         j        d           |                     |d         j        d           d S )Nr   r%   r&   r(   r<   r?   Tr   r*   r   r+   r,   r=   r>   rA   r2   s        r   test_multi_y_lims_right_axisz.TestCurveTwinAxes.test_multi_y_lims_right_axis8   s%   r3%000599SE22277X7FFGHLUYHZHZ 	&w//,y)***a(((&67n113344se<<<,2C888,0"55555r   c                    t          t          d          dg                              d          t          t          d          dg                              d          z                      d	          }t          j        |          }|j        d
         }|                     |j        d           |                     |j        d           |j        d         }|                     t          |
                                          dg           |                     |d         j        d           |                     |d         j        d           d S )Nr   r%   r&   )   r?   r(   r<   Tr   r*   rF   rG   r,   r=   r>   rA   r2   s        r   test_multi_y_lims_both_axesz-TestCurveTwinAxes.test_multi_y_lims_both_axesD   s6   r3%0005585DD599SE22277X7FFGHLUYHZHZ 	&w//,y),,,b)))&67n113344se<<<,2C888,0"55555r   c                    t          t          dd          dg                              d          t          t          d          dg          z                      d	          }t          j        |          }|                     t          |j        j                  d
           | 	                    t          |j        j        d         t                               | 	                    t          |j        j        d         t                               |j        d         }| 	                    t          |d         t                               d S )Nr
   r+   r%   r&   Tlogyr   r(   r   r)   r   extra_y_scales)r   r   r"   r   r   r   r   r   r   
assertTrue
isinstancer   r   r-   r   r   r   r   r,   s       r   test_multi_log_left_axisz*TestCurveTwinAxes.test_multi_log_left_axisR   s   qC511166D6AA599SE222348DD4F4F 	&w//TZ-..222
4:#3A#6@@AAA
4:#3A#6
CCDDD&67
>##6DDEEEEEr   c                    t          t          dd          dg          t          t          dd          dg                              d          z                      d          }t          j        |          }|                     t          |j        j                  d	           | 	                    t          |j        j        d
         t                               | 	                    t          |j        j        d         t                               |j        d         }| 	                    t          |d         t                               d S )Nr
   r+   r%   r&   r(   TrJ   r   r)   r   rL   )r   r   r"   r   r   r   r   r   r   rM   rN   r   r   r-   r   rO   s       r   test_multi_log_right_axisz+TestCurveTwinAxes.test_multi_log_right_axis\   s   qC51115A;;se44499t9DDEFJdSWdFXFX 	&w//TZ-..222
4:#3A#6
CCDDD
4:#3A#6@@AAA&67
>##6AABBBBBr   c                    t          t          dd          dg                              d          t          t          dd          dg                              d          z                      d          }t          j        |          }|                     t          |j        j                  d	           | 	                    t          |j        j        d
         t                               | 	                    t          |j        j        d         t                               |j        d         }| 	                    t          |d         t                               d S )Nr
   r+   r%   r&   TrJ   r(   r   r)   r   rL   )r   r   r"   r   r   r   r   r   r   rM   rN   r   r-   r   rO   s       r   test_multi_log_both_axesz*TestCurveTwinAxes.test_multi_log_both_axesg   s&   qC511166D6AA5A;;se44499t9DDEFJdSWdFXFX 	&w//TZ-..222
4:#3A#6@@AAA
4:#3A#6@@AAA&67
>##6AABBBBBr   c                    t          t          d          dg          t          t          d          dg                              d          z                      d          }t          j        |          }|                     t          |j        j                  d           | 	                    t          |j        j        d	         t                               | 	                    t          |j        j        d
         t                               |j        d         }| 	                    t          |d         t                               d}| j                            d|           d S )Nr   r%   r&   r(   TrJ   r   r)   r   r
   rL   zLogarithmic axis range encountered value less than or equal to zero, please supply explicit lower bound to override default of 0.010.WARNING)r   r   r"   r   r   r   r   r   r   rM   rN   r   r   r-   r   log_handlerassertEndsWith)r   r   r   r,   substrs        r   test_multi_log_right_axis_warnz0TestCurveTwinAxes.test_multi_log_right_axis_warns   s2   r3%000599SE22277T7BBCDHDQUDDVDV 	&w//TZ-..222
4:#3A#6
CCDDD
4:#3A#6@@AAA&67
>##6AABBB Y''	6:::::r   c                    t          t          d          dg                              d          t          t          d          dg          z                      d          }t          j        |          }|j        d         }|                     |j        d	           |                     |j        d
           |j        d         }|                     t          |
                                          dg           |                     |d         j        d
           |                     |d         j        d	           d S Nr   r%   r&   Tinvert_yaxisr(   r   r*   r+   r   r,   rA   r2   s        r   test_multi_invert_left_axisz-TestCurveTwinAxes.test_multi_invert_left_axis   s#   r3%0005545HH599SE222348DD4F4F 	&w//,y)***a(((&67n113344se<<<,2A666,0!44444r   c                    t          t          d          dg          t          t          d          dg                              d          z                      d          }t          j        |          }|j        d         }|                     |j        d	           |                     |j        d
           |j        d         }|                     t          |
                                          dg           |                     |d         j        d
           |                     |d         j        d	           d S )Nr   r%   r&   r(   Tr]   r   r*   r   r+   r,   rA   r2   s        r   test_multi_invert_right_axisz.TestCurveTwinAxes.test_multi_invert_right_axis   s%   r3%000599SE22277T7JJKLPDY]DL^L^ 	&w//,y)***a(((&67n113344se<<<,2A666,0!44444r   c                    t          t          d          dg                              d          t          t          d          dg                              d          z                      d          }t          j        |          }|j        d         }|                     |j        d	           |                     |j        d
           |j        d         }|                     t          |
                                          dg           |                     |d         j        d	           |                     |d         j        d
           d S r\   rA   r2   s        r   test_multi_invert_both_axesz-TestCurveTwinAxes.test_multi_invert_both_axes   s6   r3%0005545HH599SE22277T7JJKLPDY]DL^L^ 	&w//,y)***a(((&67n113344se<<<,2A666,0!44444r   c                 N   t          t          d          dg          t          t          d          dg                              ddd          z                      d          }t          j        |          }|j        d	         }|                     |j        d
           |                     |j        d           |j        d         }|                     t          |
                                          dg           t          |d         j        |d         j                   |                     |d         j        d           |                     |d         j        d           |                     t          |j        d         d         t                               d S )Nr   r%   r&   r(   T)r)   r>   )r^   rK   r@   r   r*   r   r+   r,   r>   r)   rL   )r   r   r"   r   r   r-   r   r.   r/   r0   r1   printrM   rN   r   r2   s        r   !test_inverted_log_ylim_right_axisz3TestCurveTwinAxes.test_inverted_log_ylim_right_axis   sx   r3%000599SE   !Tt$VTLLMNRd[_dN`N` 	 &w//,y)***a(((&67n113344se<<<nS!')<)@AAA,2B777,0!444
4<0@#A##FQQRRRRRr   c                 4   t          g dd          }t          g dd          }||z                      d          }t          g dd          }t          g d	d          }||z                      d          }t          j        ||z             }|j        d
         j        d         }|j        d         }|j        d         }	|                     |j        |j        fd           |                     |	d         j        |	d         j        fd           d S )N)r+               r%   r&   )r
   r)   r   r(   Tr   )               )r5   r6      )r   r
   mainr*   r,   )rk   rl   )r
   rq   )	r   r"   r   r   subplotsr-   r   r.   r/   )
r   curve1Acurve2Boverlay1curve3Acurve4Boverlay2r   r*   r,   s
             r   test_shared_multi_axesz(TestCurveTwinAxes.test_shared_multi_axes   s%   s333			---g%++D+99,,,C888C000g%++D+99&x(':;;}V$-f5,y)&67'-5w???.-3^C5H5LMwWWWWWr   c                    t          t          d          dg                              d           t          t          d          dg          z                      d          }t          j        |          }t          |j        j                  dk    sJ |j        j        d	         j        rJ |j        j        d
         j        sJ d S )Nr   r%   r&   r   r(   Tr   r)   r   r
   	r   r   r"   r   r   r   r   r   visibler   s      r   test_invisible_main_axisz*TestCurveTwinAxes.test_invisible_main_axis   s    %))C5)))..T.::%))C5)))*
$t$

 	 &w//4:#$$)))):#A&....z"******r   c                    t          t          d          dg          t          t          d          dg                              d           z                      d          }t          j        |          }t          |j        j                  dk    sJ |j        j        d	         j        sJ |j        j        d
         j        rJ d S )Nr   r%   r&   r(   r|   Tr   r)   r   r
   r}   r   s      r   test_invisible_extra_axisz+TestCurveTwinAxes.test_invisible_extra_axis   s    %))C5)))%))C5)))..T.::;
$t$

 	 &w//4:#$$))))z"****:#A&......r   c                    t          t          d          dg          t          t          d          dg          z                      d          }t          j        |          }|j        j        d         j        dk    sJ |j        j        d         j        dk    sJ |j        j        d	         j        dk    sJ d S )
Nr   r%   r&   r(   Tr   r   xr
   	r   r   r"   r   r   r   xaxis
axis_labelr   r   s      r   test_axis_labelsz"TestCurveTwinAxes.test_axis_labels   s    %))C5)))%))C5)))*
$t$

 	 &w//z"-4444z"-4444z"-444444r   c                    t          t          d          dg                              dd          t          t          d          dg                              d	          z                      d
          }t          j        |          }|j        j        d         j        dk    sJ |j        j        d         j        dk    sJ |j        j        d         j        dk    sJ d S )Nr   r%   r&   zx-customA-custom)xlabelylabelr(   B-custom)r   Tr   r   r
   r   r   s      r   test_custom_axis_labelsz)TestCurveTwinAxes.test_custom_axis_labels   s    %))C5)))..j.TT%))C5)))..j.AAB
$t$

 	 &w//z"-;;;;z"-;;;;z"-;;;;;;r   c                 v   t          t          d          dg          t          t          d          dg          z                      ddg          }t          j        |          }|j        j        d         j        dk    sJ |j        j        d         j        J |j        j        d	         j        J d S )
Nr   r%   r&   r(   Tr   r    labelledr   r
   r   r   s      r   test_only_x_axis_labelsz)TestCurveTwinAxes.test_only_x_axis_labels   s    %))C5)))%))C5)))*
$tse$
,
, 	 &w//z"-4444z"-555z"-55555r   c                 ~   t          t          d          dg          t          t          d          dg          z                      ddg          }t          j        |          }|j        j        d         j        J |j        j        d         j        dk    sJ |j        j        d	         j        dk    sJ d S )
Nr   r%   r&   r(   Tyr   r   r
   r   r   s      r   test_none_x_axis_labelsz)TestCurveTwinAxes.test_none_x_axis_labels  s    %))C5)))%))C5)))*
$tse$
,
, 	 &w//z"-555z"-4444z"-444444r   c                    t          t          d          dg                              d          t          t          d          dg                              d          z                      d	          }t          j        |          }|j        j        d
         j        dk    sJ |j        j        d         j        dk    sJ d S )Nr   r%   r&   rightr|   r(   leftTr   r   r
   r   r   r"   r   r   r   r   r   r   s      r   test_swapped_position_labelz-TestCurveTwinAxes.test_swapped_position_label  s    %))C5)))..W.==%))C5)))..V.<<=
$t$

 	 &w//z"-4444z"-444444r   c                    t          t          d          dg                              dd          t          t          d          dg                              dd	          z                      d
          }t          j        |          }|j        j        d         j        d	k    sJ |j        j        d         j        dk    sJ d S )Nr   r%   r&   r   r   )r   r   r(   r   r   Tr   r   r
   r   r   s      r   %test_swapped_position_custom_y_labelsz7TestCurveTwinAxes.test_swapped_position_custom_y_labels  s    r3%00055GJ5WW599SE22277fZ7XXYT$T'' 	 &w//z"-;;;;z"-;;;;;;r   c                    t          t          d          d                              ddi          t          t          d          d                              ddi          z                      d	
          }t          j        |          }|j        j        d         j        dk    sJ |j        j        d         j        dk    sJ |j        j        d         j        dk    sJ |j        j        d         j        dk    sJ d S )Nr   r%   r&   r   13pt)fontsizer(   15ptTr   r   r
   	r   r   r"   r   r   r   r   r   axis_label_text_font_sizer   s      r   test_position_custom_size_labelz1TestCurveTwinAxes.test_position_custom_size_label   s   %))3''',,x6H,II%))3''',,x6H,IIJ
$t$

 	 &w//z"-4444z"<FFFFz"-4444z"<FFFFFFr   c                    t          t          d          d                              dddi          t          t          d          d                              d	dd
i          z                      d          }t          j        |          }|j        j        d         j        dk    sJ |j        j        d         j        d
k    sJ |j        j        d         j        dk    sJ |j        j        d         j        dk    sJ d S )Nr   r%   r&   r   r   r   )r   r   r(   r   r   Tr   r   r
   r   r   s      r   'test_swapped_position_custom_size_labelz9TestCurveTwinAxes.test_swapped_position_custom_size_label+  s	   %))3''',,7hPVEW,XX%))3''',,6XvDV,WWX
$t$

 	 &w//z"-4444z"<FFFFz"-4444z"<FFFFFFr   N)__name__
__module____qualname__r   r#   r3   r:   rB   rD   rH   rP   rR   rT   rZ   r_   ra   rc   rf   rz   r   r   r   r   r   r   r   r   r   r    r   r   r   r   	   s       - - -
- - -
5 5 5- - -
5 
5 
5
6 
6 
6
6 
6 
6F F FC C CC C C; ; ;
5 
5 
5
5 
5 
5
5 
5 
5S S S$X X X"+ + +/ / /	5 	5 	5	< 	< 	<	6 	6 	6	5 	5 	55 5 5< < <	G 	G 	G	G 	G 	G 	G 	Gr   r   N)bokeh.modelsr   r   r   r   holoviews.elementr   utilsr	   	test_plotr   r   r   r   r   r   <module>r      s    C C C C C C C C C C C C # # # # # # . . . . . . 4 4 4 4 4 4 4 4kG kG kG kG kG1= kG kG kG kG kGr   