
    eu(                         d dl Zd dlZd dlmZ d dlmZm	Z	 ddl
mZmZ 	 d dlmZ ej        Zej        Zej        Zej        Zn# e$ r d dlmZmZmZmZ Y nw xY w G d de          Z G d	 d
e          ZdS )    N)RGBTiles   )TestPlotlyPlotplotly_renderer)	Transpose)FLIP_LEFT_RIGHTFLIP_TOP_BOTTOM	ROTATE_90
ROTATE_270c                   H    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
dS )	TestRGBPlotc                     t           j                            t          j        | dz  dd                              d                    S )N   r   uint8)PILImage	fromarraynpclipastype)rgb_datas    Hlib/python3.11/site-packages/holoviews/tests/plotting/plotly/test_rgb.pyrgb_element_to_pil_imgz"TestRGBPlot.rgb_element_to_pil_img   s8    y""278c>1c#B#B#I#I'#R#RSSS    c                 $   t           j                            ddd          }t          |          }t	          j        |          }|d         d         d         }|                     |d         d           |                     |d         d	           |d         d
         d         }|                     |d         d           |                     |d         d	           |d         d         }|                     t          |          d           |d         }|                     |dddd	ddddd           | 	                    |j
                  }t          j                            |          j        }	|                     |d         |	           d S )N
      layoutxaxisranger         r         ?yaxisimagesxy      ?stretchabovexrefyrefr&   r'   sizexsizeysizinglayersourcer3   )r   randomrandr   r   get_plot_stateassertEquallenassert_property_valuesr   datagor   r   r3   
selfr   rgbfig_dictx_rangey_ranger%   imagepil_imgexpected_sources
             r   test_rgbzTestRGBPlot.test_rgb   s   9>>"b!,,(mm"1#668$W-g6T***S)))8$W-g6T***S))) (#H-Va(((q	 	##E	,
 	,
 		 		 		 --ch77)///99@x/:::::r   c                    t           j                            ddd          }t          |                              d          }t          j        |          }|d         d         d         }|                     |d         d	           |                     |d
         d           |d         d         d         }|                     |d         d           |                     |d
         d	           |d         d         }|                     t          |          d
           |d         }| 	                    |ddd	d	ddddd           | 
                    |j                  }|                    t                    }t          j                            |          j        }	|                     |d         |	           d S )Nr   r   T)invert_xaxisr   r    r!   r   r#   r   r"   r$   r%   r&   r'         r(   r)   r*   r+   r2   r3   )r   r4   r5   r   optsr   r6   r7   r8   r9   r   r:   	transposer	   r;   r   r   r3   r<   s
             r   test_rgb_invert_xaxisz!TestRGBPlot.test_rgb_invert_xaxis=   s   9>>"b!,,(mm  d 33"1#668$W-g6S)))T***8$W-g6T***S))) (#H-Va(((q	 	##E	,
 	,
 		 		 		 --ch77 ##O44)///99@x/:::::r   c                    t           j                            ddd          }t          |                              dd          }t          j        |          }|d         d         d         }|                     |d         d	           |                     |d
         d           |d         d         d         }|                     |d         d	           |                     |d
         d           |d         d         }|                     t          |          d
           |d         }| 	                    |ddd	dddddd           | 
                    |j                  }|                    t                                        t                    }t          j                            |          j        }	|                     |d         |	           d S )Nr   r   T)rG   invert_yaxisr   r    r!   r   r#   r   r"   r$   r%   r&   r'   rH   r)   r*   r+   r2   r3   )r   r4   r5   r   rI   r   r6   r7   r8   r9   r   r:   rJ   r	   r
   r;   r   r   r3   r<   s
             r   test_rgb_invert_xaxis_and_yaxisz+TestRGBPlot.test_rgb_invert_xaxis_and_yaxise   s   9>>"b!,,(mm  d FF"1#668$W-g6S)))T***8$W-g6S)))T*** (#H-Va(((q	 	##E	,
 	,
 		 		 		 --ch77 ##O44>>OO)///99@x/:::::r   c                    t           j                            ddd          }t          |                              d          }t          j        |          }|d         d         d         }|                     |d         d	           |                     |d
         d           |d         d         d         }|                     |d         d	           |                     |d
         d           |d         d         }|                     t          |          d
           |d         }| 	                    |ddd	dddddd           | 
                    |j                  }|                    t                                        t                    }t          j                            |          j        }	|                     |d         |	           d S )Nr   r   T)invert_axesr   r    r!   r   r"   r   r#   r$   r%   r&   r'   r(   r)   r*   r+   r2   r3   )r   r4   r5   r   rI   r   r6   r7   r8   r9   r   r:   rJ   r   r	   r;   r   r   r3   r<   s
             r   test_rgb_invert_axesz TestRGBPlot.test_rgb_invert_axes   s   9>>"b!,,(mm  T 22"1#668$W-g6T***S)))8$W-g6T***S))) (#H-Va(((q	 	##E	,
 	,
 		 		 		 --ch77 ##I..88II)///99@x/:::::r   c                    t           j                            ddd          }t          |                              ddd          }t          j        |          }|d         d         d         }|                     |d         d	           |                     |d
         d           |d         d         d         }|                     |d         d	           |                     |d
         d           |d         d         }|                     t          |          d
           |d         }| 	                    |ddd	dddddd           | 
                    |j                  }|                    t                                        t                    }t          j                            |          j        }	|                     |d         |	           d S )Nr   r   T)rG   rM   rP   r   r    r!   r   r#   r   r"   r$   r%   r&   r'   rH   r)   r*   r+   r2   r3   )r   r4   r5   r   rI   r   r6   r7   r8   r9   r   r:   rJ   r   r	   r;   r   r   r3   r<   s
             r   (test_rgb_invert_xaxis_and_yaxis_and_axesz4TestRGBPlot.test_rgb_invert_xaxis_and_yaxis_and_axes   s   9>>"b!,,(mm  dSW XX"1#668$W-g6S)))T***8$W-g6S)))T*** (#H-Va(((q	 	##E	,
 	,
 		 		 		 --ch77 ##J//99/JJ)///99@x/:::::r   c                    t           j                            ddd          }t          |                              d          }t          j        |          }|d         d         }|                     t          |          d           |d         }| 	                    |d	d
dddddddd	           | 
                    |          }t          j                            |          j        }|                     |d         |           d S )Nr   r   r#   opacityr   r%   r   r   r&   r'   r"   r(   r)   r*   )	r,   r-   r&   r'   r.   r/   r0   r1   rV   r2   r3   )r   r4   r5   r   rI   r   r6   r7   r8   r9   r   r;   r   r   r3   )r=   r   r>   r?   r%   rB   rC   rD   s           r   test_rgb_opacityzTestRGBPlot.test_rgb_opacity   s	   9>>"b!,,(mm   --"1#66 (#H-Va(((q	 	##E
,
 
,
 
	 
	 
	 --h77)///99@x/:::::r   N)__name__
__module____qualname__staticmethodr   rE   rK   rN   rQ   rS   rW    r   r   r   r      s        T T \T ;  ;  ;D&; &; &;P&; &; &;P&; &; &;P&; &; &;P; ; ; ; ;r   r   c                   $     e Zd Z fdZd Z xZS )TestMapboxRGBPlotc                 N   t                                                       g d| _        g d| _        d| _        t          | j                  dz  | _        d| _        t          | j                  dz  | _        t          j
        | j        | j                  \  | _        | _        t          j
        | j        g| j        g          \  | _        | _        | j        d         | j        d         c| _        | _        t          j
        | j        | j                  \  | _        | _        d S )N)i- 逄 i@B )@9i{i)ii 	= g       @)ra   r`   r   )supersetUpxsysr@   sumx_centerrA   y_centerr   easting_northing_to_lon_lat	lon_range	lat_rangelon_centerslat_centers
lon_center
lat_centerlonslats)r=   	__class__s    r   rc   zTestMapboxRGBPlot.setUp   s     .--000*DL))C/*DL))C/).)J4<Y]Ye)f)f&-2-N]Odm_.
 .
*$* ,0+;A+>@PQR@S($@$'RR	4999r   c           	         t           j                            ddd          }t          d          t	          || j        d         | j        d         | j        d         | j        d         f                              d          j        	                    | j        | j        	          z  }t          j        |          }|                     |d
         d         d         d           |                     |d
         d         d         d g           |                     |d
         d         d         d g           |                     |d
         d         d         d           |d         d         }|                     |d         d           |                     |d         | j        | j        d           |d         d         d         }|                     t          |          d           |d         }|                     |d         d           |                     |d         | j        d         | j        d         g| j        d         | j        d         g| j        d         | j        d         g| j        d         | j        d         gg           |                     |d                             d                     |                     |d         d           |                     |d         d           d S ) Nr   r    r   r   )boundsr#   rU   )r&   r'   r:   typescattermapboxlonlat
showlegendFr   mapboxstylezwhite-bgcenter)ry   rx   layersbelowtracescoordinatesr3   zdata:image/png;base64,iVBORrV   
sourcetyperB   )r   r4   r5   r   r   r@   rA   rI   redimr!   r   r6   r7   ro   rn   r8   rj   rk   
assertTrue
startswith)r=   r   r>   r?   subplotr~   	rgb_layers          r   rE   zTestMapboxRGBPlot.test_rgb  s   9>>"b!,,Bii#LOT\!_dl1ot|TUW
 
 
 $  
 

556 #1#66&)!,V4oFFF&)!,U3dV<<<&)!,U3dV<<<&)!,\:EBBB 8$X.):666HttOO	
 	
 	

 (#H-h7Va(((1I	7+X666=1^Aq 12^Aq 12^Aq 12^Aq 12	4
 	 	 	 		(+667TUUVVV9-s333<0':::::r   )rX   rY   rZ   rc   rE   __classcell__)rr   s   @r   r^   r^      sL        S S S S S"$; $; $; $; $; $; $;r   r^   )numpyr   	PIL.Imager   plotly.graph_objs
graph_objsr;   holoviews.elementr   r   	test_plotr   r   r   r	   r
   r   r   ImportErrorr   r^   r\   r   r   <module>r      sL                 ( ( ( ( ( ( ( ( 6 6 6 6 6 6 6 6	R######/O/O#I%JJ R R R RQQQQQQQQQQQQQRb; b; b; b; b;. b; b; b;J6; 6; 6; 6; 6; 6; 6; 6; 6; 6;s   "A AA