Ë
    íÍ:jð  ã                   ó²   — 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
 d dlmZ d dlmZ ej                  j!                  dg d	¢«      d
„ «       Zd„ Zy)é    )ÚPathN)Úapprox)Ú_image)Úcompare_images)Ú_image_directories)ÚImageComparisonFailurezim1, im2, tol, expect_rms))úbasn3p02.pngúbasn3p02-minorchange.pngé
   N)r	   r
   r   g»íBs�@)r	   zbasn3p02-1px-offset.pngr   g%Ì´ý‰V@)r	   zbasn3p02-half-1px-offset.pngr   g     àO@)r	   zbasn3p02-scrambled.pngr   g‘D/£X”e@)ú
all127.pngú
all128.pngr   é   )r   r   r   r   c                 ó   — |j                  |«       t        t        t        d„ «      «      \  }}|| z  }t	        j
                  ||z  |«       t        || z  ||d¬«      }	|€|	�J ‚y|	€J ‚|	d   t        |d¬«      k(  sJ ‚y)a   
    Compare two images, expecting a particular RMS error.

    im1 and im2 are filenames relative to the baseline_dir directory.

    tol is the tolerance to pass to compare_images.

    expect_rms is the expected RMS value, or None. If None, the test will
    succeed if compare_images succeeds. Otherwise, the test will succeed if
    compare_images fails and returns an RMS error almost equal to this value.
    c                   ó   — y)NÚdummy© r   ó    úy/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/matplotlib/tests/test_compare_images.pyú<lambda>z2test_image_comparison_expect_rms.<locals>.<lambda>@   s   � r   T)ÚtolÚin_decoratorNÚrmsg-Cëâ6?)Úabs)ÚchdirÚmapr   r   ÚshutilÚcopyfiler   r   )
Úim1Úim2r   Ú
expect_rmsÚtmp_pathÚmonkeypatchÚbaseline_dirÚ
result_dirÚ
result_im2Úresultss
             r   Ú test_image_comparison_expect_rmsr'      s™   € ð` ×Ñ�hÔÜ"¤4Ô);¹OÓ)LÓMÑ€L�*ð ˜cÑ!€JÜ
‡O�O�L 3Ñ&¨
Ô3ÜØ�sÑ˜J¨C¸dôD€Gð ÐØˆÐ‰àÐ"Ð"Ð"Ø�u‰~¤¨
¸Ô!=Ò=Ð=Ñ=r   c            
      ób  — t        j                  dt         j                  ¬«      } t        j                  t
        d¬«      5  t        j                  | d d …d d …df   | «       d d d «       t        j                  t
        d¬«      5  t        j                  | | d d …d d …d d …t         j                  t         j                  f   «       d d d «       t        j                  t
        d¬«      5  t        j                  | d d …d d …d d…f   | «       d d d «       t        j                  t
        d	¬«      5  t        j                  | | d d
…d d …d d …f   «       d d d «       t        j                  t
        d¬«      5  t        j                  | | d d …d d…d d …f   «       d d d «       t        j                  t
        d¬«      5  t        j                  | | d d …d d …d d…f   «       d d d «       y # 1 sw Y   �Œ‡xY w# 1 sw Y   �Œ0xY w# 1 sw Y   ŒöxY w# 1 sw Y   Œ¼xY w# 1 sw Y   Œ‚xY w# 1 sw Y   y xY w)N)é   r)   é   )Údtypez+must be 3-dimensional, but is 2-dimensional)Úmatchr   z+must be 3-dimensional, but is 5-dimensionalz#must be RGB or RGBA but has depth 2é   z5expected size: \(16, 16, 4\) actual size \(8, 16, 4\)é   z5expected size: \(16, 16, 4\) actual size \(16, 6, 4\)é   z6expected size: \(16, 16, 4\) actual size \(16, 16, 3\)é   )	ÚnpÚzerosÚuint8ÚpytestÚraisesr   r   Úcalculate_rms_and_diffÚnewaxis)Úimgs    r   Útest_invalid_inputr9   O   sÓ  € Ü
�(‰(�;¤b§h¡hÔ
/€Cä	�‰Ô-ØJô
Lñ 9ä×%Ñ% cª!ªQ°¨'¡l°CÔ8÷9ô 
�‰Ô-ØJô
Lñ Qä×%Ñ% c¨3ªq²!²Q¼¿
¹
ÄBÇJÁJÐ/NÑ+OÔP÷Qô 
�‰Ô-ØBô
Dñ :ä×%Ñ% cª!ªQ°°°¨(¡m°SÔ9÷:ô 
�‰Ô-ØUô
Wñ :ä×%Ñ% c¨3¨r°¨r²1²a¨x©=Ô9÷:ô 
�‰Ô-ØUô
Wñ :ä×%Ñ% c¨3ªq°"°1°"²a¨x©=Ô9÷:ô 
�‰Ô-ØVô
Xñ :ä×%Ñ% c¨3ªq²!°R°a°R¨x©=Ô9÷:ð :÷!9ñ 9ú÷Qñ Qú÷:ð :ú÷:ð :ú÷:ð :ú÷:ð :úsI   Á!G'ÂAG4Ã)#HÄ/#HÅ5#HÆ;#H%Ç'G1Ç4G>ÈH
ÈHÈH"È%H.)Úpathlibr   r   Únumpyr1   r4   r   Ú
matplotlibr   Úmatplotlib.testing.comparer   Úmatplotlib.testing.decoratorsr   Úmatplotlib.testing.exceptionsr   ÚmarkÚparametrizer'   r9   r   r   r   ú<module>rB      sS   ðÝ Û ã Û Ý å Ý 5Ý <Ý @ð ‡�×ÑØòó ñB>óC ðB>ó>:r   