
    tKg                         d dl Zd dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d d d	 d
 gZd d d d gZd d d d gZd Zd Zd Zy)    N)assert_allclose)ndimage)_ctest)_cytest)LowLevelCallablec                 ,    t        j                  |       S N)r   filter1dfilter_sizes    b/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/ndimage/tests/test_c_api.py<lambda>r   
   s    4    c                 0    t        j                  | d      S NFwith_signature)r   r
   r   s    r   r   r      s    ((UKr   c                 B    t        t        j                  | d            S NTr   )r   r   r
   r   s    r   r   r      s    (#,,[Nr   c                 ^    t        j                  t        dt        j                  |             S )N	_filter1d)r   from_cythonr   filter1d_capsuler   s    r   r   r      s#    (44#[#44[Ar   c                 ,    t        j                  |       S r	   )r   filter2dweightss    r   r   r      s    FOOG,r   c                 0    t        j                  | d      S r   )r   r   r   s    r   r   r      s    G$$WUCr   c                 B    t        t        j                  | d            S r   )r   r   r   r   s    r   r   r      s    $W%5%5gd%STr   c                 ^    t        j                  t        dt        j                  |             S )N	_filter2d)r   r   r   filter2d_capsuler   s    r   r   r      s$    $001<181I1I'1RUr   c                 ,    t        j                  |       S r	   )r   	transformshifts    r   r   r      s    &""5)r   c                 0    t        j                  | d      S r   )r   r$   r%   s    r   r   r       s    '##E%@r   c                 B    t        t        j                  | d            S r   )r   r   r$   r%   s    r   r   r   !   s    "7#4#4U4#PQr   c                 ^    t        j                  t        dt        j                  |             S )N
_transform)r   r   r   transform_capsuler%   s    r   r   r   "   s$    "..w/;/6/H/H/ORr   c                  T    d fd} t        t              D ]  \  }} | |        y )Nc                 (    || z  j                         S r	   )sum)footprint_elementsr   s     r   r   z%test_generic_filter.<locals>.filter2d)   s    **//11r   c                    t         |    }t        j                  d      }d|d dd df<   t        j                  g dg dg dg      }t        j                  |      }t        j                  |      |z  }t        j                  | ||      |      }t        j                  |||f      }t        ||d|  d	
       y )N)   r1   r   
   )r      r   )r3   r3   r3   )	footprint)r4   extra_arguments# failederr_msg)FILTER2D_FUNCTIONSnponesarraycount_nonzeror   generic_filterr   )	jfuncimr4   footprint_sizer   resstdr   s	           r   checkz"test_generic_filter.<locals>.check,   s    !!$WWX3B3ss7HHiI>?	)))4''.).8$$Rg/8:$$RY6=ZASAaS.9r   )	enumerater:   )rF   r@   rA   r   s      @r   test_generic_filterrH   (   s*    2: /04a 1r   c                  T    d fd} t        t              D ]  \  }} | |        y )Nc                     t        |j                        D ]*  }d||<   t        |      D ]  }||xx   | ||z      z  cc<    , ||z  }y )Nr   )rangesize)
input_lineoutput_liner   ir@   s        r   r
   z'test_generic_filter1d.<locals>.filter1d@   sQ    {''(AKN;'A*QqS/1 ( ) 	{"r   c                 P   t         |    }t        j                  t        j                  t        j                  d      t        j
                  d      f      d      }d}t        j                  | ||      |      }t        j                  |||f      }t        ||d|  d       y )Nr2   )r2   r3      r5   r6   r7   r8   )	FILTER1D_FUNCTIONSr;   tilehstackzerosr<   r   generic_filter1dr   )r@   rA   rB   r   rD   rE   r
   s         r   rF   z$test_generic_filter1d.<locals>.checkG   s    !!$WWRYYbggbk:;WE&&r4+<'24&&r8[8C~GSAaS.9r   )rG   rS   )rF   r@   rA   r
   s      @r   test_generic_filter1drX   ?   s*    #
: /04a 1r   c                  T    d fd} t        t              D ]  \  }} | |        y )Nc                 "    | d   |z
  | d   |z
  fS )Nr   r3    )output_coordinatesr&   s     r   r$   z+test_geometric_transform.<locals>.transformX   s"    !!$u,.@.Ce.KKKr   c                 .   t         |    }t        j                  d      j                  dd      j	                  t        j
                        }d}t        j                  | ||            }t        j                  ||f      }t        ||d|  d       y )	N      rQ   g      ?rR   r6   r7   r8   )	TRANSFORM_FUNCTIONSr;   arangereshapeastypefloat64r   geometric_transformr   )r@   rA   rB   r&   rD   rE   r$   s         r   rF   z'test_geometric_transform.<locals>.check[   s{    "1%YYr]""1a(//

;))"d5k:))"i%RSAaS.9r   )rG   r`   )rF   r@   rA   r$   s      @r   test_geometric_transformrf   W   s+    L: 014a 2r   )numpyr;   numpy.testingr   scipyr   scipy.ndimager   r   scipy._lib._ccallbackr   rS   r:   r`   rH   rX   rf   r[   r   r   <module>rl      sr     )    ! 2 5K
  -CTU	  *@QR	 .0r   