§
    qŠtj3  ã                   ó�  — d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZ d dlmZ d„ Zd„ Zd„ Zd	„ Zd
„ Zej        d„ ¦   «         Zej        d„ ¦   «         Zd„ Zej        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!ej"         #                    dg d¢¦  «        d„ ¦   «         Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d „ Z+d!„ Z,d"„ Z-dS )#é    N)Úndimage)Úconnected_components)ÚPatchExtractorÚ_extract_patchesÚextract_patches_2dÚgrid_to_graphÚimg_to_graphÚreconstruct_from_patches_2d)Úassert_allclosec                  ó2  — t           j        d d…d d…f         dz
  \  } }t          | ¦  «        }t          |¦  «        }|j        |j        k    sJ ‚t           j                             |j        |j        dk             |j        |j        dk             ¦  «         d S )Né   é
   r   )ÚnpÚmgridr	   ÚnnzÚtestingÚassert_array_equalÚdata)ÚxÚyÚgrad_xÚgrad_ys       úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/feature_extraction/tests/test_image.pyÚtest_img_to_graphr      s“   € ÝŒ8�B�Q�B˜˜˜�FÔ˜bÑ �D€A€qÝ˜!‰_Œ_€FÝ˜!‰_Œ_€FØŒ:˜œÒ#Ð#Ð#Ð#õ „J×!Ò!ØŒ�F”K !’OÔ$ f¤k°&´+À²/Ô&Bñô ð ð ð ó    c                  ó^  — t          j        dt          ¬¦  «        } d| d<   d| d d …df<   t          j        d¦  «        }d|d<   d|d<   d|d	<   t          || ¬
¦  «                             ¦   «         }t          j        g d¢g d¢g d¢g¦  «        }t           j                             ||¦  «         d S )N©é   é   ©Údtypeé   ©r   r   r   éÿÿÿÿ)r   r   éþÿÿÿ©r"   r   ©Úmask©r"   r   r   )r   r$   r"   )r   r"   r%   )r   ÚzerosÚboolr	   ÚtodenseÚarrayr   r   )r(   r   r   Údesireds       r   Útest_img_to_graph_sparser/   !   sº   € õ Œ8�F¥$Ð'Ñ'Ô'€DØ€Dˆ�JØ€DˆˆˆˆAˆ�JÝ
Œ�ÑÔ€AØ€A€d�GØ€A€d�GØ€A€d�GÝ˜! $Ð'Ñ'Ô'×/Ò/Ñ1Ô1€FÝŒh˜	˜	˜	 : : :¨z¨z¨zÐ:Ñ;Ô;€GÝ„J×!Ò! &¨'Ñ2Ô2Ð2Ð2Ð2r   c                  ó4  — d} d}t          j        | | ft          ¬¦  «        }d|d|…d|…f<   d|| d …| d …f<   |                     | dz  ¦  «        }t	          | | |t           j        ¬¦  «        }t          |¦  «        d         dk    sJ ‚t          j        dt          ¬¦  «        }d|d<   d|d d …df<   t	          dd	d|                     ¦   «         ¬
¦  «                             ¦   «         }t          j	        g d¢g d¢g d¢g¦  «        }t           j
                             ||¦  «         t          j        | | ft           j        ¬¦  «        }t	          | | | |¬¦  «        }t          |¦  «        d         dk    sJ ‚t          j        | | f¦  «        }t	          | | | |t          ¬¦  «        }|j        t          k    sJ ‚t	          | | | |t          ¬¦  «        }|j        t          k    sJ ‚t	          | | | |t           j        ¬¦  «        }|j        t           j        k    sJ ‚d S )Nr   r"   r    Tr   )Ún_xÚn_yr(   Ú	return_asr   r#   r   r'   r)   )r   r"   r"   )r1   r2   Ún_zr(   )r1   r2   r4   r(   r!   )r   r*   r+   Úreshaper   Úndarrayr   Úravelr,   r-   r   r   ÚonesÚint16r!   ÚintÚfloat64)ÚsizeÚroi_sizer(   ÚAÚgraphr.   s         r   Útest_grid_to_graphr@   0   s  € à€DØ€Hõ Œ8�T˜4�L­Ð-Ñ-Ô-€DØ#'€Dˆˆ8ˆ�Q�x�ZÐ	Ñ Ø#'€Dˆ(ˆˆˆ�h�Y�Z�ZÐ	Ñ Ø�<Š<˜˜a™Ñ Ô €DÝ˜$ D¨t½r¼zÐJÑJÔJ€AÝ Ñ"Ô" 1Ô%¨Ò*Ð*Ð*Ð*õ Œ8�F¥$Ð'Ñ'Ô'€DØ€Dˆ�JØ€DˆˆˆˆAˆ�JÝ˜!˜Q ¨¯
ª
©¬Ð5Ñ5Ô5×=Ò=Ñ?Ô?€EÝŒh˜	˜	˜	 9 9 9¨i¨i¨iÐ8Ñ9Ô9€GÝ„J×!Ò! %¨Ñ1Ô1Ð1õ Œ7�D˜$�<¥r¤xÐ0Ñ0Ô0€DÝ˜$ D¨d¸Ð>Ñ>Ô>€AÝ Ñ"Ô" 1Ô%¨Ò*Ð*Ð*Ð*õ Œ7�D˜$�<Ñ Ô €DÝ˜$ D¨d¸ÅTÐJÑJÔJ€AØŒ7•dŠ?ˆ?ˆ?ˆ?Ý˜$ D¨d¸ÅSÐIÑIÔI€AØŒ7•cŠ>ˆ>ˆ>ˆ>Ý˜$ D¨d¸ÅRÄZÐPÑPÔP€AØŒ7•b”jÒ Ð Ð Ð Ð Ð r   c                 óÈ   — | }|d d d…d d d…f         }dD ]L}||k    }t          ||¬¦  «        }t          j        |¦  «        d         t          |¦  «        d         k    sJ ‚ŒMd S )Nr   )é2   é–   r'   r"   r   )r	   r   Úlabelr   )Úraccoon_face_fxtÚfaceÚthrr(   r?   s        r   Útest_connect_regionsrH   T   s‰   € Ø€Dà���!��S�S�q�S�Œ>€DØð Hð HˆØ�cŠzˆÝ˜T¨Ð-Ñ-Ô-ˆÝŒ}˜TÑ"Ô" 1Ô%Õ)=¸eÑ)DÔ)DÀQÔ)GÒGÐGÐGÐGÐGðHð Hr   c                 óT  — | }|d d d…d d d…f         }|dk    }t          |j        d|iŽ}t          j        |¦  «        d         t	          |¦  «        d         k    sJ ‚|dk    }t          |j        |d dœŽ}t          j        |¦  «        d         t	          |¦  «        d         k    sJ ‚d S )Nr   rB   r(   r"   r   rC   )r(   r!   )r   Úshaper   rD   r   )rE   rF   r(   r?   s       r   Útest_connect_regions_with_gridrK   ^   sÀ   € Ø€Dð ���!��S�S�q�S�Œ>€Dà�"Š9€DÝ˜4œ:Ð1¨DÐ1Ð1€EÝŒ=˜ÑÔ˜qÔ!Õ%9¸%Ñ%@Ô%@ÀÔ%CÒCÐCÐCÐCà�#Š:€DÝ˜4œ:¨D¸Ð=Ð=Ð=€EÝŒ=˜ÑÔ˜qÔ!Õ%9¸%Ñ%@Ô%@ÀÔ%CÒCÐCÐCÐCÐCÐCr   c                 ó^  — | }|d d d…d d d…f         |dd d…d d d…f         z   |d d d…dd d…f         z   |dd d…dd d…f         z   }|d d d…d d d…f         |dd d…d d d…f         z   |d d d…dd d…f         z   |dd d…dd d…f         z   }|                      t          j        ¦  «        }|dz  }|S )Nr   r"   g      0@)Úastyper   Úfloat32)rE   rF   s     r   Údownsampled_facerO   m   sò   € à€DØ���!��S�S�q�S�Œ>˜D   A  s s¨ s œOÑ+¨d°3°3°Q°3¸¸¸1¸°9¬oÑ=ÀÀQÀTÈÀTÈ1È4ÈaÈ4ÀZÔ@PÑP€DØ���!��S�S�q�S�Œ>˜D   A  s s¨ s œOÑ+¨d°3°3°Q°3¸¸¸1¸°9¬oÑ=ÀÀQÀTÈÀTÈ1È4ÈaÈ4ÀZÔ@PÑP€DØ�;Š;•r”zÑ"Ô"€DØˆD�L€DØ€Kr   c                 ó¨   — | }t          j        |j        dz   ¦  «        }d|z
  |d d …d d …df<   d|dz  z
  |d d …d d …df<   d|dz  z
  |d d …d d …df<   |S )N©r   é   r   r   r"   r   ©r   r*   rJ   )rO   rF   Ú
face_colors      r   Úorange_facerU   w   s   € à€DÝ”˜$œ* tÑ+Ñ,Ô,€JØ ™*€Jˆqˆqˆq�!�!�!�QˆwÑØ  q¡™.€Jˆqˆqˆq�!�!�!�QˆwÑØ  q¡™.€Jˆqˆqˆq�!�!�!�QˆwÑØÐr   c                 óh   — t          j        d| j        z   ¦  «        }| |d<   | dz   |d<   | dz   |d<   |S )NrQ   r   r"   r   rS   )rF   Úimagess     r   Ú_make_imagesrX   �   s@   € åŒX�d˜TœZÑ'Ñ(Ô(€FØ€Fˆ1�IØ�q‘€Fˆ1�IØ�q‘€Fˆ1�IØ€Mr   c                 ó    — t          | ¦  «        S ©N)rX   )rO   s    r   Údownsampled_face_collectionr[   Š   s   € åÐ(Ñ)Ô)Ð)r   c                 óŽ   — | }|j         \  }}d\  }}||z
  dz   ||z
  dz   z  }t          |||f¦  «        }|j         |||fk    sJ ‚d S )N©é   r^   r"   ©rJ   r   ©rO   rF   Úi_hÚi_wÚp_hÚp_wÚexpected_n_patchesÚpatchess           r   Útest_extract_patches_allrg   �   sj   € Ø€DØŒz�H€CˆØ�H€CˆØ ™) a™-¨C°#©I¸©MÑ:ÐÝ  ¨¨S zÑ2Ô2€GØŒ=Ð/°°cÐ:Ò:Ð:Ð:Ð:Ð:Ð:r   c                 ó    — | }|j         d d…         \  }}d\  }}||z
  dz   ||z
  dz   z  }t          |||f¦  «        }|j         |||dfk    sJ ‚d S )Nr   r]   r"   r   r_   )rU   rF   ra   rb   rc   rd   re   rf   s           r   Útest_extract_patches_all_colorri   ˜   st   € Ø€DØŒz˜"˜1˜"Œ~�H€CˆØ�H€CˆØ ™) a™-¨C°#©I¸©MÑ:ÐÝ  ¨¨S zÑ2Ô2€GØŒ=Ð/°°c¸1Ð=Ò=Ð=Ð=Ð=Ð=Ð=r   c                 óª   — | }|d d …dd…f         }|j         \  }}d\  }}||z
  dz   ||z
  dz   z  }t          |||f¦  «        }|j         |||fk    sJ ‚d S )Né    éa   )r^   é   r"   r_   r`   s           r   Útest_extract_patches_all_rectrn   ¡   s   € Ø€DØ����2�b�5�Œ>€DØŒz�H€CˆØ�H€CˆØ ™) a™-¨C°#©I¸©MÑ:Ðå  ¨¨S zÑ2Ô2€GØŒ=Ð/°°cÐ:Ò:Ð:Ð:Ð:Ð:Ð:r   c                 ó  — | }|j         \  }}d\  }}t          |||fd¬¦  «        }|j         d||fk    sJ ‚t          d||z
  dz   z  ||z
  dz   z  ¦  «        }t          |||fd¬¦  «        }|j         |||fk    sJ ‚t          j        t
          ¦  «        5  t          |||fd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  t          |||fd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr]   éd   ©Úmax_patchesç      à?r"   g       @g      ð¿)rJ   r   r:   ÚpytestÚraisesÚ
ValueError)rO   rF   ra   rb   rc   rd   rf   re   s           r   Ú test_extract_patches_max_patchesrw   ¬   s²  € Ø€DØŒz�H€CˆØ�H€Cˆå  ¨¨S z¸sÐCÑCÔC€GØŒ=˜S # s˜OÒ+Ð+Ð+Ð+å˜S C¨#¡I°¡MÑ2°c¸C±iÀ!±mÑDÑEÔEÐÝ  ¨¨S z¸sÐCÑCÔC€GØŒ=Ð/°°cÐ:Ò:Ð:Ð:Ð:å	Œ•zÑ	"Ô	"ð >ð >Ý˜4 # s ¸Ð=Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >å	Œ•zÑ	"Ô	"ð ?ð ?Ý˜4 # s ¸Ð>Ñ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð ?ð ?s$   ÂB5Â5B9Â<B9ÃC;Ã;C?ÄC?c                 ó^   — | }t          ||j        d¬¦  «        }|j        d         dk    sJ ‚d S )Nr   rq   r   r"   )r   rJ   )rO   rF   rf   s      r   Ú"test_extract_patch_same_size_imagery   ¾   s=   € Ø€Dõ !  t¤z¸qÐAÑAÔA€GØŒ=˜Ô˜qÒ Ð Ð Ð Ð Ð r   c                 ó¨   — | }|j         \  }}d|z  dz  d|z  dz  }}||z
  dz   ||z
  dz   z  }t          |||fd¬¦  «        }|j         |||fk    sJ ‚d S )Nr   r   r"   i   rq   r_   r`   s           r   Ú*test_extract_patches_less_than_max_patchesr{   Æ   s   € Ø€DØŒz�H€CˆØ�3‰w˜!‰|˜Q ™W¨™\ˆ€Cà ™) a™-¨C°#©I¸©MÑ:Ðå  ¨¨S z¸tÐDÑDÔD€GØŒ=Ð/°°cÐ:Ò:Ð:Ð:Ð:Ð:Ð:r   c                 ó¢   — | }d\  }}t          |||f¦  «        }t          ||j        ¦  «        }t          j                             ||¦  «         d S ©Nr]   ©r   r
   rJ   r   r   Úassert_array_almost_equal)rO   rF   rc   rd   rf   Úface_reconstructeds         r   Ú test_reconstruct_patches_perfectr�   Ñ   sT   € Ø€DØ�H€Cˆå  ¨¨S zÑ2Ô2€GÝ4°W¸d¼jÑIÔIÐÝ„J×(Ò(¨Ð/AÑBÔBÐBÐBÐBr   c                 ó¢   — | }d\  }}t          |||f¦  «        }t          ||j        ¦  «        }t          j                             ||¦  «         d S r}   r~   )rU   rF   rc   rd   rf   r€   s         r   Ú&test_reconstruct_patches_perfect_colorrƒ   Ú   sT   € Ø€DØ�H€Cˆå  ¨¨S zÑ2Ô2€GÝ4°W¸d¼jÑIÔIÐÝ„J×(Ò(¨Ð/AÑBÔBÐBÐBÐBr   zimage_size, patch_size)))é€   rR   ©r„   r„   ))rR   r„   r…   )r…   r…   ))r„   rR   r   r…   c                 ó¸   — t           j                             d¦  «        } |j        | Ž }t	          ||¦  «        }t          || ¦  «        }t          ||¦  «         dS )zÍCheck that reconstruct_from_patches_2d works when a patch dimension
    equals the corresponding image dimension.

    Non-regression test for https://github.com/scikit-learn/scikit-learn/issues/10910
    r   N)r   ÚrandomÚRandomStateÚrandr   r
   r   )Ú
image_sizeÚ
patch_sizeÚrngÚimagerf   Úreconstructeds         r   Ú(test_reconstruct_patches_edge_patch_sizer�   ã   s[   € õ Œ)×
Ò
 Ñ
"Ô
"€CØˆCŒH�jÐ!€EÝ  ¨
Ñ3Ô3€GÝ/°¸ÑDÔD€MÝ�E˜=Ñ)Ô)Ð)Ð)Ð)r   c                 ód   — | }t          dd|¬¦  «        }||                     |¦  «        k    sJ ‚d S )N©é   r’   rp   ©r‹   rr   Úrandom_state)r   Úfit)r[   Úglobal_random_seedÚfacesÚextrs       r   Útest_patch_extractor_fitr™   ù   sF   € Ø'€EÝØ sÐ9Kðñ ô €Dð �4—8’8˜E‘?”?Ò"Ð"Ð"Ð"Ð"Ð"r   c                 óª  — | }|j         dd…         \  }}d\  }}d}t          |¦  «        |z  }t          ||f||¬¦  «        }	|	                     |¦  «        }
|
j         |||fk    sJ ‚d}t          |¦  «        t	          ||z
  dz   ||z
  dz   z  |z  ¦  «        z  }t          ||f||¬¦  «        }	|	                     |¦  «        }
|
j         |||fk    sJ ‚d S )Nr"   r   r‘   rp   r“   rs   )rJ   Úlenr   Ú	transformr:   )r[   r–   r—   ra   rb   rc   rd   rr   re   r˜   rf   s              r   Ú test_patch_extractor_max_patchesr�     s  € Ø'€EØŒ{˜1˜Q˜3Ô�H€CˆØ�H€Cˆà€KÝ˜U™œ kÑ1ÐÝØ˜�:¨;ÐEWðñ ô €Dð �nŠn˜UÑ#Ô#€GØŒ=Ð/°°cÐ:Ò:Ð:Ð:Ð:à€KÝ˜U™œ¥cØ	ˆs‰�Q‰˜3 ™9 q™=Ñ)¨KÑ7ñ'ô 'ñ Ðõ Ø˜�:¨;ÐEWðñ ô €Dð �nŠn˜UÑ#Ô#€GØŒ=Ð/°°cÐ:Ò:Ð:Ð:Ð:Ð:Ð:r   c                 ó–   — | }t          d|¬¦  «        }|                     |¦  «        }|j        t          |¦  «        dz  ddfk    sJ ‚d S )Nrp   )rr   r”   é   é   )r   rœ   rJ   r›   )r[   r–   r—   r˜   rf   s        r   Ú(test_patch_extractor_max_patches_defaultr¡     sX   € ð (€EÝ cÐ8JÐKÑKÔK€DØ�nŠn˜UÑ#Ô#€GØŒ=�S ™ZœZ¨#Ñ-¨r°2Ð6Ò6Ð6Ð6Ð6Ð6Ð6r   c                 óê   — | }|j         dd…         \  }}d\  }}t          |¦  «        ||z
  dz   z  ||z
  dz   z  }t          ||f|¬¦  «        }|                     |¦  «        }	|	j         |||fk    sJ ‚d S ©Nr"   r   r‘   )r‹   r”   )rJ   r›   r   rœ   )
r[   r–   r—   ra   rb   rc   rd   re   r˜   rf   s
             r   Ú test_patch_extractor_all_patchesr¤   "  s“   € Ø'€EØŒ{˜1˜Q˜3Ô�H€CˆØ�H€CˆÝ˜U™œ s¨S¡y°1¡}Ñ5¸¸s¹ÀQ¹ÑGÐÝ c¨3 ZÐ>PÐQÑQÔQ€DØ�nŠn˜UÑ#Ô#€GØŒ=Ð/°°cÐ:Ò:Ð:Ð:Ð:Ð:Ð:r   c                 ó  — t          | ¦  «        }|j        dd…         \  }}d\  }}t          |¦  «        ||z
  dz   z  ||z
  dz   z  }t          ||f|¬¦  «        }|                     |¦  «        }	|	j        |||dfk    sJ ‚d S r£   )rX   rJ   r›   r   rœ   )
rU   r–   r—   ra   rb   rc   rd   re   r˜   rf   s
             r   Útest_patch_extractor_colorr¦   ,  s�   € Ý˜Ñ%Ô%€EØŒ{˜1˜Q˜3Ô�H€CˆØ�H€CˆÝ˜U™œ s¨S¡y°1¡}Ñ5¸¸s¹ÀQ¹ÑGÐÝ c¨3 ZÐ>PÐQÑQÔQ€DØ�nŠn˜UÑ#Ô#€GØŒ=Ð/°°c¸1Ð=Ò=Ð=Ð=Ð=Ð=Ð=r   c                  ó¨  — g d¢} g d¢}g d¢}g d¢}g d¢}g d¢}g d¢}g d¢}g d	¢}g d
¢}	g d¢}
g d¢}g d¢}g d¢}g d¢}| |z   |
z   }||z   |z   }||z   |z   }||z   |z   }||	z   |z   }t          |||||¦  «        D ]Ù\  }}}}}t          j        t          j        |¦  «        ¦  «                             |¦  «        }t          |||¬¦  «        }t          |¦  «        }|j        d |…         |k    sJ ‚t          d„ t          ||¦  «        D ¦   «         ¦  «        }|d|z           ||          	                    ¦   «         k     
                    ¦   «         sJ ‚ŒÚd S )N)©r   r¨   )é   r¨   )©r"   ©r   rQ   ©r’   )rª   rª   )r   r«   )r¨   )é	   rQ   r«   )r¨   r¬   r¬   r«   )©r   é   r®   r®   )r©   r¯   ))r   r   )r   r   )r   r©   )é   r°   ))é   r±   )r   r   )r   r   )r   r   ))r   r   r&   )r"   r   )r   r’   ))r±   é   )r   r   )r   r’   )r   é   ))r±   r   r   )r   r   r   ©é   r’   r­   r´   ))r   r   r   ©r   r   r   )r"   rµ   r   )r"   r   r   ))r"   r   r   ©r"   r"   r"   )r   r"   r   )r   r   r   ))r   r   r"   r¶   )r   r   r   )r   r   r   ))r   r   r   r·   )r°   r"   r°   )r°   r   r   )Úpatch_shapeÚextraction_stepc              3   óD   K  — | ]\  }}t          |||z   d ¦  «        V — Œd S rZ   )Úslice)Ú.0ÚiÚjs      r   ú	<genexpr>z/test_extract_patches_strided.<locals>.<genexpr>]  sG   è è € ð "
ð "
Ù&* a¨�E�!�Q˜‘U˜DÑ!Ô!ð"
ð "
ð "
ð "
ð "
ð "
r   )r$   NN)Úzipr   ÚarangeÚprodr5   r   r›   rJ   ÚtupleÚsqueezeÚall)Úimage_shapes_1DÚpatch_sizes_1DÚpatch_steps_1DÚexpected_views_1DÚlast_patch_1DÚimage_shapes_2DÚpatch_sizes_2DÚpatch_steps_2DÚexpected_views_2DÚlast_patch_2DÚimage_shapes_3DÚpatch_sizes_3DÚpatch_steps_3DÚexpected_views_3DÚlast_patch_3DÚimage_shapesÚpatch_sizesÚpatch_stepsÚexpected_viewsÚlast_patchesÚimage_shaper‹   Ú
patch_stepÚexpected_viewÚ
last_patchr�   rf   ÚndimÚlast_patch_slicess                                r   Útest_extract_patches_stridedrà   6  s  € Ø2Ð2Ð2€OØ-Ð-Ð-€NØ-Ð-Ð-€Nà1Ð1Ð1ÐØ-Ð-Ð-€Mà>Ð>Ð>€OØ9Ð9Ð9€NØ6Ð6Ð6€Nà8Ð8Ð8ÐØ7Ð7Ð7€MàBÐBÐB€OØAÐAÐA€NØBÐBÐB€NàDÐDÐDÐØ@Ð@Ð@€Mà" _Ñ4°ÑF€LØ  >Ñ1°NÑB€KØ  >Ñ1°NÑB€KØ&Ð):Ñ:Ð=NÑN€NØ  =Ñ0°=Ñ@€LåJMØ�k ;°ÀñKô Kð ð ÑFˆ�Z ¨]¸Jõ ”	�"œ' +Ñ.Ô.Ñ/Ô/×7Ò7¸ÑDÔDˆÝ"Ø˜z¸:ð
ñ 
ô 
ˆõ �;ÑÔˆàŒ}˜U˜d˜UÔ# }Ò4Ð4Ð4Ð4Ý!ð "
ð "
Ý.1°*¸jÑ.IÔ.Ið"
ñ "
ô "
ñ 
ô 
Ðð Ð$ tÑ+Ô,°Ð6GÔ0H×0PÒ0PÑ0RÔ0RÒRß
Š#‰%Œ%ð	ð 	ð ð 	ðð r   c                 óž   — | }|j         \  }}d}||z
  dz   ||z
  dz   f}t          ||¬¦  «        }|j         |d         |d         ||fk    sJ ‚d S )Nr’   r"   )r¸   r   )rJ   r   )rO   rF   ra   rb   Úpre   rf   s          r   Útest_extract_patches_squarerã   e  sr   € à€DØŒz�H€CˆØ	€AØ ™7 Q™;¨#°©'°A©+Ð7ÐÝ˜t°Ð3Ñ3Ô3€GØŒ=Ð/°Ô2Ð4FÀqÔ4IÈ1ÈaÐPÒPÐPÐPÐPÐPÐPr   c                  óF  — t          j        g d¢g d¢g d¢g¦  «        } t          j        t          ¦  «        5  t          | d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          | d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r"   r   r   )r   r±   r°   r´   )r   r"   )r"   r   )r   r-   rt   ru   rv   r   )r   s    r   Útest_width_patchrå   o  s  € å
Œ�)�)�)˜Y˜Y˜Y¨	¨	¨	Ð2Ñ3Ô3€AÝ	Œ•zÑ	"Ô	"ð &ð &Ý˜1˜fÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &å	Œ•zÑ	"Ô	"ð &ð &Ý˜1˜fÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s#   ·AÁAÁAÁ8BÂBÂBc                 óÚ   — t          | ¦  «        }d}t          d¬¦  «        }t          j        t          |¬¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zICheck that an informative error is raised if the patch_size is not valid.z*patch_size must be a tuple of two integers)r’   r’   r’   )r‹   )ÚmatchN)rX   r   rt   ru   rv   rœ   )rU   r—   Úerr_msgÚ	extractors       r   Ú test_patch_extractor_wrong_inputrê   x  s±   € å˜Ñ%Ô%€EØ:€GÝ¨)Ð4Ñ4Ô4€IÝ	Œ•z¨Ð	1Ñ	1Ô	1ð #ð #Ø×Ò˜EÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   ½A Á A$Á'A$).Únumpyr   rt   Úscipyr   Úscipy.sparse.csgraphr   Ú sklearn.feature_extraction.imager   r   r   r   r	   r
   Úsklearn.utils._testingr   r   r/   r@   rH   rK   ÚfixturerO   rU   rX   r[   rg   ri   rn   rw   ry   r{   r�   rƒ   ÚmarkÚparametrizer�   r™   r�   r¡   r¤   r¦   rà   rã   rå   rê   © r   r   ú<module>rô      s±  ðð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 3Ð 2Ð 2Ð 2Ð 2Ð 2ð
ð 
ð 
ð3ð 3ð 3ð!!ð !!ð !!ðHHð Hð HðDð Dð Dð „ðð ñ „ðð „ðð ñ „ððð ð ð „ð*ð *ñ „ð*ð;ð ;ð ;ð>ð >ð >ð;ð ;ð ;ð?ð ?ð ?ð$!ð !ð !ð;ð ;ð ;ðCð Cð CðCð Cð Cð „×ÒØðð ð ñô ð
*ð 
*ñô ð
*ð#ð #ð #ð;ð ;ð ;ð07ð 7ð 7ð;ð ;ð ;ð>ð >ð >ð,ð ,ð ,ð^Qð Qð Qð&ð &ð &ð#ð #ð #ð #ð #r   