
    e                         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
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e          ZdS )    N)AbbreviatedException)	NdOverlay)Dataset	Histogram)	histogram)hex2rgb   )LoggingComparisonTestCase   )TestMPLPlotmpl_rendererc                   n    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S )TestHistogramPlotc                    t          j        d t          dd          D                       }t          t	          |d          d          }t          j        |          }|j        d         }|j        d         }|                     |	                                d	           g d
}|                     d |j
        D             |           d S )Nc                 :    g | ]}t          j        d d|          S )i  r   )dtdatetime.0is     Vlib/python3.11/site-packages/holoviews/tests/plotting/matplotlib/test_histogramplot.py
<listcomp>zDTestHistogramPlot.test_histogram_datetime64_plot.<locals>.<listcomp>   s&    GGGa"+dAq11GGG    r      Date   )num_binsartistaxis)    @g    @)r    g    @g     @g    P@c                 6    g | ]}|                                 S  )get_x)r   ps     r   r   zDTestHistogramPlot.test_histogram_datetime64_plot.<locals>.<listcomp>   s     <<<!''))<<<r   )nparrayranger   r   r   get_plothandlesassertEqualget_xlimpatches)selfdateshistplotr   axboundss          r   test_histogram_datetime64_plotz0TestHistogramPlot.test_histogram_datetime64_plot   s    GG5A;;GGGHH//!<<<$T**h'\&!(:;;;777<<V^<<<fEEEEEr   c                    t          g d                              d          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d           |                     |d         d           |                     |d         d	           |                     |d         d
           d S )N)r      r6   r	   r	   皙?paddingr   r   瘙?r   ffffff@gffffffg333333@r   optsr   r(   r)   r+   get_ylimr*   r-   pointsr0   x_rangey_ranges        r   test_histogram_padding_squarez/TestHistogramPlot.test_histogram_padding_square   s    44455::3:GG$V,,</88::DL<P<Y<Y<[<[%8999S)))T***S)))))r   c                    t          g d                              d          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d	           d S )
Nr5   )r6   r   r9   r:   r;   r   r   r=   r   r>   皙	@r?   rB   s        r   &test_histogram_padding_square_positivez8TestHistogramPlot.test_histogram_padding_square_positive%   s    3334499#9FF$V,,</88::DL<P<Y<Y<[<[%8999S)))Q'''S)))))r   c                    t          g d                              d          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d           |                     |d         d           |                     |d         d	           |                     |d         d           d S )
N))r   r7   )r	   r:   r;   r   r   r=   r   r>   g	r?   rB   s        r   &test_histogram_padding_square_negativez8TestHistogramPlot.test_histogram_padding_square_negative.   s    66677<<S<II$V,,</88::DL<P<Y<Y<[<[%8999S)))T***Q'''''r   c                    t          g d                              dd          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d           |                     |d         d	           |                     |d         d           |                     |d         d
           d S )NrH   r:   r6   r<   aspectr   r   gffffff?r   g333333@rI   r?   r-   r   r0   rD   rE   s        r    test_histogram_padding_nonsquarez2TestHistogramPlot.test_histogram_padding_nonsquare7   s    66677<<SQR<SS	$Y//</88::DL<P<Y<Y<[<[T***T***Q'''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   )r6   r6   r9   r:   T)r<   logxr   r   g	=kW?r   g+@rI   r?   rR   s        r   test_histogram_padding_logxz-TestHistogramPlot.test_histogram_padding_logx@   s    55566;;Cd;SS	$Y//</88::DL<P<Y<Y<[<[%8999%7888Q'''S)))))r   c                    t          g d                              dd          }t          j        |          }|j        d                                         |j        d                                         }}|                     |d         d           |                     |d         d	           |                     |d         d
           |                     |d         d           | j        	                    dd           d S )NrH   r:   T)r<   logyr   r   r=   r   r>   g_$?gu
@WARNINGz2Logarithmic axis range encountered value less than)
r   r@   r   r(   r)   r+   rA   r*   log_handlerassertContainsrR   s        r   test_histogram_padding_logyz-TestHistogramPlot.test_histogram_padding_logyI   s    66677<<St<TT	$Y//</88::DL<P<Y<Y<[<[%8999S)))%8999%7888''	3ghhhhhr   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                 B    g | ]}t          j        d |z  d          |fS z2016-04-0%dnsr%   
datetime64r   s     r   r   zLTestHistogramPlot.test_histogram_padding_datetime_square.<locals>.<listcomp>T   .    ```qma.? F FJ```r   r   r   r:   r;   r   r   g~@g3333@rI   	r   r'   r@   r   r(   r)   r+   rA   r*   rR   s        r   &test_histogram_padding_datetime_squarez8TestHistogramPlot.test_histogram_padding_datetime_squareS   s    ``TYZ[]^T_T_```aaff g 
 
	 $Y//</88::DL<P<Y<Y<[<[W---W---Q'''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                 B    g | ]}t          j        d |z  d          |fS r_   ra   r   s     r   r   zOTestHistogramPlot.test_histogram_padding_datetime_nonsquare.<locals>.<listcomp>_   rc   r   r   r   r:   r6   rP   r   r   gffff~@g@rI   rd   rR   s        r   )test_histogram_padding_datetime_nonsquarez;TestHistogramPlot.test_histogram_padding_datetime_nonsquare^   s    ``TYZ[]^T_T_```aaff g 
 
	 $Y//</88::DL<P<Y<Y<[<[X...X...Q'''S)))))r   c           
         t          g dddg                              d          }t          j        |          }|j        d         }|                                }t          |g d          D ]T\  }}|                     |                                t          d t          |          D                       d	z              Ud S )
N))r   r   #000000)r   r   #FF0000)r   r6   #00FF00ycolorvdimsrn   r   )rj   rk   rl   c              3       K   | ]	}|d z  V  
dS )g     o@Nr"   )r   cs     r   	<genexpr>z<TestHistogramPlot.test_histogram_color_op.<locals>.<genexpr>t   s&      5Q5Qaf5Q5Q5Q5Q5Q5Qr   )r   )r   r@   r   r(   r)   get_childrenzipr*   get_facecolortupler   r-   r   r0   r   childrenrs   ws          r   test_histogram_color_opz)TestHistogramPlot.test_histogram_color_opm   s    WWW%('N4 4 448DwD4G4G 	$Y//h'&&(("C"C"CDD 	X 	XDAqQ__..5Q5Qgajj5Q5Q5Q0Q0QRV0VWWWW	X 	X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 )N)r   r   r   )r   r   r   )r   r6   r6   rm   rn   ro   rq   5ValueError: Mapping a continuous dimension to a colormatchr   r@   pytestraisesr   r   r(   r-   r   msgs      r   test_histogram_linear_color_opz0TestHistogramPlot.test_histogram_linear_color_opv   s    ???%('N4 4 448DwD4G4G 	E]/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   A)r   r   B)r   r6   Crm   rn   ro   rq   r   r   r   r   s      r   #test_histogram_categorical_color_opz5TestHistogramPlot.test_histogram_categorical_color_op}   s    EEE%('N4 4 448DwD4G4G 	E]/s;;; 	- 	-!),,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-r   c                    t          g dddg                              d          }t          j        |          }|j        d         }|                                }|                     |d                                         d           |                     |d	                                         d
           |                     |d                                         d           d S )N))r   r   z#000)r   r   z#F00)r   r6   z#0F0rm   rn   ro   )	edgecolorr   r   )r   r   r   r   r   r   r   r   r   r6   )r   r   r   r   )r   r@   r   r(   r)   ru   r*   get_edgecolor)r-   r   r0   r   rz   s        r   test_histogram_line_color_opz.TestHistogramPlot.test_histogram_line_color_op   s    NNN%('N4 4 448D7D4K4K 	$Y//h'&&((!2244lCCC!2244lCCC!2244lCCCCCr   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   g?)r   r6   gffffff?rm   alpharo   )r   z4ValueError: Mapping a dimension to the "alpha" styler   r   r   s      r   test_histogram_alpha_opz)TestHistogramPlot.test_histogram_alpha_op   s    CCC%('N4 4 448DwD4G4G 	D]/s;;; 	- 	-!),,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-r   c                 f   t          g dddg                              d          }t          j        |          }|j        d         }|                                }t          |t          j        g d                    D ]-\  }}| 	                    |
                                |           .d S )N))r   r   r   )r   r   r   )r   r6      rm   
line_widthro   )	linewidthr   )r   r   r   )r   r@   r   r(   r)   ru   rv   r%   r&   r*   get_linewidthry   s          r   test_histogram_line_width_opz.TestHistogramPlot.test_histogram_line_width_op   s    ???%(,$79 9 99=9U9U 	$Y//h'&&(("(999"5"566 	3 	3DAqQ__..2222	3 	3r   c                    ddg}t          d t          |          D             d                              dd          }t          j        |          }ddg}t          |j                                        |          D ]Q\  }}|j        d	         	                                }|D ]*}| 
                    |                                |           +Rd S )
Nblueredc           	      ^    i | ]*\  }}|t          t          j        |d z                       +S )r6   )r   r%   arange)r   r   rn   s      r   
<dictcomp>z=TestHistogramPlot.test_op_ndoverlay_value.<locals>.<dictcomp>   sH     @ @ @!)E #Ibi!nn$=$= @ @ @r   Colorr   )	facecolor)r   r   r   r   r   r   )r   	enumerater@   r   r(   rv   subplotsvaluesr)   ru   r*   rw   )r-   colorsoverlayr0   subplotrn   rz   rs   s           r   test_op_ndoverlay_valuez)TestHistogramPlot.test_op_ndoverlay_value   s   % @ @-6v->->@ @ @AHJ JJN$%0G KO K K 	 $W---!$-"6"6"8"86BB 	; 	;NGUx0==??H ; ;  !2!2E::::;	; 	;r   N)__name__
__module____qualname__r3   rF   rJ   rN   rS   rV   r\   re   rh   r|   r   r   r   r   r   r   r"   r   r   r   r      s       F F F* * ** * *( ( (* * ** * *i i i	* 	* 	*	* 	* 	*X X X- - -- - -D D D- - -3 3 3; ; ; ; ;r   r   )r   r   numpyr%   r   holoviews.core.optionsr   holoviews.core.overlayr   holoviews.elementr   r   holoviews.operationr   holoviews.plotting.utilr   utilsr
   	test_plotr   r   r   r"   r   r   <module>r      s             7 7 7 7 7 7 , , , , , , 0 0 0 0 0 0 0 0 ) ) ) ) ) ) + + + + + + . . . . . . 0 0 0 0 0 0 0 0Y; Y; Y; Y; Y;1; Y; Y; Y; Y; Y;r   