U
    ?h3                     @   s   d dl Zd dlZd dlmZ d dlmZ ddlmZ ej	
dejejejgej	
ddd	gej	
d
dd	gdd Zej	
ddd	gej	
d
dd	gdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)_supported_float_type)optical_flow_ilk   )_sin_flow_gendtypegaussianTF	prefilterc           	   	   C   s   t jd}|jdd}t|\}}|j| dd}t| }t|||||d}|jt| ks^t	t
||  dk svt	| |krtt t||||| d W 5 Q R X d S )Nr      r
   sizeF)copy)r   r   r         ?)nprandomdefault_rngnormalr   Zastyper   r   r   AssertionErrorabsmeanpytestraises
ValueError)	r   r   r   rngimage0gt_flowimage1Zfloat_dtypeflow r   U/var/www/html/venv/lib/python3.8/site-packages/skimage/registration/tests/test_ilk.pytest_2d_motion	   s"      r    c                 C   sV   t jd}|jdd}t|dd\}}t||d| |d}t||  dk sRtd S )	N{   )2   7   <   r      )Znpics   )Zradiusr   r   r   )	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   test_3d_motion    s     r'   c                  C   s8   t jd} | jdd}t||}t |dks4td S )Nr   r	   r   r   r   r   r   r   allr   r   imgr   r   r   r   test_no_motion_2d/   s    
r,   c                  C   s8   t jd} | jdd}t||}t |dks4td S )Nr   )@   r-   r-   r   r(   r*   r   r   r   test_no_motion_3d8   s    
r.   c                  C   sx   t jd} | jdd}t|\}}t||dd}|jdks@tt||dd}|jdks\tt|| 	 dk sttd S )Nr   r	   r   float64r   float32gMbP?)
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   Zflow_f64Zflow_f32r   r   r   test_optical_flow_dtypeA   s    r2   c               	   C   sL   t jd} | jdd}| jdd}tt t||\}}W 5 Q R X d S )Nr   r	   r   )   r
   r   r   r   r   r   r   r   r   )r   ZI0ZI1uvr   r   r   test_incompatible_shapesV   s
    r7   c               	   C   sD   t jd} | jdd}tt t||dd\}}W 5 Q R X d S )Nr   r	   r   intr0   r4   )r   r+   r5   r6   r   r   r   test_wrong_dtype^   s    r9   )numpyr   r   Zskimage._shared.utilsr   Zskimage.registrationr   Z	test_tvl1r   markZparametrizeZfloat16r1   r/   r    r'   r,   r.   r2   r7   r9   r   r   r   r   <module>   s    		