
    e2                     H   d Z ddlmZ 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mZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlm Z  	 ddl!Z"n# e#$ r dZ"Y nw xY w	 ddl$Z%n# e#$ r dZ%Y nw xY w	 ddl&Z&n# e#$ r dZ&Y nw xY w	 ddl'm(Z) n# e#$ r dZ)Y nw xY w ee%du d	          Z* ee&du oe%du d
          Z+ ee&du d          Z, ee"du d          Z-ej.        /                    e)du d          Z0 G d de          Z1 G d de          Z2 G d de          Z3 G d de          Z4 G d d          Z5ej.        /                    e&du d           G d de5                      Z6ej.        /                    e%du d           G d de5                      Z7dS )z>
Test cases for the Comparisons class over the Chart elements
    )skipIfN)	NdOverlay)Store)RGBArea
BoxWhiskerCurveDistributionHSpanImagePathPointsPolygonsQuadMesh
RectanglesScatterSegmentsViolinVSpan)ComparisonTestCase)spatial_select_columnarzspatialpandas is not availablez/Neither shapely nor spatialpandas are availablezshapely is not availablezdatashader not availablezdask.dataframe not available)reasonc                        e Zd Z f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 xZS )TestSelection1DExprc                     dd l }t                                                       t          j        | _        t          j        d           d S Nr   bokehholoviews.plotting.bokehsupersetUpr   current_backend_backendset_current_backendself	holoviews	__class__s     Flib/python3.11/site-packages/holoviews/tests/element/test_selection.pyr!   zTestSelection1DExpr.setUp@   A    ''''-!'*****    c                 (    | j         t          _        d S Nr#   r   r"   r&   s    r)   tearDownzTestSelection1DExpr.tearDownF        $r+   c           
      l   t          g d          }|                    d          \  }}}|                     |ddi           |                     |                    |          t	          j        g d                     |                     |t          dt          dd	          i                     d S 
N         r5      r7   r   r5   r6   boundsxr7   r5   FTTTFr   r7   r5   r   $_get_selection_expr_for_stream_valueassertEqualapplynparrayr   r   r&   areaexprbboxregions        r)   test_area_selection_numericz/TestSelection1DExpr.test_area_selection_numericI   s    OOO$$!FFlF[[dFV}---D))284T4T4T+U+UVVVAuQ{{+;!<!<=====r+   c           
         t          g d                              d          }|                    d          \  }}}|                     |ddi           |                     |                    |          t          j        g d                     |                     |t          d	t          d
d          i                     d S Nr4   Tinvert_axesr   r7   r6   r5   r:   r<   r=   r>   r   r7   r5   )	r   optsr@   rA   rB   rC   rD   r   r   rE   s        r)   $test_area_selection_numeric_invertedz8TestSelection1DExpr.test_area_selection_numeric_invertedP   s    OOO$$))d);;!FFlF[[dFV}---D))284T4T4T+U+UVVVAuQ{{+;!<!<=====r+   c           
      ~   t          g dg df          }|                    dg d          \  }}}|                     |dg di           |                     |                    |          t	          j        g d                     |                     |t          dt          dd	          i                     d S 
NBACDEr4   rO   rU   rV   rW   r;   x_selectionr<   TTTFFr   r6   r?   rE   s        r)   test_area_selection_categoricalz3TestSelection1DExpr.test_area_selection_categoricalW   s    ...@AA!FF___ G 
 
dF 	___5666D))284T4T4T+U+UVVVAuQ{{+;!<!<=====r+   c                 6   t          g d          }|                    ddg          \  }}}|                     |ddi           |                     |                    |          t	          j        g d                     |                     |d            d S Nr5   r6   r7   r5   r6   r9   yr;   
index_colsr<   r=   )FTTFT)r   r@   rA   rB   rC   rD   rE   s        r)   &test_area_selection_numeric_index_colsz:TestSelection1DExpr.test_area_selection_numeric_index_cols`   s    OOO$$!FFSE G 
 
dF 	V}---D))284T4T4T+U+UVVV&&&&&r+   c           
      l   t          g d          }|                    d          \  }}}|                     |ddi           |                     |                    |          t	          j        g d                     |                     |t          dt          dd	          i                     d S r3   r	   r@   rA   rB   rC   rD   r   r   r&   curverG   rH   rI   s        r)   test_curve_selection_numericz0TestSelection1DExpr.test_curve_selection_numerici   s    ooo&&"GG|G\\dFV}---E**BH5U5U5U,V,VWWWAuQ{{+;!<!<=====r+   c           
      ~   t          g dg df          }|                    dg d          \  }}}|                     |dg di           |                     |                    |          t	          j        g d                     |                     |t          dt          dd	          i                     d S rS   rg   rh   s        r)    test_curve_selection_categoricalz4TestSelection1DExpr.test_curve_selection_categoricalp   s    000///BCC"GG___ H 
 
dF 	___5666E**BH5U5U5U,V,VWWWAuQ{{+;!<!<=====r+   c                 6   t          g d          }|                    ddg          \  }}}|                     |ddi           |                     |                    |          t	          j        g d                     |                     |d            d S r`   )r	   r@   rA   rB   rC   rD   rh   s        r)   'test_curve_selection_numeric_index_colsz;TestSelection1DExpr.test_curve_selection_numeric_index_colsy   s    ooo&&"GGSE H 
 
dF 	V}---E**BH5U5U5U,V,VWWW&&&&&r+   c           
         t          t          t          d                              }|                    d          \  }}}|                     |ddi           |                     |                    |          t          j        g d                     |                     |t          dt          dd	          i                     d S 
N
   r   r5   r7      r:   rb   r5   rs   
FFFTTTTTFFr   r5   rs   
r   listranger@   rA   rB   rC   rD   r   r   r&   box_whiskerrG   rH   rI   s        r)   test_box_whisker_singlez+TestSelection1DExpr.test_box_whisker_single   s     eBii11(MM N 
 
dF 	V}---K00"( <
 <
 <
 3 3 	 	 	 	AuQ{{+;!<!<=====r+   c           
         t          t          t          d                                                  d          }|                    d          \  }}}|                     |ddi           |                     |                    |          t          j        g d                     |                     |t          d	t          d
d          i                     d S Nrq   TrM   r5   r   rs   r7   r:   rb   rt   ru   r   r5   rs   )r   rw   rx   rP   r@   rA   rB   rC   rD   r   r   )r&   boxrG   rH   rI   s        r)    test_box_whisker_single_invertedz4TestSelection1DExpr.test_box_whisker_single_inverted   s    eBii))..4.@@ EE F 
 
dF 	V}---C"( 4
 4
 4
 + + 	 	 	 	AuQ{{+;!<!<=====r+   c           
         t          g dt          t          d                    fdd          }|                    dddg          \  }}}|                     |d	ddgd
           |                     |                    |          t          j        g d                     |                     |t          dt          dd          i                     d S N
rV   rV   rV   rU   rU   rW   rW   rW   rW   rW   rq   r<   rb   r   r7   r6   rs   rV   rU   r[   r7   rs   rb   r<   )
FTTTTFFFFFr   r7   rs   rv   ry   s        r)   test_box_whisker_catsz)TestSelection1DExpr.test_box_whisker_cats   s     "T"T"TVZ[`ac[d[dVeVe!fhkmpqq(MMc3Z N 
 
dF 	V3*==>>>K00"( <
 <
 <
 3 3 	 	 	 	AuQ{{+;!<!<=====r+   c                 ~   t          g dt          t          d                    fdd          }|                    dddgdg          \  }}}|                     |d	ddgd
           |                     |                    |          t          j        g d                     |                     |d            d S Nr   rq   r<   rb   r   rV   rU   )r;   r\   rd   r   r   )
TTTTTFFFFF)r   rw   rx   r@   rA   rB   rC   rD   ry   s        r)    test_box_whisker_cats_index_colsz4TestSelection1DExpr.test_box_whisker_cats_index_cols   s     "T"T"TVZ[`ac[d[dVeVe!fhkmpqq(MMc3ZSE N 
 
dF 	V3*==>>>K00"( <
 <
 <
 3 3 	 	 	 	&&&&&r+   c           
         t          t          t          d                              }|                    d          \  }}}|                     |ddi           |                     |                    |          t          j        g d                     |                     |t          dt          dd	          i                     d S rp   
r   rw   rx   r@   rA   rB   rC   rD   r   r   r&   violinrG   rH   rI   s        r)   test_violin_singlez&TestSelection1DExpr.test_violin_single   s    U2YY((#HH I 
 
dF 	V}---F++RX 7
 7
 7
 . . 	 	 	 	AuQ{{+;!<!<=====r+   c           
         t          t          t          d                                                  d          }|                    d          \  }}}|                     |ddi           |                     |                    |          t          j        g d                     |                     |t          d	t          d
d          i                     d S r}   )r   rw   rx   rP   r@   rA   rB   rC   rD   r   r   r   s        r)   test_violin_single_invertedz/TestSelection1DExpr.test_violin_single_inverted   s    U2YY((--$-??#HH I 
 
dF 	V}---F++RX 7
 7
 7
 . . 	 	 	 	AuQ{{+;!<!<=====r+   c           
         t          g dt          t          d                    fdd          }|                    dddg          \  }}}|                     |d	ddgd
           |                     |                    |          t          j        g d                     |                     |t          dt          dd          i                     d S r   r   r   s        r)   test_violin_catsz$TestSelection1DExpr.test_violin_cats   s    KKKTRWXZR[R[__]_bdghh#HHc3Z I 
 
dF 	V3*==>>>F++RX 7
 7
 7
 . . 	 	 	 	AuQ{{+;!<!<=====r+   c                 ~   t          g dt          t          d                    fdd          }|                    dddgdg          \  }}}|                     |d	ddgd
           |                     |                    |          t          j        g d                     |                     |d            d S r   )r   rw   rx   r@   rA   rB   rC   rD   r   s        r)   test_violin_cats_index_colsz/TestSelection1DExpr.test_violin_cats_index_cols   s    KKKTRWXZR[R[__]_bdghh#HHc3ZSE I 
 
dF 	V3*==>>>F++RX 7
 7
 7
 . . 	 	 	 	&&&&&r+   c           
         t          t          t          d                              }|                    d          \  }}}|                     |ddi           |                     |                    |          t          j        g d                     |                     |t          dt          dd	          i                     d S )
Nrq   r~   r:   Valuert   ru   r   r5   rs   )
r
   rw   rx   r@   rA   rB   rC   rD   r   r   r&   distrG   rH   rI   s        r)   test_distribution_singlez,TestSelection1DExpr.test_distribution_single   s    DrOO,,!FF G 
 
dF 	0111D))28 5
 5
 5
 , , 	 	 	 	AuQ{{+;!<!<=====r+   c           
         t          t          t          d                                                  d          }|                    d          \  }}}|                     |ddi           |                     |                    |          t          j        g d                     |                     |t          d	t          d
d          i                     d S )Nrq   TrM   rr   r:   r   rt   ru   r   r5   rs   )r
   rw   rx   rP   r@   rA   rB   rC   rD   r   r   r   s        r)   !test_distribution_single_invertedz5TestSelection1DExpr.test_distribution_single_inverted   s    DrOO,,11d1CC!FF G 
 
dF 	0111D))28 5
 5
 5
 , , 	 	 	 	AuQ{{+;!<!<=====r+   )__name__
__module____qualname__r!   r0   rJ   rQ   r^   re   rj   rl   rn   r{   r   r   r   r   r   r   r   r   r   __classcell__r(   s   @r)   r   r   >   sF       + + + + +. . .> > >> > >> > >' ' '> > >> > >' ' '	> 	> 	>	> 	> 	>	> 	> 	>	' 	' 	'	> 	> 	>	> 	> 	>	> 	> 	>	' 	' 	'	> 	> 	>	> 	> 	> 	> 	> 	> 	>r+   r   c                        e Zd Z fdZd Zd Zd Zed             Zed             Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zeed                         Zed             Zd Zd Zd Zd Z xZS )TestSelection2DExprc                     dd l }t                                                       t          j        | _        t          j        d           d S r   r   r%   s     r)   r!   zTestSelection2DExpr.setUp   r*   r+   c                 (    | j         t          _        d S r-   r.   r/   s    r)   r0   zTestSelection2DExpr.tearDown   r1   r+   c                 p   t          g d          }|                    d          \  }}}|                     |ddd           |                     |                    |          t	          j        g d                     |                     |t          dg          t          g           z             d S )Nr4   r9   r:   r=   r   r6   r<   rb   FTTFFr   r@   rA   rB   rC   rD   r   r   r&   pointsrG   rH   rI   s        r)   test_points_selection_numericz1TestSelection2DExpr.test_points_selection_numeric   s    ((#HHP\H]]dFV&99:::F++RX6W6W6W-X-XYYY\N!;!;d2hh!FGGGGGr+   c                    t          g d                              d          }|                    d          \  }}}|                     |ddd           |                     |                    |          t          j        g d	                     |                     |t          dg          t          g           z             d S )
Nr4   TrM   rO   r:   r=   r   r   r   )	r   rP   r@   rA   rB   rC   rD   r   r   r   s        r)   &test_points_selection_numeric_invertedz:TestSelection2DExpr.test_points_selection_numeric_inverted  s    ((--$-??#HHP\H]]dFV&99:::F++RX6W6W6W-X-XYYY\N!;!;d2hh!FGGGGGr+   c           	         t          g d          }t          j        g d          }|                    |          \  }}}|                     |t          j        g d          t          j        g d          d           |                     |                    |          t          j        g d                     |                     |t          g           t          t          |          dgz   g          z             d S )	Nr4   皙r   )ffffff?r   )r   皙@)r   r   geometryr   r   r   r   r   r   r   r   r   )FTFFFr   )	r   rC   rD   r@   rA   rB   r   r   rw   r&   r   geomrG   rH   rI   s         r)   test_points_selection_geomz.TestSelection2DExpr.test_points_selection_geom
  s	   ((xIIIJJ#HHRVHWWdFRX.D.D.D%E%E%'X.A.A.A%B%B D  D 	E 	E 	EF++RX6X6X6X-Y-YZZZB$T

L>8Q7R2S2S!STTTTTr+   c           	      6   t          g d                              d          }t          j        g d          }|                    |          \  }}}|                     |t          j        g d          t          j        g d          d           |                     |                    |          t          j        g d	                     |                     |t          g           t          t          |          d
gz   g          z             d S )Nr4   TrM   r   r   r   r   r   FFTFFr   )
r   rP   rC   rD   r@   rA   rB   r   r   rw   r   s         r)   #test_points_selection_geom_invertedz7TestSelection2DExpr.test_points_selection_geom_inverted  s   ((--$-??xIIIJJ#HHRVHWWdFRX.D.D.D%E%E%'X.A.A.A%B%B D  D 	E 	E 	EF++RX6X6X6X-Y-YZZZB$T

L>8Q7R2S2S!STTTTTr+   c                    t          g dg df          }|                    dg dd           \  }}}|                     |g ddd           |                     |                    |          t	          j        g d                     |                     |t          dg          t          g           z             d S )	NrT   r4   rO   rZ   r;   r\   y_selectionr=   r   r]   r   r   s        r)   !test_points_selection_categoricalz5TestSelection2DExpr.test_points_selection_categorical  s    222OOODEE#HH___$ I 
 
dF 	___6BBCCCF++RX6V6V6V-W-WXXX\N!;!;d2hh!FGGGGGr+   c                 8   t          g d          }|                    ddg          \  }}}|                     |ddd           |                     |                    |          t	          j        g d                     |                     |d            d S )	Nra   r9   rb   rc   r=   r   r   r   )r   r@   rA   rB   rC   rD   r   s        r)   (test_points_selection_numeric_index_colsz<TestSelection2DExpr.test_points_selection_numeric_index_cols'  s    ((#HHSE I 
 
dF 	V&99:::F++RX6X6X6X-Y-YZZZ&&&&&r+   c           
      l   t          g d          }|                    d          \  }}}|                     |ddi           |                     |                    |          t	          j        g d                     |                     |t          dt          dd	          i                     d S r3   r   r@   rA   rB   rC   rD   r   r   r&   scatterrG   rH   rI   s        r)   test_scatter_selection_numericz2TestSelection2DExpr.test_scatter_selection_numeric0  s    ///**$IIQ]I^^dFV}---G,,bh7W7W7W.X.XYYYAuQ{{+;!<!<=====r+   c           
         t          g d                              d          }|                    d          \  }}}|                     |ddi           |                     |                    |          t          j        g d                     |                     |t          d	t          d
d          i                     d S rL   )	r   rP   r@   rA   rB   rC   rD   r   r   r   s        r)   'test_scatter_selection_numeric_invertedz;TestSelection2DExpr.test_scatter_selection_numeric_inverted7  s    ///**//D/AA$IIQ]I^^dFV}---G,,bh7W7W7W.X.XYYYAuQ{{+;!<!<=====r+   c           
         t          g dg df          }|                    dg dd           \  }}}|                     |dg di           |                     |                    |          t	          j        g d                     |                     |t          dt          dd	          i                     d S )
NrT   r4   rO   rZ   r   r<   r]   r   r6   r   r   s        r)   "test_scatter_selection_categoricalz6TestSelection2DExpr.test_scatter_selection_categorical>  s    444oooFGG$II___$ J 
 
dF 	___5666G,,bh7W7W7W.X.XYYYAuQ{{+;!<!<=====r+   c                 6   t          g d          }|                    ddg          \  }}}|                     |ddi           |                     |                    |          t	          j        g d                     |                     |d            d S r`   )r   r@   rA   rB   rC   rD   r   s        r)   )test_scatter_selection_numeric_index_colsz=TestSelection2DExpr.test_scatter_selection_numeric_index_colsG  s    ///**$IISE J 
 
dF 	V}---G,,bh7W7W7W.X.XYYY&&&&&r+   c           
         t          g dg dt          j                            dd          f          }|                    d          \  }}}|                     |ddd	           |                     |                    |d
d          t          j        g dg dg dg dg                     |                     |t          dg          t          g           z             d S Nr   r7   r6   rO   r8   r5   )      ?      ? @@r:   r   r   r   r   r   TFexpandedflatFFFFTT)
r   rC   randomrandr@   rA   rB   rD   r   r   r&   imgrG   rH   rI   s        r)   test_image_selection_numericz0TestSelection2DExpr.test_image_selection_numericP  s   YYYbinnQ.B.BCDD EEMaEbbdFZjAABBBC$UCCRX!!!!!!	O
 F F 	 	 	 	-A,B!C!Cd2hh!NOOOOOr+   c           
         t          g dg dt          j                            dd          f                              d          }|                    d          \  }}}|                     |d	d
d           |                     |                    |dd          t          j        g dg dg dg dg                     |                     |t          dg          t          g           z             d S Nr   rO   r8   r5   TrM   )r   r   r   r   r:   r   r   r   Fr   r   r   )r   rC   r   r   rP   r@   rA   rB   rD   r   r   r   s        r)   %test_image_selection_numeric_invertedz9TestSelection2DExpr.test_image_selection_numeric_inverted\  s   YYYbinnQ.B.BCDDIIVZI[[ EEMaEbbdFZjAABBBC$UCCRX!!!!!!	O
 F F 	 	 	 	-A,B!C!Cd2hh!NOOOOOr+   c                 >   t          g dg dt          j                            dd          f          }t          j        g d          }|                    |          \  }}}|                     |t          j        g d          t          j        g d          d	           |                     |                    |d
d          t          j        dt          j        t          j        gdt          j        t          j        gt          j        t          j        t          j        gt          j        t          j        t          j        gg                     |                     |t          g           t          t          |          dgz   g          z             d S )Nr   rO   r8   r5   皙ٿr   )333333?r   )皙?333333?)r   r   r   r   r   r   r   r   r   r   r   r   TFr   g      ?r   )r   rC   r   r   rD   r@   rA   rB   nanr   r   rw   r&   r   r   rG   rH   rI   s         r)   test_img_selection_geomz+TestSelection2DExpr.test_img_selection_geomh  sr    YYYbinnQ.B.BCDDxLLLMM EEtETTdFRX.D.D.D%E%E%'X.D.D.D%E%E G  G 	H 	H 	HC$UCCRXRVRV$RVRV$VRVRV$VRVRV$	O
 F F 	 	 	 	B$T

L>8Q7R2S2S!STTTTTr+   c           
         t          g dg dt          j                            dd          f                              d          }t          j        g d          }|                    |          \  }}}|                     |t          j        g d	          t          j        g d
          d           |                     |                    |dd          t          j        g dg dg dg dg                     |                     |t          g           t          t          |          dgz   g          z             d S )Nr   rO   r8   r5   TrM   r   r   r   r   r   Fr   TTFr   r   )r   rC   r   r   rP   rD   r@   rA   rB   r   r   rw   r   s         r)    test_img_selection_geom_invertedz4TestSelection2DExpr.test_img_selection_geom_invertedx  sj   YYYbinnQ.B.BCDDIIVZI[[xLLLMM EEtETTdFRX.D.D.D%E%E%'X.D.D.D%E%E G  G 	H 	H 	HC$UCCRX!!!"""###!!!	O
 F F 	 	 	 	B$T

L>8Q7R2S2S!STTTTTr+   c           
         t          g dg dt          j                            ddd          f          }|                    d          \  }}}|                     |ddd	           |                     |                    |d
d          t          j        g dg dg dg dg                     |                     |t          dg          t          g           z             d S r   )
r   rC   r   r   r@   rA   rB   rD   r   r   r   s        r)   test_rgb_selection_numericz.TestSelection2DExpr.test_rgb_selection_numeric  s   999lllBINN1a,C,CDEE EEMaEbbdFZjAABBBC$UCCRX!!!!!!	O
 F F 	 	 	 	-A,B!C!Cd2hh!NOOOOOr+   c           
         t          g dg dt          j                            ddd          f                              d          }|                    d          \  }}}|                     |d	d
d           |                     |                    |dd          t          j        g dg dg dg dg                     |                     |t          dg          t          g           z             d S r   )r   rC   r   r   rP   r@   rA   rB   rD   r   r   r   s        r)   #test_rgb_selection_numeric_invertedz7TestSelection2DExpr.test_rgb_selection_numeric_inverted  s   999lllBINN1a,C,CDEEJJW[J\\ EEMaEbbdFZjAABBBC$UCCRX!!!!!!	O
 F F 	 	 	 	-A,B!C!Cd2hh!NOOOOOr+   c           
         d}t          j        dd|          }t          j        ||          \  }}t          j        |          t          j        |          z
  }t          j        |          t          j        |          z   }t          j        |dz  |dz  z             }t          |||f          }|                    d          \  }	}
}|                     |
ddd	           |                     |		                    |d
d          t          j
        g dg dg dg dg                     |                     |t          dg          t          g           z             d S )Nr8         r   r6   r         ffffff?r   r:   r   r   r   r   r   TFr   FFFT)FFTF)FTTFTFFF)rC   linspacemeshgridcossinsqrtr   r@   rA   rB   rD   r   r   r&   ncoordsXYQxQyZqmeshrG   rH   rI   s               r)   test_quadmesh_selectionz+TestSelection2DExpr.test_quadmesh_selection  sh   T#a((k&&))!VAYY"VAYY"GAqD1a4K  "b!%%"GGObGccdFXK@@AAAEDuEErx'''(((((((((	Q
 H H 	 	 	 	-@,A!B!BT"XX!MNNNNNr+   c           
         d}t          j        dd|          }t          j        ||          \  }}t          j        |          t          j        |          z
  }t          j        |          t          j        |          z   }t          j        |dz  |dz  z             }t          |||f                              d          }|                    d          \  }	}
}| 	                    |
d	d
d           | 	                    |	
                    |dd          t          j        g dg dg dg dg                     | 	                    |t          dg          t          g           z             d S )Nr8   r   r   r6   TrM   r   r:   r   r   r   Fr   r  )FFTT)FTFFr  )rC   r  r  r  r  r  r   rP   r@   rA   rB   rD   r   r   r  s               r)    test_quadmesh_selection_invertedz4TestSelection2DExpr.test_quadmesh_selection_inverted  sy   T#a((k&&))!VAYY"VAYY"GAqD1a4K  "b!%%**t*<<"GGObGccdF[x@@AAAEDuEErx((((((((((((	Q
 H H 	 	 	 	-@,A!B!BT"XX!MNNNNNr+   )r   r   r   r!   r0   r   r   shapelib_availabler   r   r   r   r   r   r   r   r   r   ds_availablespd_availabler   r   r   r   r  r  r   r   s   @r)   r   r      s       + + + + +. . .H H HH H H U U U U U UH H H' ' '> > >> > >> > >' ' '
P 
P 
P
P 
P 
P U U ] \U U U \U
P 
P 
P
P 
P 
PO O O$O O O O O O Or+   r   c                        e Zd Z fdZd Zd Zd Zed             Zed             Z	d Z
d Zed	             Zed
             Z xZS )TestSelectionGeomExprc                     dd l }t                                                       t          j        | _        t          j        d           d S r   r   r%   s     r)   r!   zTestSelectionGeomExpr.setUp  r*   r+   c                 (    | j         t          _        d S r-   r.   r/   s    r)   r0   zTestSelectionGeomExpr.tearDown  r1   r+   c                    t          g d          }|                    d          \  }}}|                     |ddddd           |                     |                    |          t	          j        g d                     |                     |t          dg          t          g           z             |                    d          \  }}}|                     |d	dd	dd           |                     |                    |          t	          j        g d
                     |                     |t          dg          t          g           z             d S NrO   )r7   r5   r   r8   )g      @@      @g333333@)r   ?333333@皙@r:   r   r!  r   r"  x0y0x1y1FTF)r   r   r  r"  r   r  TTT)r   r@   rA   rB   rC   rD   r   r&   rectrG   rH   rI   s        r)   test_rect_selection_numericz1TestSelectionGeomExpr.test_rect_selection_numeric  s^   NNNOO!FFNbFccdFj
*\fgghhhD))284H4H4H+I+IJJJ-A,B!C!Cd2hh!NOOO!FFN`FaadFhjXbccdddD))284F4F4F+G+GHHH-?,@!A!ADHH!LMMMMMr+   c                    t          g d                              d          }|                    d          \  }}}|                     |ddddd           |                     |                    |          t          j        g d	                     |                     |t          dg          t          g           z             |                    d
          \  }}}|                     |ddddd           |                     |                    |          t          j        g d                     |                     |t          d
g          t          g           z             d S Nr  TrM   )r   r   r"  r!  r:   r#  r$  r%  r*  )r   r   r"  r  r+  r,  )r   rP   r@   rA   rB   rC   rD   r   r-  s        r)   $test_rect_selection_numeric_invertedz:TestSelectionGeomExpr.test_rect_selection_numeric_inverted  sp   NNNOOTTaeTff!FFNbFccdFj
*\fgghhhD))284H4H4H+I+IJJJ-A,B!C!Cd2hh!NOOO!FFN`FaadFhjXbccdddD))284F4F4F+G+GHHH-?,@!A!ADHH!LMMMMMr+   c           
      b   t          g d          }t          j        g d          }|                    |          \  }}}|                     |t          j        g d          t          j        g d          t          j        g d          t          j        g d          d           |                     |                    |          t          j        g d                     |                     |t          g           t          t          |          dgz   g          z             d S 	Nr  )r   )r   r   )r   ffffff@r   r  r   )r   r   r   r   r   r   r5  r  r%  r   r   )r   rC   rD   r@   rA   rB   r   rw   r&   r.  r   rG   rH   rI   s         r)   test_rect_geom_selectionz.TestSelectionGeomExpr.test_rect_geom_selection  s6   NNNOOxLLLMM!FFPTFUUdFbh/E/E/E&F&F&(h/E/E/E&F&F&(h/E/E/E&F&F&(h/E/E/E&F&F H  H 	I 	I 	I 	D))284G4G4G+H+HIIIB$T

L>8Q7R2S2S!STTTTTr+   c           
         t          g d                              d          }t          j        g d          }|                    |          \  }}}|                     |t          j        g d          t          j        g d          t          j        g d          t          j        g d          d           |                     |                    |          t          j        g d	                     |                     |t          g           t          t          |          d
gz   g          z             d S Nr  TrM   )r   )皙	@r   )r<  r5  r6  r   )r   r<  r<  r   r7  )r'  r&  r)  r(  )TFFr   )	r   rP   rC   rD   r@   rA   rB   r   rw   r8  s         r)   !test_rect_geom_selection_invertedz7TestSelectionGeomExpr.test_rect_geom_selection_inverted  sH   NNNOOTTaeTffxLLLMM!FFPTFUUdFbh/E/E/E&F&F&(h/E/E/E&F&F&(h/E/E/E&F&F&(h/E/E/E&F&F H  H 	I 	I 	I 	D))284H4H4H+I+IJJJB$T

L>8Q7R2S2S!STTTTTr+   c                    t          g d          }|                    d          \  }}}|                     |ddddd           |                     |                    |          t	          j        g d                     |                     |t          dg          t          g           z             |                    d          \  }}}|                     |d	dd	dd           |                     |                    |          t	          j        g d
                     |                     |t          dg          t          g           z             d S r  )r   r@   rA   rB   rC   rD   r   r   r&   segsrG   rH   rI   s        r)   test_segments_selection_numericz5TestSelectionGeomExpr.test_segments_selection_numeric  s^   LLLMM!FFNbFccdFj
*\fgghhhD))284H4H4H+I+IJJJ-A,B!C!Cd2hh!NOOO!FFN`FaadFhjXbccdddD))284F4F4F+G+GHHH-?,@!A!ADHH!LMMMMMr+   c                    t          g d                              d          }|                    d          \  }}}|                     |ddddd           |                     |                    |          t          j        g d	                     |                     |t          dg          t          g           z             |                    d
          \  }}}|                     |ddddd           |                     |                    |          t          j        g d                     |                     |t          d
g          t          g           z             d S r1  )	r   rP   r@   rA   rB   rC   rD   r   r   r?  s        r)   $test_segs_selection_numeric_invertedz:TestSelectionGeomExpr.test_segs_selection_numeric_inverted	  sp   LLLMMRR_cRdd!FFNbFccdFj
*\fgghhhD))284H4H4H+I+IJJJ-A,B!C!Cd2hh!NOOO!FFN`FaadFhjXbccdddD))284F4F4F+G+GHHH-?,@!A!ADHH!LMMMMMr+   c           
      b   t          g d          }t          j        g d          }|                    |          \  }}}|                     |t          j        g d          t          j        g d          t          j        g d          t          j        g d          d           |                     |                    |          t          j        g d                     |                     |t          g           t          t          |          dgz   g          z             d S r4  )	r   rC   rD   r@   rA   rB   r   r   rw   r8  s         r)   test_segs_geom_selectionz.TestSelectionGeomExpr.test_segs_geom_selection  s6   LLLMMxLLLMM!FFPTFUUdFbh/E/E/E&F&F&(h/E/E/E&F&F&(h/E/E/E&F&F&(h/E/E/E&F&F H  H 	I 	I 	I 	D))284G4G4G+H+HIIIB$T

L>8Q7R2S2S!STTTTTr+   c           
         t          g d                              d          }t          j        g d          }|                    |          \  }}}|                     |t          j        g d          t          j        g d          t          j        g d          t          j        g d          d           |                     |                    |          t          j        g d	                     |                     |t          g           t          t          |          d
gz   g          z             d S r;  )
r   rP   rC   rD   r@   rA   rB   r   r   rw   r8  s         r)   !test_segs_geom_selection_invertedz7TestSelectionGeomExpr.test_segs_geom_selection_inverted   sH   LLLMMRR_cRddxLLLMM!FFPTFUUdFbh/E/E/E&F&F&(h/E/E/E&F&F&(h/E/E/E&F&F&(h/E/E/E&F&F H  H 	I 	I 	I 	D))284H4H4H+I+IJJJB$T

L>8Q7R2S2S!STTTTTr+   )r   r   r   r!   r0   r/  r2  shapely_availabler9  r=  rA  rC  rE  rG  r   r   s   @r)   r  r    s       + + + + +. . .	N 	N 	N	N 	N 	N 	U 	U 	U 	U 	U 	U	N 	N 	N	N 	N 	N 	U 	U 	U 	U 	U 	U 	U 	U 	U 	Ur+   r  c                   \     e Zd Z fdZd Zd Zd Zed             Zed             Z	 xZ
S )TestSelectionPolyExprc                     dd l }t                                                       t          j        | _        t          j        d           d S r   r   r%   s     r)   r!   zTestSelectionPolyExpr.setUp/  r*   r+   c                 (    | j         t          _        d S r-   r.   r/   s    r)   r0   zTestSelectionPolyExpr.tearDown5  r1   r+   c                    t          g dg dg dg          }|                    d          \  }}}|                     |ddd           |                     |                    |d	
          t	          j        g d                     |                     |t          dg          t          g           z             d S )N)r   r   )皙?皙?)333333?r   )rP  rO  )g      ?r   )r   rO  )r   rQ  )r   rP  )rQ  rQ  )r   r   )r   r   )gffffff??rO  皙ɿr   r   r:   rO  r   rV  r   r   Fr   r   )r   r@   rA   rB   rC   rD   r   r   r&   polyrG   rH   rI   s        r)   test_poly_selection_numericz1TestSelectionPolyExpr.test_poly_selection_numeric8  s    888===>>>
  
 "FFNcFdddFZkBBCCCD59928DWDWDW;X;XYYY-B,C!D!DtBxx!OPPPPPr+   c                    t          g dg dg dg                              d          }|                    d          \  }}}|                     |dd	d
           |                     |                    |d          t          j        g d                     |                     |t          dg          t          g           z             d S )NrN  rR  rS  TrM   rU  r:   rW  rX  r   FrY  FFT)	r   rP   r@   rA   rB   rC   rD   r   r   rZ  s        r)   $test_poly_selection_numeric_invertedz:TestSelectionPolyExpr.test_poly_selection_numeric_invertedC  s    888===>>>
   4D4!!	 	
 "FFNcFdddFZkBBCCCD59928DXDXDX;Y;YZZZ-B,C!D!DtBxx!OPPPPPr+   c           	          t          g dg dg dg          }t          j        g d          }|                    |          \  }}}|                     |t          j        g d          t          j        g d          d           |                     |                    |d	
          t          j        g d                     |                     |t          g           t          t          |          dgz   g          z             d S )NrN  rR  rS  )rO  333333ÿr   r         ?r   )rP  rT  r   rO  r   re  rP  )rb  r   r   rT  r   FrY  r   ra  )	r   rC   rD   r@   rA   rB   r   r   rw   r&   r[  r   rG   rH   rI   s         r)   test_poly_geom_selectionz.TestSelectionPolyExpr.test_poly_geom_selectionN  s-   888===>>>
  
 xJJJKK!FFPTFUUdFRX.C.C.C%D%D%'X.C.C.C%D%D F  F 	G 	G 	GD59928DWDWDW;X;XYYYB$T

L>8Q7R2S2S!STTTTTr+   c           	      H   t          g dg dg dg                              d          }t          j        g d          }|                    |          \  }}}|                     |t          j        g d          t          j        g d	          d
           |                     |                    |d          t          j        g d                     |                     |t          g           t          t          |          dgz   g          z             d S )NrN  rR  rS  TrM   )ra  rc  rd  )rP  r   r   rf  )rb  r   r   r   r   FrY  r^  ra  )
r   rP   rC   rD   r@   rA   rB   r   r   rw   rg  s         r)   !test_poly_geom_selection_invertedz7TestSelectionPolyExpr.test_poly_geom_selection_inverted\  sA   888===>>>
   4D4!!	 	
 xIIIJJ!FFPTFUUdFRX.C.C.C%D%D%'X.B.B.B%C%C E  E 	F 	F 	FD59928DXDXDX;Y;YZZZB$T

L>8Q7R2S2S!STTTTTr+   )r   r   r   r!   r0   r\  r_  rH  rh  rj  r   r   s   @r)   rJ  rJ  -  s        + + + + +. . .	Q 	Q 	Q	Q 	Q 	Q U U U U U U U U U Ur+   rJ  c                   B   e Zd ZdZdZ ej        ddgddgddgddgge	          Z ej        g d
e		          Z
 ej        ddgddgddgddgge	          Z ej        g de		          Z ej        d          d             Z ej        d          d             Z ej        d          d             Zej                            dee
feefg           G d d                      Zej                            deeg           G d d                      ZdS )TestSpatialSelectColumnarFNr   r7   r   r   dtype)	r   r   r   r7   r7   r   r7   r7   r   rq      )	r   r   r   r   r   r   r   r   r   module)scopec                 F    t          j        g dg ddt                    S )N)	rm  r   r7   rm  r   r7   rm  r   r7   )	r7   r7   r7   r   r   r   rm  rm  rm  r   ro  )pd	DataFramefloatr/   s    r)   	pandas_dfz#TestSpatialSelectColumnar.pandas_df  sH    |    	
 
    	r+   functionc                 .    t          j        |d          S )Nr6   )npartitions)ddfrom_pandas)r&   rx  s     r)   dask_dfz!TestSpatialSelectColumnar.dask_df  s    ~iQ7777r+   c                     | j         S r-   )methodr/   s    r)   _methodz!TestSpatialSelectColumnar._method  s
    {r+   zgeometry,pt_maskc                   0    e Zd Zd Zed             Zd ZdS )9TestSpatialSelectColumnar.TestSpatialSelectColumnarPtMaskc                 l    t          |j        |j        ||          }t          j        ||          sJ d S r-   )r   r<   rb   rC   array_equalr&   r   pt_maskrx  r  masks         r)   test_pandaszETestSpatialSelectColumnar.TestSpatialSelectColumnarPtMask.test_pandas  s7    *9;	XwWWD>$0000000r+   c                     t          |j        |j        ||          }t          j        |                                |          sJ d S r-   )r   r<   rb   rC   r  compute)r&   r   r  r~  r  r  s         r)   	test_daskzCTestSpatialSelectColumnar.TestSpatialSelectColumnarPtMask.test_dask  s?    *79gi7SSD>$,,..':::::::r+   c                     t          |j                            d          |j                            d          ||          }t	          j        ||          sJ d S )NT)copy)r   r<   to_numpyrb   rC   r  r  s         r)   
test_numpyzDTestSpatialSelectColumnar.TestSpatialSelectColumnarPtMask.test_numpy  s\    *9;+?+?T+?+J+JIKL`L`fjL`LkLkmuw~D>$0000000r+   N)r   r   r   r  dd_availabler  r   r+   r)   TestSpatialSelectColumnarPtMaskr    sM        	1 	1 	1 
	; 	; 
	;	1 	1 	1 	1 	1r+   r  r   c                   $    e Zd Zed             ZdS );TestSpatialSelectColumnar.TestSpatialSelectColumnarDaskMetac                 v    t          |j        |j        ||          }|j        j        t
          j        k    sJ d S r-   )r   r<   rb   _metarp  rC   bool_)r&   r   r~  r  r  s        r)   test_meta_dtypezKTestSpatialSelectColumnar.TestSpatialSelectColumnarDaskMeta.test_meta_dtype  s7    *79gi7SSD:#rx//////r+   N)r   r   r   r  r  r  r+   r)   !TestSpatialSelectColumnarDaskMetar    s-        		0 	0 
	0 	0 	0r+   r  )r   r   r   __test__r  rC   rD   rw  geometry_enclboolpt_mask_enclgeometry_noenclpt_mask_noenclpytestfixturerx  r~  r  markparametrizer  r  r  r+   r)   rl  rl  k  s        HFBH	S	
S	
D		D		
   M 28    	  L bh	R	R	R	R	 
   O RX    	  N V^(###  $# V^*%%%8 8 &%8 V^*%%%  &% [/=,2OQ`bpPq1rss1 1 1 1 1 1 1 ts1  [Z-)IJJ0 0 0 0 0 0 0 KJ0 0 0r+   rl  zShapely not availablec                       e Zd ZdZdZdS ) TestSpatialSelectColumnarShapelyTshapelyNr   r   r   r  r  r  r+   r)   r  r    s        HFFFr+   r  zSpatialpandas not availablec                       e Zd ZdZdZdS )&TestSpatialSelectColumnarSpatialpandasTspatialpandasNr  r  r+   r)   r  r    s        HFFFr+   r  )8__doc__unittestr   numpyrC   pandasru  r  holoviews.corer   holoviews.core.optionsr   holoviews.elementr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   holoviews.element.comparisonr   holoviews.element.selectionr   
datashaderdsImportErrorr  spdr  dask.dataframe	dataframer|  r  r  rH  r  r  skipifr  r   r   r  rJ  rl  r  r  r  r+   r)   <module>r     so                   $ $ $ $ $ $ ( ( ( ( ( (                                   $ < ; ; ; ; ; ? ? ? ? ? ?   	BBB   
CCCNNNN   GGG   	BBB sd{$DEEVGtO;tMO O F7d?,FGG vbDj"<=={!!"*5S!TTp> p> p> p> p>, p> p> p>fPO PO PO PO PO, PO PO POheU eU eU eU eU. eU eU eUP;U ;U ;U ;U ;U. ;U ;U ;U|G0 G0 G0 G0 G0 G0 G0 G0T GtO,CDD    '@   ED
 C4K(EFF    -F   GF  sH   A A! A!%A* *A43A48A= =BBB BB