§
    fŠtj8	  ã                   ó  — d Z ddlZddlZddlmZmZ ddlmZ d„ Z	dd„Z
 eej        ¦  «        ej                             dg d	¢¦  «        ej                             d
g d¢¦  «        d„ ¦   «         ¦   «         ¦   «         ZdS )zTests for spline filtering.é    N)Úassert_almost_equalÚmake_xp_test_case)Úndimagec                 ó8   — dgdgddgddgg d¢g d¢dœ}||          S )z0Knot values to the right of a B-spline's center.é   é   é   )éæ   éL   r   )éB   é   r   ©r   r   é   é   r	   é   © )ÚorderÚknot_valuess     ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/ndimage/tests/test_splines.pyÚget_spline_knot_valuesr   
   sA   € à�cØ�cØ˜!�fØ˜!�fØ"�l�lØ!�k�kð#ð #€Kð �uÔÐó    Úmirrorc                 óº  — t          |¦  «        }t          j        ||f¦  «        }t          |¦  «        D ]<\  }}t          j        ||¦  «        }|dk    r||||f<   Œ(|||||z
  f<   ||||z
  |f<   Œ=|d         dt          |dd…         ¦  «        z  z   }	|dk    rd\  }
}n*|dk    rd\  }
}n|d	k    rd
\  }
}nt          d|› �¦  «        ‚t          t          |¦  «        dz
  ¦  «        D ]Z}t          ||dz   d…         ¦  «        D ]=\  }}|||
||z  z   fxx         |z  cc<   || dz
  |
 dz
  ||z  z
  fxx         |z  cc<   Œ>Œ[|  	                    ||	z  ¦  «        S )z1Matrix to invert to find the spline coefficients.r   r   r   Nr   )r   r   Úreflect)r   r   ú	grid-wrap)éÿÿÿÿr   zunsupported mode )
r   ÚnpÚzerosÚ	enumerateÚarangeÚsumÚ
ValueErrorÚrangeÚlenÚasarray)ÚxpÚnr   Úmoder   ÚmatrixÚdiagÚ
knot_valueÚindicesÚknot_values_sumÚstartÚstepÚrowÚidxs                 r   Úmake_spline_knot_matrixr2      sã  € å(¨Ñ/Ô/€Kõ ŒX�q˜!�fÑÔ€FÝ% kÑ2Ô2ð 9ð 9ÑˆˆjÝ”)˜D !Ñ$Ô$ˆØ�1Š9ˆ9Ø'1ˆF�7˜GÐ#Ñ$Ð$à.8ˆF�7˜G d™NÐ*Ñ+Ø.8ˆF�7˜T‘> 7Ð*Ñ+Ð+à! !”n q­3¨{¸1¸2¸2¬Ñ+?Ô+?Ñ'?Ñ?€OàˆxÒÐØ‰ˆˆtˆtØ	�Ò	Ð	Ø‰ˆˆtˆtØ	�Ò	Ð	Ø‰ˆˆtˆtåÐ3¨TÐ3Ð3Ñ4Ô4Ð4å•S˜Ñ%Ô%¨Ñ)Ñ*Ô*ð Bð BˆÝ(¨°S¸1±W°X°XÔ)>Ñ?Ô?ð 	Bð 	B‰OˆC�Ø�3˜  S¡Ñ(Ð(Ð)Ð)Ô)¨ZÑ7Ð)Ð)Ñ)Ø�C�4˜!‘8˜e˜V a™Z¨$¨s©(Ñ2Ð2Ð3Ð3Ô3°zÑAÐ3Ð3Ñ3Ð3ð	Bð �:Š:�f˜Ñ.Ñ/Ô/Ð/r   r   r   r(   )r   r   r   c                 ó  — d}|                      ||j        ¬¦  «        }t          j        |d| |¬¦  «        }t          j        |d| |¬¦  «        }t	          ||| |¬¦  «        }t          |||z  ¦  «         t          |||j        z  ¦  «         d S )Néd   )Údtyper   )Úaxisr   r(   r   )r(   )ÚeyeÚfloat64r   Úspline_filter1dr2   r   ÚT)r   r(   r&   r'   r7   Úspline_filter_axis_0Úspline_filter_axis_1r)   s           r   Ú%test_spline_filter_vs_matrix_solutionr=   8   s¬   € ð 	€AØ
�&Š&�˜"œ*ˆ&Ñ
%Ô
%€CÝ"Ô2°3¸QÀeØ8<ð>ñ >ô >Ðå"Ô2°3¸QÀeØ8<ð>ñ >ô >Ðå$ R¨¨E¸Ð=Ñ=Ô=€FÝ˜Ð1°FÑ:Ñ;Ô;Ð;Ý˜Ð1°F´HÑ<Ñ=Ô=Ð=Ð=Ð=r   )r   )Ú__doc__ÚpytestÚnumpyr   Úscipy._lib._array_apir   r   Úscipyr   r   r2   r9   ÚmarkÚparametrizer=   r   r   r   ú<module>rE      së   ðØ !Ð !Ø €€€à Ð Ð Ð Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ Hà Ð Ð Ð Ð Ð ð	ð 	ð 	ð0ð 0ð 0ð 0ðD Ð�7Ô*Ñ+Ô+Ø„×Ò˜Ð"4Ð"4Ð"4Ñ5Ô5Ø„×Ò˜Ð!CÐ!CÐ!CÑDÔDð	>ð 	>ñ EÔDñ 6Ô5ñ ,Ô+ð	>ð 	>ð 	>r   