§
    ¢éUg—  ã                   óÒ   — d Z ddlZddlZddlmZ ddlmZ d„ Zdd„Z	ej
                             dg d	¢¦  «        ej
                             d
g d¢¦  «        d„ ¦   «         ¦   «         ZdS )zTests for spline filtering.é    N)Úassert_almost_equal)Ú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/surfInsights/venv3-11/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)Únr   Úmoder   ÚmatrixÚdiagÚ
knot_valueÚindicesÚknot_values_sumÚstartÚstepÚrowÚidxs                r   Úmake_spline_knot_matrixr/      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ð �OÑ#Ð#r   r   r   r%   )r   r   r   c                 óZ  — d}t          j        |t          ¬¦  «        }t          j        |d| |¬¦  «        }t          j        |d| |¬¦  «        }t          || |¬¦  «        }t          |t          j        ||¦  «        ¦  «         t          |t          j        ||j        ¦  «        ¦  «         d S )Néd   )Údtyper   )Úaxisr   r%   r   )r%   )	r   ÚeyeÚfloatr   Úspline_filter1dr/   r   ÚdotÚT)r   r%   r$   r4   Úspline_filter_axis_0Úspline_filter_axis_1r&   s          r   Ú%test_spline_filter_vs_matrix_solutionr;   6   sµ   € ð 	€AÝ
Œ&��%Ð
 Ñ
 Ô
 €CÝ"Ô2°3¸QÀeØ8<ð>ñ >ô >Ðå"Ô2°3¸QÀeØ8<ð>ñ >ô >Ðå$ Q¨°DÐ9Ñ9Ô9€FÝ˜�RœVÐ$8¸&ÑAÔAÑBÔBÐBÝ˜�RœVÐ$8¸&¼(ÑCÔCÑDÔDÐDÐDÐDr   )r   )Ú__doc__Únumpyr   ÚpytestÚnumpy.testingr   Úscipyr   r   r/   ÚmarkÚparametrizer;   r   r   r   ú<module>rC      sÑ   ðØ !Ð !Ø Ð Ð Ð Ø €€€à -Ð -Ð -Ð -Ð -Ð -à Ð Ð Ð Ð Ð ð	ð 	ð 	ð$ð $ð $ð $ð@ „×Ò˜Ð"4Ð"4Ð"4Ñ5Ô5Ø„×Ò˜Ð!CÐ!CÐ!CÑDÔDð	Eð 	Eñ EÔDñ 6Ô5ð	Eð 	Eð 	Er   