
    e
&                         d Z ddlZddlmZmZmZmZmZ ddl	m
Z
 ddlmZ  G d de          Z G d d	e          Z G d
 de          Z G d de          ZdS )z
Unit tests of Path types.
    N)BoxDatasetEllipsePathPolygons)	DataError)ComparisonTestCasec                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )	PathTestsc           
         t          ddgddgg          }|                     |j        j                   |                     |                    d          t          j        ddt          j        ddg                     |                     |                    d          t          j        ddt          j        dd	g                     d S 
Nr      r      r      r      r   r   r   r   r   	r   
assertTrue	interfacemultiassertEqualdimension_valuesnparraynanselfpaths     Blib/python3.11/site-packages/holoviews/tests/element/test_paths.py test_multi_path_list_constructorz*PathTests.test_multi_path_list_constructor   s    ff%'7899,---..q1128q"&!Q=  4! 4! 	" 	" 	"..q1128q"&!Q=  4! 4! 	" 	" 	" 	" 	"    c           
         t          ddgddgg          }t          |          }|                     |j        j                   |                     |                    d          t          j        ddt          j        ddg                     |                     |                    d          t          j        ddt          j        dd	g                     d S r   r   )r    r!   path2s      r"   test_multi_path_cast_pathz#PathTests.test_multi_path_cast_path   s    ff%'7899T

-...//22BHq"&!Q>  5! 5! 	" 	" 	"//22BHq"&!Q>  5! 5! 	" 	" 	" 	" 	"r$   c           
         t          ddgddgddggf          }|                     |j        j                   |                     |                    d          t          j        ddt          j        ddg                     |                     |                    d          t          j        ddt          j        ddg                     d S )Nr   r   r   r   r   r   r   s     r"   test_multi_path_tuplezPathTests.test_multi_path_tuple   s    aVq!fq!f-.//,---..q1128q"&!Q=  4! 4! 	" 	" 	"..q1128q"&!Q=  4! 4! 	" 	" 	" 	" 	"r$   c           
         t          t          ddg          t          ddg          g          }|                     |j        j                   |                     |                    d          t          j        ddt          j        ddg                     |                     |                    d          t          j        ddt          j        dd	g                     d S r   r   r   s     r"   #test_multi_path_unpack_single_pathsz-PathTests.test_multi_path_unpack_single_paths&   s    T66*++T662B-C-CDEE,---..q1128q"&!Q=  4! 4! 	" 	" 	"..q1128q"&!Q=  4! 4! 	" 	" 	" 	" 	"r$   c                    t          t          ddgg          t          ddgddgg          g          }|                     |j        j                   |                     |                    d          t          j        ddt          j        d	d
t          j        ddg                     |                     |                    d          t          j        dd	t          j        d
dt          j        ddg                     d S )Nr   r   r   r   )r      )r-      r   r   r   r   r   r-   r.   r   r   s     r"   "test_multi_path_unpack_multi_pathsz,PathTests.test_multi_path_unpack_multi_paths.   s   TFF+,--FF+ff-=>??A B B,---..q1128q"&!Q1=. 4/ 4/ 	0 	0 	0..q1128q"&!Q1=. 4/ 4/ 	0 	0 	0 	0 	0r$   c                    t          g d          }|                     |                    d          t          j        g d                     |                     |                    d          t          j        g d                     d S )N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s     r"   !test_single_path_list_constructorz+PathTests.test_single_path_list_constructor7   s    44455..q1128 = = = 4 4 	 	 	..q1128 = = = 4 4 	 	 	 	 	r$   c                 $   t          g dg df          }|                     |                    d          t          j        g d                     |                     |                    d          t          j        g d                     d S )Nr1   r2   r   r   r3   r   s     r"   "test_single_path_tuple_constructorz,PathTests.test_single_path_tuple_constructor>   s    \\\<<<011..q1128 = = = 4 4 	 	 	..q1128 = = = 4 4 	 	 	 	 	r$   c                 J   t          ddgddgg          }|                                }|                     t          |          d           |                     |d         t          ddg                     |                     |d         t          ddg                     d S )Nr   r   r   r   r   r   r   )r   splitr   len)r    r!   subpathss      r"   test_multi_path_list_splitz$PathTests.test_multi_path_list_splitE   s    ff%'7899::<<X***!dFF+;&<&<===!dFF+;&<&<=====r$   c                     t          g dg df          }|                     ||                                d                    d S )Nr1   r2   r   )r   r   r8   r   s     r"   test_single_path_splitz PathTests.test_single_path_splitL   sD    \\\<<<011tzz||A/////r$   c                 X   t          g dg d          }|                    dt                    }|                     t	          |          d           |                     |d         t          ddg                     |                     |d	         t          d
dg                     d S )N))r   r   r   )r   r   r   r   r   r   )r   r   r   )groupxyr@   )
group_typer   r   r   r   r   r   r   )r   groupbyr   r   r9   )r    dsr:   s      r"   test_dataset_groupby_pathz#PathTests.test_dataset_groupby_pathP   s    AAACVCVCVWW::g$:77X***!dFF+;&<&<===!dFF+;&<&<=====r$   N)__name__
__module____qualname__r#   r'   r)   r+   r/   r4   r6   r;   r=   rF    r$   r"   r   r      s        " " "" " "" " "" " "0 0 0    > > >0 0 0> > > > >r$   r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
PolygonsTestsc                 f   g d}g d}g dg dgg}t          |||dg          | _        dddt          j        d	d
dg}ddd
t          j        d
ddg}g dg dgg g}t          |||dg          | _        t          ||dg          | _        t          |||ddg dg dddgd          | _        d S )Nr?   r   r      ))g      ?r   r   )皙?rP   ))g @g      @)g      @r-   )gffffff@g      @rA   rB   holesr   r   r   r.   rO   r   r-   )rA   rB   )rA   rB   rR   value)r   r.   r.   )r   r   r   )rA   rB   rS   rS   )vdims)r   single_polyr   r   
multi_polymulti_poly_no_holedistinct_polys)r    xsysrR   s       r"   setUpzPolygonsTests.setUpZ   s   YYYY0002T2T2TUV#2B%G%G$HIIArvq!Q'Arvq!Q'+++-O-O-OP
 #"2$F$F#GHH"*"2,>,>+?"@"@&2::)))))a88(:AHJ J Jr$   c                 H   |                      | j        j                            | j                             | j                            d          }| j        j                            | j                  }|                     t          |          t          |                     |                     t          |          d           |                     t          |d                   d           |                     t          |d         d                   d           d S Nr   datatyper   r   r   )r   rU   r   	has_holesr8   rR   r   r9   r    pathsrR   s      r"   test_single_poly_holes_matchz*PolygonsTests.test_single_poly_holes_matchm   s    (2<<T=MNNOOO &&&88 *001ABBUSZZ000UQ'''U1X***U1Xa[))1-----r$   c                    |                      | j        j                            | j                             | j                            d          }| j        j                            | j                  }|                     t          |          t          |                     |                     t          |          d           |                     t          |d                   d           |                     t          |d         d                   d           |                     t          |d         d                   d           d S r]   )r   rV   r   r`   r8   rR   r   r9   ra   s      r"   test_multi_poly_holes_matchz)PolygonsTests.test_multi_poly_holes_matchv   s   1;;DOLLMMM%%w%77)//@@USZZ000UQ'''U1X***U1Xa[))1---U1Xa[))1-----r$   c                     t          g           }|                     |j                            |                     |                     |j                            |          g            d S )N)r   assertFalser   r`   r   rR   )r    polys     r"   test_multi_poly_empty_holesz)PolygonsTests.test_multi_poly_empty_holes   s]    ||11$77888--d33R88888r$   c                    |                      | j        j                            | j                             | j                            d          }| j        j                            | j                  }|                     t          |          t          |                     |                     t          |          d           |                     t          |d                   d           |                     t          |d         d                   d           |                     t          |d         d                   d           d S r]   )rg   rW   r   r`   r8   rR   r   r9   ra   s      r"   test_multi_poly_no_holes_matchz,PolygonsTests.test_multi_poly_no_holes_match   s   0:DDTE\]]^^^'--w-??'1778OPPUSZZ000UQ'''U1X***U1Xa[))1---U1Xa[))1-----r$   c                 V   |                      | j        j                            | j                             | j                            d          }| j        j                            | j                  }|                     t          |          t          |                     |                     t          |          d           |                     t          |d                   d           |                     t          |d         d                   d           |                     t          |d         d                   d           |                     t          |d                   d           |                     t          |d         d                   d           d S )Nr   r^   r   r   r   )r   rX   r   r`   r8   rR   r   r9   ra   s      r"   $test_distinct_multi_poly_holes_matchz2PolygonsTests.test_distinct_multi_poly_holes_match   sV   +5??@STTUUU#))7);;#-33D4GHHUSZZ000UQ'''U1X***U1Xa[))1---U1Xa[))1---U1X***U1Xa[))1-----r$   c                     g d}g d}|                      t                    5  t          ||g g gdg           d d d            d S # 1 swxY w Y   d S )Nr?   rN   rQ   )assertRaisesr   r   r    rY   rZ   s      r"    test_single_poly_hole_validationz.PolygonsTests.test_single_poly_hole_validation   s    YYYYy)) 	> 	>BR2r(;;<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   AAAc                     dddt           j        dddg}dddt           j        dddg}|                     t                    5  t	          ||g gdg           d d d            d S # 1 swxY w Y   d S )	Nr   r   r   r.   rO   r   r-   rQ   )r   r   ro   r   r   rp   s      r"   test_multi_poly_hole_validationz-PolygonsTests.test_multi_poly_hole_validation   s    Arvq!Q'Arvq!Q'y)) 	: 	:BR2$778999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   A$$A(+A(N)rG   rH   rI   r[   rc   re   ri   rk   rm   rq   rs   rJ   r$   r"   rL   rL   X   s        J J J&. . .. . .9 9 9
. . .
. 
. 
.> > >: : : : :r$   rL   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )EllipseTestsc           	          t          j        ddgddgddgddgddgd	dgg          | _        t          j        dd
gddgddgddgddgd	d
gg          | _        d S )Ng              ?g4o?g6?g'M#?g^ldwٿg'M#ҿg4o޿g"I3&g      ?g6?g^ldw)r   r   pentagonsquashedr    s    r"   r[   zEllipseTests.setUp   s    ^~"F%3~"F%3o"F$3o"F$3~"F$3~"F"H I I ^~"F%3~"F%3o"F$3o"F$3~"F$3~"F"H I Ir$   c                     t          dddd          }|                     t          |j        d                   d           d S )Nr   r   d   samples)r   r   r9   datar    ellipses     r"   test_ellipse_simple_constructorz,EllipseTests.test_ellipse_simple_constructor   sB    !Aa---W\!_--s33333r$   c                     t          dddd          }|                     t          j        |j        d         | j                  d           d S )Nr   r   r.   r}   T)r   r   r   allcloser   rx   r   s     r"   (test_ellipse_simple_constructor_pentagonz5EllipseTests.test_ellipse_simple_constructor_pentagon   sH    !Aa+++W\!_dmDDdKKKKKr$   c                     t          dddd          }|                     t          j        |j        d         | j                  d           d S )Nr   r   r.   r}   Tr   r   r   r   r   ry   r   s     r"   'test_ellipse_tuple_constructor_squashedz4EllipseTests.test_ellipse_tuple_constructor_squashed   sH    !AeQ///W\!_dmDDdKKKKKr$   c                     t          ddddd          }|                     t          j        |j        d         | j                  d           d S )Nr   r   rw   r.   )aspectr~   Tr   r   s     r"   /test_ellipse_simple_constructor_squashed_aspectz<EllipseTests.test_ellipse_simple_constructor_squashed_aspect   sJ    !AaQ777W\!_dmDDdKKKKKr$   N)rG   rH   rI   r[   r   r   r   r   rJ   r$   r"   ru   ru      sm        I I I 4 4 4L L LL L LL L L L Lr$   ru   c                   &    e Zd Zd Zd Zd Zd ZdS )BoxTestsc                     t          j        ddgddgddgddgddgg          | _        t          j        ddgddgd	d
gddgddgg          | _        d S )Ng {zQѿgg {zQ?g?gu'pg+;'g+<gY$J?gu'p?g+;'?g+<?gY$J)r   r   rotated_squarerotated_rectrz   s    r"   r[   zBoxTests.setUp   s     hk(B)4z(B*4z(B*4k(B)4k(B	(D E E H{J&@'2Z&@(2Y&@(2K&@'2J&@	&B C Cr$   c                     t          dddt          j        dz            }|                     t          j        |j        d         | j                  d           d S )Nr   r      orientationT)r   r   pir   r   r   r   r    boxs     r"   #test_box_simple_constructor_rotatedz,BoxTests.test_box_simple_constructor_rotated   sO    !AaRU1W---SXa[$2EFFMMMMMr$   c                     t          dddt          j        dz            }|                     t          j        |j        d         | j                  d           d S )Nr   )r   r   r   r   Tr   r   r   r   r   r   r   r   s     r"   "test_box_tuple_constructor_rotatedz+BoxTests.test_box_tuple_constructor_rotated   sO    !Aeq111SXa[$2CDDdKKKKKr$   c                     t          ddddt          j        dz            }|                     t          j        |j        d         | j                  d           d S )Nr   r   r   r   )r   r   Tr   r   s     r"   #test_box_aspect_constructor_rotatedz,BoxTests.test_box_aspect_constructor_rotated   sQ    !AaruQw777SXa[$2CDDdKKKKKr$   N)rG   rH   rI   r[   r   r   r   rJ   r$   r"   r   r      s^        C C CN N N
L L LL L L L Lr$   r   )__doc__numpyr   	holoviewsr   r   r   r   r   holoviews.core.data.interfacer   holoviews.element.comparisonr	   r   rL   ru   r   rJ   r$   r"   <module>r      sF        ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3 3 3 3 3 3 ; ; ; ; ; ;J> J> J> J> J>" J> J> J>ZM: M: M: M: M:& M: M: M:` L  L  L  L  L%  L  L  LFL L L L L! L L L L Lr$   