o
    j                     @   s   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
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zdZW n eyK   dZY nw d	d
 Zdd Zdd ZG dd dZdS )    N)data_dir)ImageCollection
MultiImagealphanumeric_key)reset_plugins)testing)assert_equalassert_allclosefetchTFc                  C   s   d} g d}t t| | d S )NZz23a)z   a)r   r   )Ztest_stringZtest_str_result r   a/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/skimage/io/tests/test_collection.pytest_string_split   s   r   c                  C   s*   g d} g d}t | td}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   )	filenamesZexpected_filenamesZsorted_filenamesr   r   r   test_string_sort   s   		r   c                  C   s@   t dt dt dg} 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.
    zdata/coffee.pngzdata/chessboard_GRAY.pngzdata/rocket.jpgc                 S   s   g | ]	}t jt|qS r   )ospathjoinr   ).0Zpicr   r   r   
<listcomp>D   s    z.test_imagecollection_input.<locals>.<listcomp>   Nr
   r   len)picspatternimagesr   r   r   test_imagecollection_input3   s   r'   c                   @   s   e Zd ZedededgZedd Zeddd Zdd Zdd	 Zd
d Z	dd Z
dd Zejje dddd Zejje dddd Zdd Zdd Zdd Zdd ZdS )TestImageCollectionzdata/brick.pngzdata/color.pngzdata/moon.pngN   c                 C   s.   t   t| j| _t| j| _t| j| _d S N)r   r   r%   r&   pattern_same_shapeimages_matchedr   frames_matchedselfr   r   r   setup_methodN   s   z TestImageCollection.setup_methodc                 C   s   t | jdks	J d S )Nr)   )r#   r&   r.   r   r   r   test_lenW   s   zTestImageCollection.test_lenc                    s   t  j}t| |D ]}t j| tjsJ qt jd  j|    fdd}tt	 || W d    n1 s?w   Y  tt	 || d  W d    d S 1 s\w   Y  d S )Nr   c                    s
    j |  S r*   )r&   )nr.   r   r   
return_img`   s   
z4TestImageCollection.test_getitem.<locals>.return_img   )
r#   r&   range
isinstancenpZndarrayr	   r   raises
IndexError)r/   numir3   r   r.   r   test_getitemZ   s   

"z TestImageCollection.test_getitemc                 C   s   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s4J 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 )Nr)   r4   r   )typer&   r   r#   r	   r.   r   r   r   test_slicingh   s    $z TestImageCollection.test_slicingc                    sV   t  jjts	J  fdd}tt |d W d    d S 1 s$w   Y  d S )Nc                    s   |  j _d S r*   )r&   files)fr.   r   r   	set_filesu   s   z:TestImageCollection.test_files_property.<locals>.set_filesZnewfiles)r6   r&   r@   listr   r8   AttributeError)r/   rB   r   r.   r   test_files_propertyr   s
   
"z'TestImageCollection.test_files_propertyzneeds pooch to download data)reasonc                    sJ   t d  fdd}ttd|d}t|dksJ |d jdks#J d S )Ndata/no_time_for_that_tiny.gifc                    s   t j | dS )Nindex)iio3ZimreadrH   filenamer   r   reader   s   zBTestImageCollection.test_custom_load_func_sequence.<locals>.reader   	load_funcr   )      r!   )r
   r   r5   r#   shape)r/   rM   icr   rK   r   test_custom_load_func_sequence{   s
   z2TestImageCollection.test_custom_load_func_sequencec                 C   sF   t d}dd }t||dd}t|dksJ t|d dks!J d S )	NrG   c                 S   s   t | }tt|d d |S r*   )rJ   ZimiterrC   	itertoolsislice)rA   stepZvidr   r   r   load_fn   s   
zBTestImageCollection.test_custom_load_func_w_kwarg.<locals>.load_fnr!   )rP   rX   r4   r      r"   )r/   Zload_patternrY   rT   r   r   r   test_custom_load_func_w_kwarg   s
   z1TestImageCollection.test_custom_load_func_w_kwargc                 C   s6   dd }t tj| j|d}t|d | jd  d S )Nc                 S   s   | S r*   r   )xr   r   r   rY      s   z:TestImageCollection.test_custom_load_func.<locals>.load_fnrO   r   )r   r   pathsepr   r%   r   )r/   rY   rT   r   r   r   test_custom_load_func   s   z)TestImageCollection.test_custom_load_funcc                 C   s2   | j  }t| j f| jd j }t|j| d S )Nr   )r,   concatenater#   r&   rS   r   )r/   arrayZexpected_shaper   r   r   test_concatenate   s   
z$TestImageCollection.test_concatenatec                 C   s:   t t | j  W d    d S 1 sw   Y  d S r*   )r   r8   
ValueErrorr&   r_   r.   r   r   r   (test_concatenate_mismatched_image_shapes   s   "z<TestImageCollection.test_concatenate_mismatched_image_shapesc                 C   s0   t | jd | jd  t | jd | jd  d S )Nr   r4   )r   r,   r-   r.   r   r   r   test_multiimage_imagecollection   s   z3TestImageCollection.test_multiimage_imagecollection)__name__
__module____qualname__r
   r$   r%   r+   r0   r1   r<   r?   rE   pytestmarkZskipif	has_poochrU   r[   r^   ra   rc   rd   r   r   r   r   r(   I   s"    	
	

r(   )r   rV   numpyr7   Z
imageio.v3Zv3rJ   Zskimager   Zskimage.io.collectionr   r   r   Z
skimage.ior   Zskimage._sharedr   Zskimage._shared.testingr   r	   r
   rh   rj   ModuleNotFoundErrorr   r   r'   r(   r   r   r   r   <module>   s&    