
    e                     v   d dl Z e j        j        Zd dlmZ d dlmZmZm	Z	 d dl
mZmZ dZdZdZd Ze j                            d	d
dg          d             Ze j                            d	d
dg          d             Ze j                            d	d
dg          d             Ze j                            d	d
dg          d             Ze j                            dddg          e j                            d	d
dg          d                         Ze j                            dddg          e j                            d	d
dg          d                         Ze j                            dddg          e j                            d	d
dg          d                         Ze j                            d	d
dg          d             Ze j                            d	d
dg          d             Ze j                            d	d
dg          d             Ze j                            d	d
dg          d             Ze j                            d	d
dg          d             Ze j                            dddg          e j                            d	d
dg          d                         Ze j                            dddg          e j                            d	d
dg          d                          Ze j                            dddg          e j                            d	d
dg          d!                         Z e j                            d	d
dg          d"             Z!e j                            d	d
dg          d#             Z"e j                            d	d
dg          d$             Z#d% Z$d& Z%d' Z&dS )(    N)Row)PDFPNGSVG)serve_componentwait_for_serverz7https://assets.holoviz.org/panel/samples/pdf_sample.pdfz7https://assets.holoviz.org/panel/samples/png_sample.pngz7https://assets.holoviz.org/panel/samples/svg_sample.svgc                    t          | |          \  }}t          |t                    r|d         }t          |           |j        r?|                     d|            |                     d                                          S |                     |j	                  5  |                     d|            d d d            n# 1 swxY w Y   |                     d                                          S )Nr   zhttp://localhost:img)
r   
isinstancer   r   embedgotolocatorbounding_boxexpect_responseobject)pageobj_ports       >lib/python3.11/site-packages/panel/tests/ui/pane/test_image.pyget_bboxr      s%   dC((GAt#s !fD
y 2		,d,,---||E""//111!!#*-- 	2 	2II0$00111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2||E""//111s    CC	C	r   FTc                     t          t          |           }t          ||          }|d         dk    sJ |d         dk    sJ d S )Nr   width   heightiX  r   PNG_FILEr   r   r   pngbboxs       r   test_png_native_sizer"      sS    
he
$
$
$CD#D=C>S          c                     t          t          | d          }t          ||          }|d         dk    sJ |d         dk    sJ d S )N   )r   r   r   r      r   r   s       r   test_png_native_size_with_widthr'   #   sU    
he3
/
/
/CD#D=C>S      r#   c                     t          t          | d          }t          ||          }t          |d                   dk    sJ |d         dk    sJ d S )Nr%   )r   r   r   i
  r   )r   r   r   intr   s       r    test_png_native_size_with_heightr*   *   s]    
heC
0
0
0CD#DtG}$$$$>S      r#   c                     t          t          d|           }t          ||          }|d         dk    sJ |d         dk    sJ d S )Ni  r   r   r   r   i,  r   r   s       r   test_png_scaled_fixed_sizer-   1   sU    
hc
/
/
/CD#D=C>S      r#   sizing_modescale_widthstretch_widthc                     t          t          | d|          }t          |d          }t          ||          }|d         dk    sJ |d         dk    sJ d S )	NTr.   fixed_aspectr   r   r   r     r   iI  r   r   r   r   r.   r   r   r    rowr!   s         r   test_png_scale_widthr9   8   sk     hKd%
P
P
PC
c


CD#D=C>S      r#   scale_heightstretch_heightc                     t          t          | d|          }t          |d          }t          ||          }t	          |d                   dk    sJ |d         dk    sJ d S )	NTr2     r   r   i  r     )r   r   r   r   r)   r7   s         r   test_png_scale_heightr@   A   s     hKd%
P
P
PC
c#


CD#DtG}$$$$>S      r#   stretch_both
scale_bothc                     t          t          | d|          }t          |dd          }t          ||          }|d         dk    sJ |d         d	k    sJ d S 
NTr2   r   r=   r   r   r   r5   r   r?   r6   r7   s         r   test_png_scale_bothrG   J   m     hKd%
P
P
PC
cS
)
)
)CD#D=C>S      r#   c                     t          t          dd| d          }t          |d          }t          ||          }|d         dk    sJ |d	         dk    sJ d S 
Nr0   Fr=   )r.   r3   r   r   i  r4   r   i  r   r6   r   r   r    r8   r!   s        r   test_png_stretch_widthrL   S   l    
hO%u]`
a
a
aC
c


CD#D=C>S      r#   c                     t          t          ddd|           }t          |d          }t          ||          }|d         dk    sJ |d         dk    sJ d S 	Nr;   Fr=   )r.   r3   r   r   r>   r   r   r?   r6   rK   s        r   test_png_stretch_heightrP   [   n    
h$45PS[`
a
a
aC
c#


CD#D=C>S      r#   c                     t          t          dd|           }t          |dd          }t          ||          }|d         dk    sJ |d	         d
k    sJ d S NrB   Fr2   r   r=   rF   r   r5   r   r?   r6   rK   s        r   test_png_stretch_bothrT   c   k    
hNe
T
T
TC
cS
)
)
)CD#D=C>S      r#   c                     t          t          |           }t          ||          }|d         dk    sJ t          |d                   dk    sJ d S )Nr   r   g    @@r   i  r   SVG_FILEr   r)   r   r   svgr!   s       r   test_svg_native_sizer[   k   s[    
he
$
$
$CD#D=J&&&&tH~#%%%%%%r#   c                     t          t          d|           }t          ||          }|d         dk    sJ t          |d                   dk    sJ d S )N   r,   r   r      rW   rY   s       r   test_svg_scaled_fixed_sizer_   r   s]    
hc
/
/
/CD#D=CtH~#%%%%%%r#   c                     t          t          | d|          }t          |d          }t          ||          }|d         dk    sJ |d         dk    sJ d S )	NTr2   r   r4   r   r5   r   g    `@r   rX   r   r   r.   r   r   rZ   r8   r!   s         r   test_svg_scale_widthrc   y   sk     hKd%
P
P
PC
c


CD#D=C>Z''''''r#   c                     t          t          | d|          }t          |d          }t          ||          }t	          |d                   dk    sJ |d         dk    sJ d S )	NTr2   r=   r>   r   iD  r   r?   )r   rX   r   r   r)   rb   s         r   test_svg_scale_heightre      rA   r#   c                     t          t          | d|          }t          |dd          }t          ||          }|d         dk    sJ |d         d	k    sJ d S rE   ra   rb   s         r   test_svg_scale_bothrg      rH   r#   c                     t          t          dd| d          }t          |d          }t          ||          }|d         dk    sJ |d	         dk    sJ d S rJ   ra   r   r   rZ   r8   r!   s        r   test_svg_stretch_widthrj      rM   r#   c                     t          t          ddd|           }t          |d          }t          ||          }|d         dk    sJ |d         dk    sJ d S rO   ra   ri   s        r   test_svg_stretch_heightrl      rQ   r#   c                     t          t          dd|           }t          |dd          }t          ||          }|d         dk    sJ |d	         d
k    sJ d S rS   ra   ri   s        r   test_svg_stretch_bothrn      rU   r#   c                 
   t          t          d          }t          | |          \  }}|                     d                              d          }|                    d|           sJ |                    d          sJ d S )NTr   r   srcblob:http://localhost:z#page=1r   PDF_FILEr   r   get_attribute
startswithendswithr   pdf_paner   r   rp   s        r   test_pdf_embedry      s    84(((HdH--GAt
,,w


-
-e
4
4C>>9499:::::<<	"""""""r#   c                    t          t          dd          }t          | |          \  }}|                     d                              d          }|                    d|           sJ |                    d          sJ d S )N   T
start_pager   r   rp   rq   #page=22rr   rw   s        r   test_pdf_embed_start_pager      s    8$777HdH--GAt
,,w


-
-e
4
4C>>9499:::::<<
#######r#   c                     t          t          dd          }t          | |           |                     d                              d          }|t          dz   k    sJ d S )Nr{   Fr|   r   rp   r~   )r   rs   r   r   rt   )r   rx   rp   s      r   test_pdf_no_embed_start_pager      sa    8%888HD(###
,,w


-
-e
4
4C(Z'''''''r#   )'pytestmarkui
pytestmarkpanel.layoutr   
panel.paner   r   r   panel.tests.utilr   r   rs   r   rX   r   parametrizer"   r'   r*   r-   r9   r@   rG   rL   rP   rT   r[   r_   rc   re   rg   rj   rl   rn   ry   r   r    r#   r   <module>r      s   [^
       $ $ $ $ $ $ $ $ $ $ = = = = = = = =DDD2 2 2 5$-00! ! 10! 5$-00! ! 10! 5$-00! ! 10! 5$-00! ! 10! (HII5$-00! ! 10 JI! 9I(JKK5$-00! ! 10 LK! (FGG5$-00! ! 10 HG! 5$-00! ! 10! 5$-00! ! 10! 5$-00! ! 10! 5$-00& & 10& 5$-00& & 10& (HII5$-00( ( 10 JI( 9I(JKK5$-00! ! 10 LK! (FGG5$-00! ! 10 HG! 5$-00! ! 10! 5$-00! ! 10! 5$-00! ! 10!# # #	$ 	$ 	$( ( ( ( (r#   