
    e+                         d dl Zd dlmZ d dlmZmZ d dlmZm	Z	m
Z
mZmZmZ d dl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          ZdS )    N)Column)DivToolbar)Dataset
DynamicMap
GridMatrix	GridSpaceHoloMap	NdOverlay)CurveImagePoints)
gridmatrix)Stream   )TestBokehPlotbokeh_rendererc                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestGridPlotc                    t          d t          d          D                       }t          j        |          }|j        d         }|                     |t                     d}|                     |j        |           d S )Nc           
          i | ]@}t          d           D ].}||ft          d t          d           D             dg          /AS )   c           	      j    i | ]0}|t          t          j                            d d                     1S 
   r   nprandomrand.0as     Llib/python3.11/site-packages/holoviews/tests/plotting/bokeh/test_gridplot.py
<dictcomp>z;TestGridPlot.test_grid_title.<locals>.<dictcomp>.<dictcomp>   B     +> +> +>/0 ,-eBINN2b4I4I.J.J +> +> +>    Xkdimsranger
   r!   ijs      r#   r$   z0TestGridPlot.test_grid_title.<locals>.<dictcomp>        ? ? ?U1XX? ?01 a&' +> +>49!HH+> +> +>FIU#L #L #L ? ? ? ?r&      titlezg<span style="color:black;font-family:Arial;font-style:bold;font-weight:bold;font-size:16pt">X: 0</span>)	r	   r+   r   get_plothandlesassertIsInstancer   assertEqualtextselfgridplotr1   r6   s        r#   test_grid_titlezTestGridPlot.test_grid_title   s     ? ?#(88? ? ? @ @ &t,,W%eS)))OT*****r&   c                 .   t          d t          d          D                       }t          j        |          }|                    d           |j        d         }|                     |t                     d}|                     |j	        |           d S )Nc           
          i | ]@}t          d           D ].}||ft          d t          d           D             dg          /AS )r   c           	      j    i | ]0}|t          t          j                            d d                     1S r   r   r    s     r#   r$   zBTestGridPlot.test_grid_title_update.<locals>.<dictcomp>.<dictcomp>"   r%   r&   r'   r(   r*   r,   s      r#   r$   z7TestGridPlot.test_grid_title_update.<locals>.<dictcomp>"   r/   r&   r0   r   r1   zg<span style="color:black;font-family:Arial;font-style:bold;font-weight:bold;font-size:16pt">X: 1</span>)
r	   r+   r   r2   updater3   r4   r   r5   r6   r7   s        r#   test_grid_title_updatez#TestGridPlot.test_grid_title_update!   s     ? ?#(88? ? ? @ @ &t,,AW%eS)))OT*****r&   c                 N   t          dgdz  dgdz  z   t          j                            d          t          j                            d          fg d          }t	          |                    dt                              }t          j        |          }|j	        d	         }| 
                    |j        j        d
         j        d           | 
                    |j        j        d
         j        d           |j	        d         }| 
                    |j        j        d
         j        d           | 
                    |j        j        d
         j        d           |j	        d         }| 
                    |j        j        d
         j        d           | 
                    |j        j        d
         j        d           |j	        d         }| 
                    |j        j        d
         j        d           | 
                    |j        j        d
         j        d           d S )NA   Br   )r"   bcr(   r"   )container_type)rE   rF   r   FT)rE   rE   )rF   rE   )rF   rF   )r   r   r   r   r   groupbyr   r   r2   subplotsr5   statexaxisvisibleyaxis)r8   dsgmatrixr:   sp1sp2sp3sp4s           r#    test_gridmatrix_overlaid_batchedz-TestGridPlot.test_gridmatrix_overlaid_batched-   s   seAgseAgory~~b'9'929>>";M;MN*??, , ,RZZIZFFGG&w//mJ'+3U;;;+3T:::mJ'+3T:::+3T:::mJ'+3T:::+3U;;;mJ'+3U;;;+3U;;;;;r&   c                     t          d t          dd          D                       }t          j        |          }t          j        |j                  }|                     |d           d S )Nc           
          i | ]C}t          d d          D ]0}|dk    r|d k    ||ft          t          ||z                       1DS )r0      r   )r+   r   r,   s      r#   r$   z6TestGridPlot.test_gridspace_sparse.<locals>.<dictcomp>A   sf     J J J%*1QZZJ J !1a a&%ac

"3"3AGr&   r   r   )i@  i7  )r	   r+   r   r2   get_sizerJ   r5   )r8   r9   r:   sizes       r#   test_gridspace_sparsez"TestGridPlot.test_gridspace_sparse@   sy     J JU1a[[ J J J K K&t,,&tz22z*****r&   c                 ^   t          d t          d          D                       }|                    d t                    }|                    d t                    }|                    d           t          ||ddg                              d	
          }t          j        |          }|j	        
                    dg           }|j	        
                    di           }|                     t          |          d           |d         }|j        }	|t          |                   }
|                     t          |
          h d           |                     t          |	                                          h d           |                    d           |                     |	d         |d                             d                     |                     |	d         |d                             d                     |                     |	d         t'          j        |d                             d          t&          j                             |                     |	d         t'          j        |d                             d          t&          j                             d S )Nc           	      j    i | ]/t          fd t          d          D             g d          0S )c                 v    i | ]5}t          d |z             t          j                            dz             6S )A   r0   )chrr   r   r   )r!   r.   r-   s     r#   r$   zQTestGridPlot.test_grid_shared_source_synced_update.<locals>.<dictcomp>.<dictcomp>H   sG     $7 $7 $7() %(1IIry~~ac/B/B $7 $7 $7r&   rW   )rB   rD   CDr(   )r   r+   )r!   r-   s    @r#   r$   zFTestGridPlot.test_grid_shared_source_synced_update.<locals>.<dictcomp>H   sr     + + + 7 $7 $7 $7 $7-21XX$7 $7 $7>R>R>RT T T + + +r&   r   c                 L    t          |                     ddg                    S )NrB   rD   r(   r   clonexs    r#   <lambda>zDTestGridPlot.test_grid_shared_source_synced_update.<locals>.<lambda>M        6!''c
'*C*C#D#D r&   c                 L    t          |                     ddg                    S )Nra   r`   r(   rc   re   s    r#   rg   zDTestGridPlot.test_grid_shared_source_synced_update.<locals>.<lambda>N   rh   r&   r   )r   r0   r'   r(   T)shared_datasourceshared_sourcessource_colsr   >   rB   rD   r`   ra   )r   rB   rD   r`   ra   )r
   r+   mapr   popr	   optsr   r2   r3   getr5   lendataidsetkeysr?   dimension_valuesr   	full_likenan)r8   hmaphmap1hmap2r9   r:   sourcesrl   sourcerr   colss              r#   %test_grid_shared_source_synced_updatez2TestGridPlot.test_grid_shared_source_synced_updateG   sY    + +!&q+ + + , ,
 DDgNNDDgNN 			!Uu--cU;;;@@SW@XX &t,, ,""#3R88l&&}b99Wq))){2f::&T$8$8$8999 	TYY[[))+?+?+?@@@
 	DcE!H$=$=a$@$@AAAcE!H$=$=a$@$@AAAcBLq1J1J11M1Mrv$V$VWWWcBLq1J1J11M1Mrv$V$VWWWWWr&   c                 P   t          t          g           t          g           dd                              d          }t	          j        |          }|                     |j        t                     |                     |j        j	        d         j
        t                     d S )Nr   r   r'   lefttoolbarr   )r	   r   r   ro   r   r2   r4   rJ   r   childrenr   r   r8   r9   r:   s      r#   test_grid_set_toolbar_locationz+TestGridPlot.test_grid_set_toolbar_locationl   s    U2YY6"::66<<AA&AQQ&t,,dj&111dj1!4<gFFFFFr&   c                 D   t          t          g           t          g           dd                              d           }t	          j        |          }|                     |j        t                     | 	                    d |j        j
        D             g            d S )Nr   r'   r   c                 <    g | ]}t          |t                    |S  )
isinstancer   )r!   ps     r#   
<listcomp>z:TestGridPlot.test_grid_disable_toolbar.<locals>.<listcomp>w   s'    SSSJq'<R<RS!SSSr&   )r	   r   r   ro   r   r2   r4   rJ   r   r5   r   r   s      r#   test_grid_disable_toolbarz&TestGridPlot.test_grid_disable_toolbars   s    U2YY6"::66<<AA$AOO&t,,dj&111SSTZ%8SSSUWXXXXXr&   c                     t          j        dd                      }t          d dg|g          }t          |t	          g           dd          }t          j        |          }|                     d	|j        d
         j	                   |
                    d           |                     d|j        d
         j	                   |                                 |                     |j        g            d S )NTestr   testc                      t          g           S )N)r   r   s    r#   rg   zHTestGridPlot.test_grid_dimensioned_stream_title_update.<locals>.<lambda>{   s    uRyy r&   r   )r)   streamsr   r'   ztest: 0r1   r   ztest: 1)r   definer   r   r   r   r2   assertInr3   r6   eventcleanupr5   _subscribers)r8   streamdmapr9   r:   s        r#   )test_grid_dimensioned_stream_title_updatez6TestGridPlot.test_grid_dimensioned_stream_title_updatey   s    .vA...00006(SSSduRyy11377&t,,ig!6!;<<<!ig!6!;<<<,b11111r&   N)__name__
__module____qualname__r;   r@   rT   rZ   r   r   r   r   r   r&   r#   r   r      s        	+ 	+ 	+
+ 
+ 
+< < <&+ + +#X #X #XJG G GY Y Y	2 	2 	2 	2 	2r&   r   )numpyr   bokeh.layoutsr   bokeh.modelsr   r   holoviews.corer   r   r   r	   r
   r   holoviews.elementr   r   r   holoviews.operationr   holoviews.streamsr   	test_plotr   r   r   r   r&   r#   <module>r      s%                   % % % % % % % %                3 2 2 2 2 2 2 2 2 2 * * * * * * $ $ $ $ $ $ 4 4 4 4 4 4 4 4n2 n2 n2 n2 n2= n2 n2 n2 n2 n2r&   