
    -Ph?+                     p   d Z ddlZddlZddlmZmZ ddlZddlmZ ddl	m
Z
mZmZmZmZmZmZ  ej        d          d             Z G d	 d
          Zej                            dd          d             Zd Zd Zd Zd Zej                            de
          d             Zd Zd Zd Zd ZdS )zTesting image scrapers.    N)ConfigErrorExtensionError)_fill_gallery_conf_defaults)_KNOWN_IMG_EXTSSG_IMAGEImagePathIterator_reset_matplotlib
figure_rstmatplotlib_scrapersave_figuresfunction)scopec                 <     t          j        d           d fd	}|S )z,Sets up a test sphinx-gallery configuration.numpyNc                     t          | pi           }|                    t                    t                    t                               |S )N)src_direxamples_dirgallery_dir)r   updatestr)initgallery_conftmpdirs     b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx_gallery/tests/test_scrapers.pymake_gallery_confz,make_gallery_conf.<locals>.make_gallery_conf   sR    24:2>>KKc&kks6{{ 	 	
 	
 	
     N)pytestimportorskip)r   r   s   ` r   r   r      s<              r   c                       e Zd ZdZd Zd ZdS )matplotlib_svg_scraperzTest matplotlib svg scraper.c                     | j         j        S r   )	__class____name__)selfs    r   __repr__zmatplotlib_svg_scraper.__repr__)   s    ~&&r   c                     t          |ddi|S )z*Call matplotlib scraper with 'svg' format.formatsvg)r   )r%   argskwargss      r   __call__zmatplotlib_svg_scraper.__call__,   s    !4@@@@@r   N)r$   
__module____qualname____doc__r&   r,    r   r   r!   r!   &   s=        &&' ' 'A A A A Ar   r!   ext)pngr)   c                   
  | |dk    rdt                      fini           }ddlm                     dd           t          j                            |d         d          }t          |          
d}t          
	          }t          |||          }t          
          dk    sJ d
| }||v sJ |d         |z   }t          j                            |          sJ 
fd} |             t          |||          }t          
          dk    sJ t          dd          D ]<}	d|	 d| }||v sJ |d         |z   }t          j                            |          sJ = |             ddi|d<   t          |||          }d|v sJ d|vsJ  |             i |d<   d|d<   t          |||          }d|v sJ d|vsJ  |             ddi|d<   d|d<   t          |||          }d|vsJ d|v sJ dS )zTest matplotlib figure save.r)   image_scrapersr   N   r   image{0}.png r8   r8   image_path_iterator/image1.c                                                                                                                dd                                                                dd           d S )Nr5   )nextplotfigure)r:   plts   r   _create_two_imagesz8test_save_matplotlib_figures.<locals>._create_two_imagesE   sZ      """  """A

Ar            /image.multi_imagesingle	file_confzsphx-glr-single-imgzsphx-glr-multi-imgmulti)r!   matplotlib.pyplotpyplotr>   ospathjoinr   dictr   lenisfilerange)r   r1   r   fname_templateblock
block_vars	image_rstfnamerA   iir:   r@   s             @@r   test_save_matplotlib_figuresrZ   1   s    %$;>%<<	244677R L $#####HHQNNNW\\,}"=~NNN+N;;E*=>>>JUJ==I"##q((((sEI'%/E7>>%           UJ==I"##q((((Aqkk % %###c##	!!!!]+e3w~~e$$$$$$ ,h7J{UJ==I I----y0000  J{ (J}UJ==I I----y0000,h7J{ 'J}UJ==I 	11119,,,,,,r   c                     t          j        t          d          5   | ddi           d d d            n# 1 swxY w Y   t          j        t          d          5   | ddgi           d d d            n# 1 swxY w Y   t          j        t          d          5   | ddgi           d d d            n# 1 swxY w Y    | ddgi          }|d         dgk    sJ  | dd	dgi          }|d         dgk    sJ d S )
Nz'image_srcset' config allowedmatchimage_srcset2xz(Invalid value for image_srcset parameterF200       @1x)r   raisesr   )r   confs     r   test_image_srcset_configre   r   s   	{*I	J	J	J 2 2>401112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	{*T	U	U	U 5 5>E734445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	{*T	U	U	U 5 5>E734445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 ntf566DC5((((ntTl;<<DC5((((((s0   6::A77A;>A;B88B<?B<c                 B    | ddgi          }d}ddl m} |                    dd           t          j                            |d         d          }t          |          }d	}t          |
          }t          |||          }d| }	|	|v sJ d| d|v sJ t          |          dk    sJ |d         |	z   }	|d         d| z   }
t          j        
                    |	          sJ t          j        
                    |
          sJ |                                 |                                 |                    dd           |                                 |                    dd           t          |||          }t          |          dk    sJ t          dd          D ]v}d| d| }	|	|v sJ |d         |	z   }	t          j        
                    |	          sJ d| d| }	|	|v sJ |d         |	z   }	t          j        
                    |	          sJ wdS )z"Test matplotlib hidpi figure save.r^   r_   r2   r   Nr5   r   r6   r7   r9   r;   z/image1_2_00x.z 2.00xrB   rC   rD   rE   rF   z_2_00x.)rK   rL   r>   rM   rN   rO   r   rP   r   rQ   rR   r=   r?   rS   )r   r   r1   r@   rT   r:   rU   rV   rW   rX   fnamehirY   s               r   "test_save_matplotlib_figures_hidpirh      s   $$ntf%=>>L
C######HHQNNNW\\,}"=~NNN+N;;E*=>>>JUJ==IsEI'C'''94444"##q(((('%/E=),BS,B,BBG7>>%     7>>'""""" HHQNNNJJLLLHHQNNNUJ==I"##q((((Aqkk 	% 	%###c##	!!!!]+e3w~~e$$$$$)))C))	!!!!]+e3w~~e$$$$$$	% 	%r   c                 6    |d                                          S )Nr:   )r=   xyzs      r   _custom_funcrn      s    "#((***r   c                 `   |                                 5 }|                    t          dd d           t          dfD ]} | d|gi           	 ddd           n# 1 swxY w Y   t	          j        t          d	          5   | ddgi           ddd           n# 1 swxY w Y   t	          j        t          d
	          5   | ddgi           ddd           n# 1 swxY w Y   t          dfd dffD ]\  }} | d|gi          }t          j        	                    |d         d          }t          |          }d}t          |          }	t	          j        t          |	          5  t          ||	|           ddd           n# 1 swxY w Y   |                                 5 }|                    t          ddd           t	          j        t          d	          5   | ddgi           ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   |                                 5 }|                    t          dd d           t	          j        t          d	          5   | ddgi           ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )zTest custom scrapers._get_sg_image_scraperc                      t           S r   )rn   r0   r   r   <lambda>z%test_custom_scraper.<locals>.<lambda>   s    \ r   F)raisingsphinx_galleryr4   NzUnknown string optionr\   z'Unknown string option for image_scraperfoozdid not produce expected imagec                     dS )Ng      ?r0   rj   s      r   rr   z%test_custom_scraper.<locals>.<lambda>   s     r   zwas not a stringr   r6   r7   r9   z!^Unknown string option for image_c                      dS )Nru   r0   r0   r   r   rr   z%test_custom_scraper.<locals>.<lambda>   s    5 r   zcraper.*must be callable)contextsetattrrt   rn   r   rc   r   rM   rN   rO   r   rP   r   r   )
r   monkeypatchmcustmsgrd   rT   r:   rU   rV   s
             r   test_custom_scraperr~      sO    
				 :!			35I5ISX 	 	
 	
 	
 "#34 	: 	:D/$89999	:	: : : : : : : : : : : : : : : 
{*A	B	B	B B B+.>-?@AAAB B B B B B B B B B B B B B B 
{*S	T	T	T 7 7+eW56667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 
78		01 
2 
2	c ! "2TF!;<<d=&9>JJ/??.ABBB
]>555 	2 	2
D111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 
				 F!			."95%	PPP];.QRRR 	F 	F/2B1CDEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	FF F F F F F F F F F F F F F F 
				 F!			."9==RW	XXX];.HIII 	F 	F/2B1CDEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	FF F F F F F F F F F F F F F F F F Fs   :AA #A BB!$B!CC"%C",F

F	F	*:H$G?3H?H	HH	HHH5;J#0J?J#J	J#J	J##J'*J'c           	          d| z   g}t          |d          }d|  d|  d}||k    sJ t          |d| z   gz   d          }d|  d|  d	|  d
|  d	}||k    sJ dS )zTest reST generation of images.zsphx_glr_plot_1.rF   z 
.. image-sg:: /sphx_glr_plot_1.z*
   :alt: pl
   :srcset: /sphx_glr_plot_1.z 
   :class: sphx-glr-single-img
zsecond.zR
.. rst-class:: sphx-glr-horizontal


    *

      .. image-sg:: /sphx_glr_plot_1.z8
          :alt: pl
          :srcset: /sphx_glr_plot_1.zJ
          :class: sphx-glr-multi-img

    *

      .. image-sg:: /second.z/
          :alt: pl
          :srcset: /second.z&
          :class: sphx-glr-multi-img
N)r
   )r1   figure_listrW   single_imageimage_list_rsts        r   test_figure_rstr      s     &+,K;,,I #  "  L $$$$;)c/)::C@@I '*  &)  !     N$ &&&&&&r   c                      t           j                            t          j                    d          g} t	          | d          }t
          dz  }||k    sJ dS )z(Test figure path correct in figure reSt.	third.pngrF   r   r8   z
/third.pngN)rM   rN   rO   getcwdr
   r   )	local_imgrW   r   s      r   test_figure_rst_pathr      sS     bikk;778I9c**I==L$$$$$$r   c                  J   dg} dddg}t          | d|          }d}||k    sJ |dddgz  }t          | dgz   d|          }d	}||k    sJ t          j                            t          j                    d
          g}t          |d          }t
          dz  }||k    sJ dS )z9Test reST generation of images with srcset paths correct.zsphx_glr_plot_1.pngzsphx_glr_plot_1_2_00.png)r   ra   rF   )srcsetpathsz
.. image-sg:: /sphx_glr_plot_1.png
   :alt: pl
   :srcset: /sphx_glr_plot_1.png, /sphx_glr_plot_1_2_00.png 2.00x
   :class: sphx-glr-single-img
z
second.pngzsecond_2_00.pngan  
.. rst-class:: sphx-glr-horizontal


    *

      .. image-sg:: /sphx_glr_plot_1.png
          :alt: pl
          :srcset: /sphx_glr_plot_1.png, /sphx_glr_plot_1_2_00.png 2.00x
          :class: sphx-glr-multi-img

    *

      .. image-sg:: /second.png
          :alt: pl
          :srcset: /second.png, /second_2_00.png 2.00x
          :class: sphx-glr-multi-img
r   r   N)r
   rM   rN   rO   r   r   )r   hipathsrW   r   r   r   s         r   test_figure_rst_srcsetr     s    ()K(/IJJKG;AAAIL $$$$L'899::G;,7'RRRIN$ &&&& bikk;778I9c**I==L$$$$$$r   c                      t          d          } d| _        t          j        t          d          5  | D ]}	 ddd           dS # 1 swxY w Y   dS )zTest ImagePathIterator.zfoo{0}
   z	10 imagesr\   N)r   _stopr   rc   r   )ipirY   s     r   test_iteratorr   3  s    
H
%
%CCI	~[	9	9	9   	 	B	                 s   AA
A
c                     ddl }d|j        d<   |j        j                                          |             }t          |d           |j        d         dk    sJ t          |j        j                  dk    sJ dS )zTest _reset_matplotlib.r   N*   zlines.linewidthr8   )
matplotlibrcParamsunitsregistryclearr	   rQ   )r   r   r   s      r   test_reset_matplotlibr   <  s    -/J)*##%%%$$&&LlB'''01R7777z())A------r   ) r/   rM   r   sphinx.errorsr   r   rt   sphinx_gallery.gen_galleryr   sphinx_gallery.scrapersr   r   r   r	   r
   r   r   fixturer   r!   markparametrizerZ   re   rh   rn   r~   r   r   r   r   r   r0   r   r   <module>r      s     				  5 5 5 5 5 5 5 5     B B B B B B                  j!!!  "! A A A A A A A A //=- =- 0/=-@) ) )*% *% *%Z+ + +&F &F &FR 00 '  ' 10 'F% % %(% (% (%V  . . . . .r   