
    ^j-                     P   d Z ddlZddlZddlmZ ddlZddlZddlmZ ddl	Z	 e	j                  dd        ee      j                  dz  Zdd	Zd
 Zd Ze	j"                  j%                  dddg      d        Ze	j"                  j%                  dddg      d        Zd Zd Zd Zy)z2Tests for tinypages build using sphinx extensions.    N)Path)subprocess_run_for_testingsphinxz4.1.3)
minversionzdata/tinypagesc                    |g n|}t         j                  dddddt        |      t        |       t        |      g	|}t        |ddi t        j
                  dt        j                  d	      }|j                  }|j                  }|j                  d
k(  sJ d| d| d       |rt        j                  d|        |j                         sJ y )Nz-msphinxz-Wz-bhtmlz-dT )
MPLBACKENDGCOV_ERROR_FILE)capture_outputtextenvr   z!sphinx build failed with stdout:
z	
stderr:

z-sphinx build emitted the following warnings:
)sys
executablestrr   osenvirondevnullstdoutstderr
returncodepytestfailis_dir)
source_dirdoctree_dirhtml_dir
extra_argscmdprocouterrs           j/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/matplotlib/tests/test_sphinxext.pybuild_sphinx_htmlr%      s    !)zJ>>:tT6[!3z?CMPDNPC
 &DtKrzzK

KD ++C
++C??a E
,SESEDE
DSEJK??    c           
      
  
 t        j                  t        | dt        j                  ddd             | dz  dz  }|dz  | dz  
t	        | 
|       fd
fd	}fd
t        dd      D        \  }}}t        j                  | d            sJ t        j                  | d            sJ t        j                  | d            sJ t        j                  | d            sJ t        j                  | d            sJ t        j                  | d            sJ |dz  j                  d      }d|v sJ t        j                  |dz        sJ t        j                  |dz        sJ d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ |j                  d      dk(  sJ t        j                  | d             sJ t        j                  |d!z        sJ t        j                  |d"z        sJ t        j                  |d#z        sJ t        j                  |d$z        sJ t        j                  |d%z        sJ | d&z  j                         }|j                  d'd(      }| d&z  j                  |       d)D cg c]"  } ||      j                         j                  $ }	}t	        | 
|       t        j                  | d             sJ  |d      j                         j                  |	d*   k(  sJ  |d      j                         j                  |	d   k(  sJ  |d+      j                         j                  |	d   k(  sJ t        j                  | d            sJ t        j                  | d            sJ t        j                  | d+            sJ  |d      j                         j                  |	d+   kD  sJ t        j                  | d            sJ y c c}w ),NT_builddoctreesplot_directivedirs_exist_okignorer   _imagesc                     d|  dz  S Nsome_plots-.png )numimg_dirs    r$   	plot_filez!test_tinypages.<locals>.plot_file5   s    ;se4000r&   c                 0    j                   dz  d|  dz  S )Nr*   r1   r2   )parent)r4   r   s    r$   plot_directive_filez+test_tinypages.<locals>.plot_directive_file8   s#    !!$44SE7NNNr&   c              3   .   K   | ]  } |        y wNr3   ).0ir6   s     r$   	<genexpr>z!test_tinypages.<locals>.<genexpr><   s     !D1)A,!Ds                  12_0012_01   some_plots.htmlutf-8encodingz# Only a commentz
range4.pngzrange6_range6.pngz This is the caption for plot 15.z7Plot 17 uses the caption option,
with multi-line input.z3Plot 17 uses the alt option, with multi-line input.z This is the caption for plot 18.z&plot-directive my-class my-other-classz#This caption applies to both plots.      zrange6_range10.pngzcustom-basename-6.pngzcustom-basename-4.pngzcustom-basename-4-6_00.pngzcustom-basename-4-6_01.pngzincluded_plot_21.rsts   plt.plot(range(6))s   plt.plot(range(4)))r?   rK      rA   r   rM   )shutilcopytree	tinypagesignore_patternsr%   rangefilecmpcmp	read_textcount
read_bytesreplacewrite_bytesstatst_mtime)tmp_pathr   r9   range_10range_6range_4html_contentscontentsr=   modification_timesr   r5   r6   s             @@@r$   test_tinypagesrc   *   s   
OOIxt!11(J3CEF ("V+H"GZ'K hX61O "Ea!DHgw;;w	!---;;w	!---;;x2///;;x7!3444;;w	' 2333;;w	"... 11<<g<NM...;;w, 6777;;w*= =>>>->>> FVVV@MQQQ->>>3}DDDDEJJJ ;;w	"...;;x+?!?@@@;;w*A ABBB;;w*A ABBB;;w*F FGGG;;w*F FGGG 11==?H 57LMH&&33H= $01 .a0557@@ 1 1hX6;;w	"... q!&&(115G5JJJJq!&&(115G5JJJJq!&&(115G5JJJJ;;x1...;;w	!---;;w	!--- q!&&(114Fq4IIII;;w	!---!1s   'P c                    t        j                  t        dz  | dz         t        j                  t        dz  | dz         | dz  }| dz  j	                  d       | dz  dz  }t        | ||       t        t        |j                  d                  d	k(  sJ | dz  d
z  }t        | ||ddg       t        t        |j                  d                  dk(  sJ y )Nconf.py_staticr)   	index.rstz#
.. plot::

    plt.plot(range(2))
r(   html1**/index-1.pyr?   html2-Dzplot_html_show_source_link=0r   r   	rN   copyfilerP   rO   
write_textr%   lenlistglob)r\   r   	html_dir1	html_dir2s       r$   test_plot_html_show_source_linkru      s    
OOI	)8i+?@
OOI	)8i+?@Z'K'' )  8#g-IhY7tINN?345::: 8#g-IhY"&(F!GItINN?345:::r&   plot_html_show_source_linkr?   c                 >   t        j                  t        dz  | dz         t        j                  t        dz  | dz         | dz  }| dz  j	                  d       | dz  dz  }t        | ||dd	| g
       t        t        |j                  d                  dk(  sJ y )Nre   rf   r)   rg   z?
.. plot::
    :show-source-link: true

    plt.plot(range(2))
r(   r   rk   plot_html_show_source_link=rl   ri   r?   rm   r\   rv   r   r   s       r$   test_show_source_link_truerz           OOI	)8i+?@
OOI	)8i+?@Z'K'' )  ("V+HhX+,F+GHCJ KtHMM/234999r&   c                 >   t        j                  t        dz  | dz         t        j                  t        dz  | dz         | dz  }| dz  j	                  d       | dz  dz  }t        | ||dd	| g
       t        t        |j                  d                  dk(  sJ y )Nre   rf   r)   rg   z@
.. plot::
    :show-source-link: false

    plt.plot(range(2))
r(   r   rk   rx   rl   ri   r   rm   ry   s       r$   test_show_source_link_falser}      r{   r&   c                 b   t        j                  t        dz  | dz         t        j                  t        dz  | dz         | dz  }| dz  j	                  d       | dz  dz  }t        | ||       t        t        |j                  d                  d	k(  sJ |d
z  j                         }d|v sJ y )Nre   rf   r)   rg   zE
.. plot::
    :filename-prefix: custom-name

    plt.plot(range(2))
r(   r   z**/custom-name.pyr?   
index.htmlzcustom-name.py)
rN   rn   rP   rO   ro   r%   rp   rq   rr   rU   r\   r   r   html_contents       r$   /test_plot_html_show_source_link_custom_basenamer      s    
OOI	)8i+?@
OOI	)8i+?@Z'K'' )  ("V+HhX6 tHMM"5678A=== |+668L|+++r&   c                 H   t        j                  t        dz  | dz         t        j                  t        dz  | dz         | dz  }| dz  j	                  d       | dz  dz  }t        | ||       |dz  j                  d	
      }d|v sJ d|v sd|j                         v sJ y y )Nre   rf   r)   rg   z
.. plot::
    :include-source:
    :code-caption: Example plotting code

    import matplotlib.pyplot as plt
    plt.plot([1, 2, 3], [1, 4, 9])
r(   r   r   rH   rI   zExample plotting codez<p class="caption"caption)rN   rn   rP   rO   ro   r%   rU   lowerr   s       r$   test_plot_html_code_captionr      s    
OOI	)8i+?@
OOI	)8i+?@Z'K'' )  ("V+HhX6 |+666HL"l222  </9@R@R@T3TTT3T/r&   c           
         t        j                  t        | dt        j                  ddd             | dz  dz  }|dz  | dz  }t	        | ||dd	g
       dfd	}dD ]4  } ||      j                         sJ  ||d      j                         r4J  dz  j                         sJ dz  j                         sJ dz  j                         sJ dz  j                         sJ dz  j                         sJ dz  j                         sJ dz  j                         sJ dz  j                         sJ d|dz  j                  d      v sJ d}||dz  j                  d      v sJ d}||dz  j                  d      v sJ y ) NTr(   r)   r*   r+   r   r.   rk   zplot_srcset=2xrl   c                     d|  | dz  S r0   r3   )r4   suffr5   s     r$   r6   z&test_srcset_version.<locals>.plot_file   s    ;seD6666r&   )	r?   rK   rM   rA   rB   rC   rF      rL   z.2x)r   znestedpage-index-1.pngznestedpage-index-1.2x.pngznestedpage-index-2.pngznestedpage-index-2.2x.pngznestedpage2-index-1.pngznestedpage2-index-1.2x.pngznestedpage2-index-2.pngznestedpage2-index-2.2x.pngzDsrcset="_images/some_plots-1.png, _images/some_plots-1.2x.png 2.00x"rG   rH   rI   zVsrcset="../_images/nestedpage-index-1.png, ../_images/nestedpage-index-1.2x.png 2.00x"znestedpage/index.htmlzXsrcset="../_images/nestedpage2-index-2.png, ../_images/nestedpage2-index-2.2x.png 2.00x"znestedpage2/index.html)r	   )rN   rO   rP   rQ   r%   existsrU   )r\   r   r   r6   indstr5   s         @r$   test_srcset_versionr      s   
OOIxt!11(J3CEF ("V+H"GZ'KhX"&(8!9;7 / 3~$$&&&5)002223 ..668881199;;;..668881199;;;//7799922::<<<//7799922::<<< S,,777IJ K J8B(44???QQQQ9B(55@@'@RRRRr&   r;   )__doc__rS   r   pathlibr   rN   r   matplotlib.testingr   r   importorskip__file__r8   rP   r%   rc   ru   markparametrizerz   r}   r   r   r   r3   r&   r$   <module>r      s    8  	   
 9    H 1 N!!$44	.R.j;* 51v>: ?:$ 51v>: ?:$,,U0'Sr&   