
    a6d                         d dl Z d dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
mZ d dlmZ d dlmZmZmZ d dlZ	 dZn# e$ r dZY nw xY wd	 Zd
 Zd Z G d d          ZdS )    N)data_dir)ImageCollection
MultiImagealphanumeric_key)reset_plugins)testing)assert_equalassert_allclosefetchTFc                  L    d} g d}t          t          |           |           d S )Nz23a)z   a)r	   r   )test_stringtest_str_results     @lib/python3.11/site-packages/skimage/io/tests/test_collection.pytest_string_splitr      s/    K$nnO!+..@@@@@    c                  b    g d} g d}t          | t                    }t          ||           d S )N)	f9.10.pngf9.9.png
f10.10.png	f10.9.pnge9.pnge10.pngem.png)r   r   r   r   r   r   r   )key)sortedr   r	   )	filenamesexpected_filenamessorted_filenamess      r   test_string_sortr#      sT    0 0 0IB B Bi-=>>>#%566666r   c                  f    d dD             } t          |           }t          |          dk    sJ dS )zTest function for ImageCollection. The new behavior (implemented
    in 0.16) allows the `pattern` argument to accept a list of strings
    as the input.

    Notes
    -----
        If correct, `images` will receive three images.
    c                 X    g | ]'}t           j                            t          |          (S  ospathjoinr   .0pics     r   
<listcomp>z.test_imagecollection_input.<locals>.<listcomp>/   s8     * * * w||Hc** * * *r   )z
coffee.pngzchessboard_GRAY.pngz
rocket.jpg   N)r   len)patternimagess     r   test_imagecollection_inputr3   #   sN    * *)* * *G W%%Fv;;!r   c                      e Zd Zd dD             Zd dD             Zd Zd Zd Zd Zd	 Z	e
j                            e d
          d             Ze
j                            e d
          d             Zd Zd Zd Zd ZdS )TestImageCollectionc                 X    g | ]'}t           j                            t          |          (S r&   r'   r+   s     r   r.   zTestImageCollection.<listcomp>8   s8     6 6 6 w||Hc** 6 6 6r   )	brick.pngz	color.pngc                 X    g | ]'}t           j                            t          |          (S r&   r'   r+   s     r   r.   zTestImageCollection.<listcomp>;   s8     = = = w||Hc22 = = =r   )r7   zmoon.pngc                     t                       t          | j                  | _        t          | j                  | _        t          | j                  | _        d S N)r   r   r1   r2   pattern_matchedimages_matchedr   frames_matchedselfs    r   setup_methodz TestImageCollection.setup_method>   sH    %dl33-d.BCC()=>>r   c                 :    t          | j                  dk    sJ d S )N   )r0   r2   r>   s    r   test_lenzTestImageCollection.test_lenG   s#    4;1$$$$$$r   c                     t           j                  }t          | |          D ])}t           j        |         t          j                  sJ *t           j        d          j        |                      fd}t          j        t                    5   ||           d d d            n# 1 swxY w Y   t          j        t                    5   || dz
             d d d            d S # 1 swxY w Y   d S )Nr   c                     j         |          S r:   )r2   )nr?   s    r   
return_imgz4TestImageCollection.test_getitem.<locals>.return_imgQ   s    ;q>!r      )
r0   r2   range
isinstancenpndarrayr
   r   raises
IndexError)r?   numirG   s   `   r   test_getitemz TestImageCollection.test_getitemJ   s   $+tS!! 	: 	:Adk!nbj999999ASD)	+ 	+ 	+	" 	" 	" 	" 	"^J'' 	 	JsOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	^J'' 	! 	!Jtax   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s$   B..B25B2C//C36C3c                    t          | j        d d                    t          u sJ t          | j        d d                    dk    sJ t          | j        d d                   dk    sJ t          | j        dd                    dk    sJ t	          | j        d         | j        d d         d                    t	          | j        d         | j        dd          d                    t	          | j        d         | j        d d d         d                    t	          | j        d         | j        d d d         d                    d S )NrB   rH   r   )typer2   r   r0   r
   r>   s    r   test_slicingz TestImageCollection.test_slicingX   s.   DKN##66664;qqq>""a''''4;rr?##q((((4;qrr?##q((((ABQB(:;;;AABB(:;;;ADDbD(9!(<===ADDbD(9!(<=====r   c                      t           j        j        t                    sJ  fd}t	          j        t                    5   |d           d d d            d S # 1 swxY w Y   d S )Nc                      | j         _        d S r:   )r2   files)fr?   s    r   	set_filesz:TestImageCollection.test_files_property.<locals>.set_filese   s     !DKr   newfiles)rJ   r2   rX   listr   rM   AttributeError)r?   rZ   s   ` r   test_files_propertyz'TestImageCollection.test_files_propertyb   s    $++T22222	" 	" 	" 	" 	"^N++ 	" 	"Ij!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   AA!Azneeds pooch to download data)reasonc                     t          d          fd}t          t          d          |          }t          |          dk    sJ |d         j        dk    sJ d S )Ndata/no_time_for_that_tiny.gifc                 V    t          j                  }|                    |           S r:   )imageio
get_readerget_data)framenovidfilenames     r   readerzBTestImageCollection.test_custom_load_func_sequence.<locals>.readern   s%    $X..C<<(((r      	load_funcr   )         )r   r   rI   r0   shape)r?   ri   icrh   s      @r   test_custom_load_func_sequencez2TestImageCollection.test_custom_load_func_sequencej   st    9::	) 	) 	) 	) 	) U2YY&9992ww"}}}}!u{k))))))r   c                     t          d          }d }t          ||d          }t          |          dk    sJ t          |d                   dk    sJ d S )Nra   c                 |    t          j        |           }d |                                D             }|d d |         S )Nc                     g | ]}|S r&   r&   )r,   vs     r   r.   zVTestImageCollection.test_custom_load_func_w_kwarg.<locals>.load_fn.<locals>.<listcomp>~   s    ...1...r   )rc   rd   	iter_data)rY   steprg   seqs       r   load_fnzBTestImageCollection.test_custom_load_func_w_kwarg.<locals>.load_fn|   s=    $Q''C..cmmoo...Cvvv;r   r/   )rl   rx   rH   r      )r   r   r0   )r?   load_patternrz   rq   s       r   test_custom_load_func_w_kwargz1TestImageCollection.test_custom_load_func_w_kwargx   sc    =>>	 	 	
 \W1EEE2ww!||||2a5zzQr   c                     d }t          t          j                            | j                  |          }t          |d         | j        d                    d S )Nc                     | S r:   r&   )xs    r   rz   z:TestImageCollection.test_custom_load_func.<locals>.load_fn   s    Hr   rk   r   )r   r(   pathsepr*   r1   r	   )r?   rz   rq   s      r   test_custom_load_funcz)TestImageCollection.test_custom_load_func   sU    	 	 	 RZ__T\::gNNNRUDLO,,,,,r   c                     | j                                         }t          | j                   f| j        d         j        z   }t          |j        |           d S )Nr   )r<   concatenater0   r2   rp   r	   )r?   arrayexpected_shapes      r   test_concatenatez$TestImageCollection.test_concatenate   sO    #//11d1224t{1~7KKU[.11111r   c                     t          j        t                    5  | j                                         d d d            d S # 1 swxY w Y   d S r:   )r   rM   
ValueErrorr2   r   r>   s    r   (test_concatenate_mismatched_image_shapesz<TestImageCollection.test_concatenate_mismatched_image_shapes   s    ^J'' 	& 	&K##%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   AAAc                     t          | j        d         | j        d                    t          | j        d         | j        d                    d S )Nr   rH   )r	   r<   r=   r>   s    r   test_multiimage_imagecollectionz3TestImageCollection.test_multiimage_imagecollection   sH    T(+T-@-CDDDT(+T-@-CDDDDDr   N)__name__
__module____qualname__r1   r;   r@   rC   rQ   rU   r^   pytestmarkskipif	has_poochrr   r}   r   r   r   r   r&   r   r   r5   r5   7   sF       6 646 6 6G= =";= = =O? ? ?% % %! ! !> > >" " " [I.LMM* * NM* [I.LMM  NM- - -2 2 2
& & &E E E E Er   r5   )r(   numpyrK   rc   skimager   skimage.io.collectionr   r   r   
skimage.ior   skimage._sharedr   skimage._shared.testingr	   r
   r   r   r   ModuleNotFoundErrorr   r#   r3   r5   r&   r   r   <module>r      sD   				            O O O O O O O O O O $ $ $ $ $ $ # # # # # # H H H H H H H H H H II   IIIA A A7 7 7  (cE cE cE cE cE cE cE cE cE cEs   ; AA