Ë
    âQ(hš  ã                   ó–   — 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)Úxp_assert_close)Úndimage)Ú_ctest)Ú_cytest)ÚLowLevelCallablec                 ó,   — t        j                  | «      S ©N)r   Úfilter1d©Úfilter_sizes    ú\/var/www/skyplay_api_hub/venv/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ÔK€ r   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   € ”F—O‘O GÓ,€ r   c                 ó0   — t        j                  | d¬«      S r   )r   r   r   s    r   r   r      s   € ”G×$Ñ$ W¸UÔC€ r   c                 óB   — t        t        j                  | d¬«      «      S r   )r   r   r   r   s    r   r   r      s   € Ô$¤W×%5Ñ%5°gÈdÔ%SÓT€ r   c                 ó^   — t        j                  t        dt        j                  | «      «      S )NÚ	_filter2d)r   r   r   Úfilter2d_capsuler   s    r   r   r      s&   € Ô$×0Ñ0´Ø1<Ü18×1IÑ1IÈ'Ó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Ñ#4°UÈ4Ô#PÓQ€ r   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³   ø€ Ü! !Ñ$ˆä�W‰W�XÓˆØˆˆ3ˆBˆ3ˆs�ˆsˆ7‰Ü—H‘Hšiª²IÐ>Ó?ˆ	Ü×)Ñ)¨)Ó4ˆÜ—'‘'˜.Ó)¨.Ñ8ˆä×$Ñ$ R©¨g«Ø/8ô:ˆä×$Ñ$ R¨¸YØ6=°ZôAˆä˜˜S¨A¨a¨S°¨.Ö9r   )Ú	enumerater:   )rF   r@   rA   r   s      @r   Útest_generic_filterrH   (   s/   ø€ ò2ô:ô Ô/Ó0ò ‰ˆˆ4Ùˆa�ñr   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@   s[   € Ü�{×'Ñ'Ó(ò 	2ˆAØˆK˜‰NÜ˜;Ó'ò 2�Ø˜A“ *¨Q¨q©S¡/Ñ1”ñ2ð	2ð 	�{Ñ"‰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Œ   ø€ Ü! !Ñ$ˆä�W‰W”R—Y‘Y¤§¡¨£¬b¯g©g°b«kÐ:Ó;¸WÓEˆØˆä×&Ñ& r©4°Ó+<Ø'2ó4ˆä×&Ñ& r¨8°[Ø8C°~ôGˆä˜˜S¨A¨a¨S°¨.Ö9r   )rG   rS   )rF   r@   rA   r
   s      @r   Útest_generic_filter1drX   ?   s/   ø€ ò#ô
:ô Ô/Ó0ò ‰ˆˆ4Ùˆa�ñr   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Ñ,Ð.@ÀÑ.CÀeÑ.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Ñ%ˆä�Y‰Y�r‹]×"Ñ" 1 aÓ(×/Ñ/´·
±
Ó;ˆØˆä×)Ñ)¨"©d°5«kÓ:ˆÜ×)Ñ)¨"¨iÈ%ÈÔRˆÜ˜˜S¨A¨a¨S°¨.Ö9r   )rG   r`   )rF   r@   rA   r$   s      @r   Útest_geometric_transformrf   W   s0   ø€ òLô:ô Ô0Ó1ò ‰ˆˆ4Ùˆa�ñr   )Únumpyr;   Úscipy._lib._array_apir   Úscipyr   Úscipy.ndimager   r   Úscipy._lib._ccallbackr   rS   r:   r`   rH   rX   rf   r[   r   r   ú<module>rl      sr   ðÛ Ý 1å Ý  Ý !Ý 2ñ 5ÙKññð
Ð ñ -ÙCÙTñUð	Ð ñ *Ù@ÙQñRð	Ð òò.ó0r   