
    e0A                     &   d dl Z d dlmZmZ 	 d dlZn# e$ r  e j        d          w xY wd dlmZ d dl	m
Z
mZmZ d dl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 n# e$ r	 d d
lmZ Y nw xY wd dlmZ dej        _         G d de          Z dS )    N)	MagicMockpatchzDash not installed)CallbackContext)Bounds
DynamicMapScatter)DashComponentsdecode_store_dataencode_store_datato_dash)BoundsXYRangeXYSelection1D   )TestPlotlyPlot)Storec                   <     e Zd Z fdZd Zd Zd Zd Zd Z xZ	S )TestHoloViewsDashc                     t                                                       t                      | _        t                      | _        | j        | j        j        _        d S N)supersetUpr   app	decoratorcallbackreturn_value)self	__class__s    Ilib/python3.11/site-packages/holoviews/tests/plotting/plotly/test_dash.pyr   zTestHoloViewsDash.setUp!   sA     ;;")-&&&    c                    t          ddg          }t          | j        |g          }|                     |t                     |                     t          |j                  d           |                     t          |j                  d           |                     |j	        t                     |                     t          |j                  d           |j        d         j        }|                     t          |d                   d           |                     |d         d         d         d           d S )Nr   r   datatypescatter)r   r   r   assertIsInstancer	   assertEquallengraphskdimsstorer   resetsfigure)r   r$   
componentsfigs       r   test_simple_elementz%TestHoloViewsDash.test_simple_element)   s   1a&// TXy11
 	j.999Z.//333Z-..222j.666Z.//333 ")S[))1---VQ/;;;;;r    c           	      8   t          ddg          }t          |          }t          d |g          }t          | j        ||gd          }|                     |t                     |                     t          |j	                  d           |                     t          |j
                  d           |                     |j        t                     |                     t          |j                  d           t          t          | j        j        j        d                             }|\  }}}d	 |j	        D             |j        j        d
fgz   }	|                     d |D             |	           d |j	        D             |j        d         j        dfgz   }
|                     d |D             |
           |j        j        d
fg}|                     d |D             |           |j	        d         j        }|j	        d         j        }|                     |d
         d         d         d           |                     t          |d
                   d           |                     t          |d         d                   d           |                     |d         d         d         d         d           | j        j        j        j        d         d         }t-          dt%          |          |j        ii          }t1          j        t4          dd|d         j        dz   ig          5   |dddgddgdii i i d|          \  }}}d d d            n# 1 swxY w Y   |                     |d
         d         d         d           |                     t          |d
                   d           |                     t          |d         d                   d           |                     |d         d         d         d         d           |                     t9          |          t%          |          dd iii d!           t1          j        t4          dd|j        d         j        d"z   ig          5   |dddgddgdii i i d|          \  }}}d d d            n# 1 swxY w Y   |                     |d
         d         d         d           |                     t          |d
                   d           |                     t          |d         d                   d           |                     |d         d         d         d         d           |                     t9          |          t%          |          dd iidi d#           d S )$Nr   sourcec                 B    | t          |           nt          d          S )N)r   r   r   r   )r   )boundss    r   <lambda>z=TestHoloViewsDash.test_boundsxy_dynamic_map.<locals>.<lambda>A   s    V-?6&>>>VLEYEY r    streamsTreset_button   r   c                      g | ]}|j         d fS r,   id.0gs     r   
<listcomp>z?TestHoloViewsDash.test_boundsxy_dynamic_map.<locals>.<listcomp>T       HHHQT8,HHHr    r"   c                 *    g | ]}|j         |j        fS  component_idcomponent_propertyr@   outputs     r   rB   z?TestHoloViewsDash.test_boundsxy_dynamic_map.<locals>.<listcomp>W   #    TTT&f!6#<=TTTr    c                 *    g | ]}d D ]}|j         |fS )selectedDatarelayoutDatar=   r@   rA   props      r   rB   z?TestHoloViewsDash.test_boundsxy_dynamic_map.<locals>.<listcomp>\   E     
 
 
8
 
  T4L
 
 
 
r    n_clicksc                 *    g | ]}|j         |j        fS rE   rF   r@   ips     r   rB   z?TestHoloViewsDash.test_boundsxy_dynamic_map.<locals>.<listcomp>c   "    GGG"bor45GGGr    c                 *    g | ]}|j         |j        fS rE   rF   r@   states     r   rB   z?TestHoloViewsDash.test_boundsxy_dynamic_map.<locals>.<listcomp>l   #    PPPe %":;PPPr    r#   r$   layoutshapespathzM0 0L0 0L0 0L0 0L0 0Zr7   	triggeredprop_id.selectedDatarange      )xyzM1 3L1 4L2 4L2 3L1 3Zr4   )r   rc   r:   rd   r7   r)   	.n_clicksr7   reset_nclicksr)   )r   r   r   r   r   r%   r	   r&   r'   r(   r)   r*   r   r+   nextiterr   call_args_listr>   r,   r   	call_argsr   contentsr   objectr   rG   r
   )r   r$   boundsxydmapr-   decorator_argsoutputsinputsstatesexpected_outputsexpected_inputsexpected_statefig1fig2callback_fnstore_value	new_stores                    r   test_boundsxy_dynamic_mapz+TestHoloViewsDash.test_boundsxy_dynamic_map<   s   1a&//7+++YYJ
 
 
 TXTJJJ
 	j.999Z.//333Z-..222j.666Z.//333 d48#4#CA#FGGHH"0 IHj6GHHH'-0&9:;TTGTTT	
 	
 	

 
&
 
 
 "%z23	4 	GGGGG	
 	
 	
  &)
 	PPPPP	
 	
 	
  #* #*fa0)<<< 	T&\**A...T(^H566:::N8$Q'/#	
 	
 	
 h'4>qA!D (8h&78)
   \VAY3oEFG
 
 	 	 '2kAaV445BA{' '#T4		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	fa0)<<< 	T&\**A...T(^H566:::N8$Q'/#	
 	
 	
 	i((H,'?@ 	
 	
 	
 \Z.q14{BCD
 
 	 	 '2kAaV445rB' '#T4		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	fa0)<<< 	T&\**A...T(^H566:::N8$Q'/#	
 	
 	
 	i((H$'78 	
 	
 	
 	
 	
s$   4MM"%M"?R))R-0R-c           	      8   t          ddgddggdgdg          }t          |          }d }t          ||g          }t          | j        ||gd	
          }|                     |t                     |                     t          |j	                  d           |                     t          |j
                  d           |                     |j        t                     |                     t          |j                  d           t          t          | j        j        j        d                             }|\  }}}	d |j	        D             |j        j        dfgz   }
|                     d |D             |
           d |j	        D             |j        d         j        dfgz   }|                     d |D             |           |j        j        dfg}|                     d |	D             |           | j        j        j        j        d         d         }t+          dt%          |          |j        ii          }t/          j        t2          dd|j	        d         j        dz   ig          5   |i dddddi i d |          \  }}}d d d            n# 1 swxY w Y   |                     |d         d         d         d           |                     t          |d                   d           |                     t5          |d         d         d                   ddg           |                     t5          |d         d         d                   ddg           |                     t7          |          t%          |          dddii d           d S ) Nr   r   re   rf   r)   vdimsr1   c                 ~    | dn| } |dn|}t          | d         |d         g| d         |d         ggdgdg          S )N)r   r   r   r   x1y1r   r   x_rangey_ranges     r   dmap_fnz;TestHoloViewsDash.test_rangexy_dynamic_map.<locals>.dmap_fn   sa     'ffWG 'ffWG!*gaj)!*gaj)+37&   r    r6   Tr8   r:   c                      g | ]}|j         d fS r<   r=   r?   s     r   rB   z>TestHoloViewsDash.test_rangexy_dynamic_map.<locals>.<listcomp>   rC   r    r"   c                 *    g | ]}|j         |j        fS rE   rF   rI   s     r   rB   z>TestHoloViewsDash.test_rangexy_dynamic_map.<locals>.<listcomp>   rK   r    c                 *    g | ]}d D ]}|j         |fS rM   r=   rP   s      r   rB   z>TestHoloViewsDash.test_rangexy_dynamic_map.<locals>.<listcomp>   E       "#*J  #'  !tTl   r    rS   c                 *    g | ]}|j         |j        fS rE   rF   rU   s     r   rB   z>TestHoloViewsDash.test_rangexy_dynamic_map.<locals>.<listcomp>   rW   r    c                 *    g | ]}|j         |j        fS rE   rF   rY   s     r   rB   z>TestHoloViewsDash.test_rangexy_dynamic_map.<locals>.<listcomp>   r[   r    r7   r_   r`   z.relayoutDatarc   rd   )zxaxis.range[0]zxaxis.range[1]zyaxis.range[0]zyaxis.range[1]r#   r$   )r   rc   )r:   rd   r   rg   )r   r   r   r   r   r%   r	   r&   r'   r(   r)   r*   r   r+   rk   rl   r   rm   r>   r   rn   r   ro   r   rp   r   listr
   )r   r$   rangexyr   rr   r-   rs   rt   ru   rv   rw   rx   ry   r|   r}   rz   r{   r~   s                     r   test_rangexy_dynamic_mapz*TestHoloViewsDash.test_rangexy_dynamic_map   s[    VaVSE#
 
 
 )))	 	 	 'G9555 TXTJJJ
 	j.999Z.//333Z-..222j.666Z.//333 d48#4#CA#FGGHH"0 IHj6GHHH'-0&9:;TTGTTT	
 	
 	
 '1'8   !+ 1! 4 7DE	F 	GGGGG	
 	
 	
  &)
 	PPPPP	
 	
 	
 h'4>qA!D (7W%56)
   \Z.q14FGH
 
 	 	
 '2k$%$%$%$%	  Bk' '#T4	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  	fa0)<<< 	T&\**A...d6l1oc233aV<<<d6l1oc233aV<<< 	i((G&V&L&LM 	
 	
 	
 	
 	
s   2JJJc           	         t          ddgddgddgg          t                    }t          fd|g          }t          | j        |gd          }|                     |t                     |                     t          |j	                  d           |                     t          |j
                  d           |                     |j        t                     |                     t          |j                  d           t          t          | j        j        j        d                             }|\  }}}d	 |j	        D             |j        j        d
fgz   }|                     d |D             |           d |j	        D             |j        d         j        dfgz   }	|                     d |D             |	           |j        j        d
fg}
|                     d |D             |
           |j	        d         j        }|j	        d         j        }|                     t          |d
                   d           |                     |d
         d         d         d         d           |                     t)          |d
         d         d                   g            |                     t)          |d
         d         d                   g            | j        j        j        j        d         d         }t/          dt%          |          |j        ii          }t3          j        t6          dd|d         j        dz   ig          5   |dddddddddgii d|          \  }}}d d d            n# 1 swxY w Y   |                     t          |d
                   d           |                     |d
         d         d         d         d           |                     t)          |d
         d         d                   ddg           |                     t)          |d
         d         d                   ddg           |                     t;          |          t%          |          dddgiii d           |}t3          j        t6          dd|j        d         j        dz   ig          5   |i i d|          \  }}}d d d            n# 1 swxY w Y   |                     t          |d
                   d           |                     |d
         d         d         d         d           |                     t)          |d
         d         d                   g            |                     t)          |d
         d         d                   g            |                     t;          |          t%          |          dg iidi d           d S )Nr   r   r:   r1   c                 f    j         |                              t          |           dz             S )Nr   )size)ilocoptsr'   )indexr$   s    r   r5   z@TestHoloViewsDash.test_selection1d_dynamic_map.<locals>.<lambda>(  s)    ',u-22E

Q2GG r    r6   Tr8   c                      g | ]}|j         d fS r<   r=   r?   s     r   rB   zBTestHoloViewsDash.test_selection1d_dynamic_map.<locals>.<listcomp>;  rC   r    r"   c                 *    g | ]}|j         |j        fS rE   rF   rI   s     r   rB   zBTestHoloViewsDash.test_selection1d_dynamic_map.<locals>.<listcomp>>  rK   r    c                 *    g | ]}d D ]}|j         |fS rM   r=   rP   s      r   rB   zBTestHoloViewsDash.test_selection1d_dynamic_map.<locals>.<listcomp>C  r   r    rS   c                 *    g | ]}|j         |j        fS rE   rF   rU   s     r   rB   zBTestHoloViewsDash.test_selection1d_dynamic_map.<locals>.<listcomp>J  rW   r    c                 *    g | ]}|j         |j        fS rE   rF   rY   s     r   rB   zBTestHoloViewsDash.test_selection1d_dynamic_map.<locals>.<listcomp>S  r[   r    markerr   re   rf   r7   r_   r`   ra   points)curveNumberpointNumber
pointIndexrc   r   rg   rh   ri   )r   r   r   r   r   r%   r	   r&   r'   r(   r)   r*   r   r+   rk   rl   r   rm   r>   r,   r   r   rn   r   ro   r   rp   r   rG   r
   )r   selection1drr   r-   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r*   r$   s                    @r   test_selection1d_dynamic_mapz.TestHoloViewsDash.test_selection1d_dynamic_map"  s    Aq6Aq6Aq6233!111GGGG M
 
 
 TXTJJJ
 	j.999Z.//333Z-..222j.666Z.//333 d48#4#CA#FGGHH"0 IHj6GHHH'-0&9:;TTGTTT	
 	
 	
 '1'8   !+ 1! 4 7DE	F 	GGGGG	
 	
 	
  &)
 	PPPPP	
 	
 	
  #* #* 	T&\**A... 	fa26:A>>>d6l1oc233R888d6l1oc233R888 h'4>qA!D (;)=>)
   \VAY3oEFG
 
 	 	 '2k'('(&'  ()'(&'   A{' '#T4		 	 	 	 	 	 	 	 	 	 	 	 	 	 	* 	T&\**A... 	fa26:A>>>d6l1oc233aV<<<d6l1oc233aV<<< 	i((K7QF*;< 	
 	
 	
 \Z.q14{BCD
 
 	 	 '2kB5' '#T4		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	T&\**A... 	fa26:A>>>d6l1oc233R888d6l1oc233R888 	i((K7B-81 	
 	
 	
 	
 	
s$   M<<N N 8SSSc                 F   t          d dg          j                            g d          }t          | j        |g          }|                     |t                     |                     t          |j	                  d           |                     t          |j
                  d           |                     |j        t                     |                     t          |j                  d           t          t          | j        j        j        d                             }|\  }}}d |j	        D             |j        j        d	fgz   }|                     d
 |D             |           d |j	        D             t          t          |j
                                                            j        d         j        dfgz   }|                     d |D             |           |j        j        d	fg}	|                     d |D             |	           | j        j        d         d         d         }
t+          di i          }t-          j        t0          dg           5   |
i i dd |          \  }}d d d            n# 1 swxY w Y   |                     |d	         d         d         d           |                     t3          |d	         d         d                   ddg           |                     t3          |d	         d         d                   ddg           d S )Nc                 $    t          | | g          S r   r   kdim1s    r   r5   z:TestHoloViewsDash.test_kdims_dynamic_map.<locals>.<lambda>  s    '5%.11 r    r   )r)   )r   r:   rc   rd   r   r   r   c                      g | ]}|j         d fS r<   r=   r?   s     r   rB   z<TestHoloViewsDash.test_kdims_dynamic_map.<locals>.<listcomp>  rC   r    r"   c                 *    g | ]}|j         |j        fS rE   rF   rI   s     r   rB   z<TestHoloViewsDash.test_kdims_dynamic_map.<locals>.<listcomp>  rK   r    c                 *    g | ]}d D ]}|j         |fS rM   r=   rP   s      r   rB   z<TestHoloViewsDash.test_kdims_dynamic_map.<locals>.<listcomp>  rR   r    valuec                 *    g | ]}|j         |j        fS rE   rF   rU   s     r   rB   z<TestHoloViewsDash.test_kdims_dynamic_map.<locals>.<listcomp>  rW   r    c                 *    g | ]}|j         |j        fS rE   rF   rY   s     r   rB   z<TestHoloViewsDash.test_kdims_dynamic_map.<locals>.<listcomp>  r[   r    r7   r_   rc   r#   r$   re   rf   )r   redimvaluesr   r   r%   r	   r&   r'   r(   r)   r*   r   r+   rk   rl   r   rm   r>   childrenr   r   r   rp   r   r   )r   rr   r-   rs   rt   ru   rv   rw   rx   ry   r|   r}   r.   r~   s                 r   test_kdims_dynamic_mapz(TestHoloViewsDash.test_kdims_dynamic_map  s   11)
 
 
 \\\** 	 TXv..
 	j.999Z.//333Z-..222j.666Z.//333 d48#4#CA#FGGHH"0 IHj6GHHH'-0&9:;TTGTTT	
 	
 	

 
&
 
 
 4
(//112233<Q?BGLM	N 	GGGGG	
 	
 	
  &)
 	PPPPP	
 	
 	
 n3A6q9!< (B88\/;;; 	 	*{B4   S)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	VQ/;;;c&k!nS122QF;;;c&k!nS122QF;;;;;s   !J  JJ)
__name__
__module____qualname__r   r/   r   r   r   r   __classcell__)r   s   @r   r   r      s        8 8 8 8 8< < <&B
 B
 B
H`
 `
 `
DE
 E
 E
N?< ?< ?< ?< ?< ?< ?<r    r   )!unittestunittest.mockr   r   dashImportErrorSkipTestdash._callback_contextr   	holoviewsr   r   r   holoviews.plotting.plotly.dashr	   r
   r   r   holoviews.streamsr   r   r   	test_plotr   dash_core_componentsr   dash.dcc	plotly.ioiopio	templatesdefaultr   rE   r    r   <module>r      s    * * * * * * * *2KKKK 2 2 2
(
0
1
112 3 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1            = < < < < < < < < < % % % % % %*******          I< I< I< I< I< I< I< I< I< I<s    )A   A.-A.