U
    ?h                     @   s   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 Z	dd Z
d	d
 Zejddd ddgdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) ZdS )*    N)testing)expected_warnings)random_shapesc                  C   s"   t ddd\} }| jdkstd S )N   r   
   )
max_shapes)r   r      r   shapeAssertionErrorimage_ r   W/var/www/html/venv/lib/python3.8/site-packages/skimage/draw/tests/test_random_shapes.py.test_generates_color_images_with_correct_shape	   s    r   c                  C   s&   t dddd d\} }| jdks"td S N)i  {   r	      )
min_shapesr   channel_axisr
   r   r   r   r   -test_generates_gray_images_with_correct_shape   s       
r   c                  C   s&   t dddd d\} }| jdks"td S r   r
   r   r   r   r   Etest_generates_gray_images_with_correct_shape_deprecated_multichannel   s       
r   r         c                 C   sP   d}d}t ||dd| d\}}| d kr,|}ntt|| |}|j|ksLtd S )Nr   @      r	   r   )num_channelsr   r   r   )r   tuplenpinsertr   r   )r   r   r   r   r   Zexpected_shaper   r   r   %test_generated_shape_for_channel_axis   s       
r#   c                  C   s   t ddddd\} }t|dks$t|d \}}|dks@t|| |d d |d d |d d |d d f }|dk r|dk  std| |d d |d d |d d |d d f< | dk std S )Nr   r   	rectangle*   r   r   rngr      r   lenr   allr   labelslabelbboxcropr   r   r   4test_generates_correct_bounding_boxes_for_rectangles+   s    
44r1   c                	   C   s*   t dg tddddd W 5 Q R X d S )Nz&`random_seed` is a deprecated argumentr   r   r$   r%   )r   r   random_seed)r   r   r   r   r   r   test_random_seed_deprecation@   s    r3   c                  C   s   t ddddd\} }t|dks$t|d \}}|dks@t|| |d d |d d |d d |d d f }|dk r|dk  std| |d d |d d |d d |d d f< | dk std S )Nr   r   triangler%   r&   r   r(   r   r*   r   anyr+   r,   r   r   r   3test_generates_correct_bounding_boxes_for_trianglesI   s    
44r7   c                  C   s   t ddddddd\} }t|dks(t|d \}}|dksDt|| |d d |d d |d d |d d f }|dk r|dk  std| |d d |d d |d d |d d f< | dk std S )	N+   ,   r   r   circler%   r   min_sizemax_sizer   r'   r   r(   r5   r,   r   r   r   1test_generates_correct_bounding_boxes_for_circles]   s    
44r?   c                  C   s   t ddddddd\} }t|dks(t|d \}}|dksDt|| |d d |d d |d d |d d f }|dk r|dk  std| |d d |d d |d d |d d f< | dk std S )	Nr8   r   r   ellipser%   r<   r   r(   r5   r,   r   r   r   2test_generates_correct_bounding_boxes_for_ellipsess   s    
44rA   c                	   C   s,   t t tdddddd W 5 Q R X d S )Nr   r   r   r;   r   r=   r>   r   r   Zraises
ValueErrorr   r   r   r   r   /test_generate_circle_throws_when_size_too_small   s        rF   c                	   C   s,   t t tdddddd W 5 Q R X d S )NrB   r   r@   rC   rD   r   r   r   r   0test_generate_ellipse_throws_when_size_too_small   s        rG   c                	   C   s,   t t tdddddd W 5 Q R X d S )Nr   r   r4   rC   rD   r   r   r   r   1test_generate_triangle_throws_when_size_too_small   s        rH   c                  C   s   t dddddd\} }t|dks&t|d \}}| |d d |d d |d d |d d f }t|dkrt|dkrt|dk std S )N)2   r   r   r$   rC   r   )r   r   r	   r(   )r   r*   r   r!   r   r6   )r   r-   r   r/   r0   r   r   r   &test_can_generate_one_by_one_rectangle   s    
4rJ   c                	   C   sN   t t tddd dd W 5 Q R X t t tdddd W 5 Q R X d S )N)i  i  r   )r      )r   r   intensity_range)r   r   ))r(   )r   rL   rD   r   r   r   r   -test_throws_when_intensity_range_out_of_range   s    rN   c               	   C   sN   t dg tddddd\} }W 5 Q R X t|dks:t| dk sJtd S )	NzCould not fit)'  rO   r   rO   r;   )r   r=   r   r   r(   )r   r   r*   r   r+   r   r-   r   r   r   ?test_returns_empty_labels_and_white_image_when_cannot_fit_shape   s       rQ   c                     sX   d} g  t dD ] }tdd| d\}} | qt fdd dd  D sTtd S )Nr%   r   r   )r   r'   c                 3   s   | ]}| d  kV  qdS )r   Nr   ).0otherr-   r   r   	<genexpr>   s     z?test_random_shapes_is_reproducible_with_seed.<locals>.<genexpr>r   )ranger   appendr+   r   )r2   r   r.   r   rT   r   ,test_random_shapes_is_reproducible_with_seed   s    rX   c                  C   s8   t ddddd\} }t|dks$t| dk s4td S )Nr   r	   ))r(   r(   r%   )r   rL   r'   r   r(   r)   rP   r   r   r   3test_generates_white_image_when_intensity_range_255   s     
rY   )numpyr!   ZpytestZskimage._sharedr   Zskimage._shared._warningsr   Zskimage.drawr   r   r   r   markZparametrizer#   r1   r3   r7   r?   rA   rF   rG   rH   rJ   rN   rQ   rX   rY   r   r   r   r   <module>   s,   
				