§
    µ³ÙgÍ@  ã                   ó¨  — d dl Z d dlZd dlZd dlmZmZmZmZ d dl	m
Z d dl	Z	d dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d d	l m!Z! d
„ Z"d„ Z#dd„Z$d„ Z% G d„ d¦  «        Z& G d„ d¦  «        Z' G d„ d¦  «        Z( G d„ d¦  «        Z) G d„ d¦  «        Z*d„ Z+d„ Z,d„ Z-d„ Z.e	j/        j0        d„ ¦   «         Z1d„ Z2d„ Z3dS ) é    N)Úxp_assert_equalÚxp_assert_closeÚassert_almost_equalÚassert_array_almost_equal)Úraises)Úcheck_free_memory)ÚRectBivariateSpline)Úmake_splrep)ÚsplrepÚsplevÚbisplrepÚbisplevÚsprootÚsplprepÚsplintÚspaldeÚsplderÚ
splantiderÚinsertÚdblint)Úregrid_smth)Údfitpack_intc                 óÂ   — t           j                             t           j                             t           j                             t
          ¦  «        ¦  «        d| ¦  «        S )NÚdata)ÚosÚpathÚjoinÚabspathÚdirnameÚ__file__)Úbasenames    úZ/granary/edev/quantum/lib/python3.11/site-packages/scipy/interpolate/tests/test_fitpack.pyÚ	data_filer#      s=   € ÝŒ7�<Š<�œŸš­¬¯ª½Ñ(AÔ(AÑBÔBØ ñ*ô *ð *ó    c                 óZ   — t          j        t          j        | j        | ¦  «        ¦  «        S ©N)ÚnpÚsqrtÚdotÚT)Úxs    r"   Únorm2r,      s   € ÝŒ7•2”6˜!œ#˜q‘>”>Ñ"Ô"Ð"r$   c                 óò   — |dz  dk    rt          j        | ¦  «        S |dz  dk    rt          j        | ¦  «        S |dz  dk    rt          j        | ¦  «         S |dz  dk    rt          j        | ¦  «         S dS )z$Derivatives of sin->cos->-sin->-cos.é   r   é   é   é   N)r'   ÚsinÚcos)r+   Úds     r"   Úf1r5      sy   € àˆ1�u�‚z€zÝŒv�a‰yŒyÐØˆ1�u�‚z€zÝŒv�a‰yŒyÐØˆ1�u�‚z€zÝ”�q‘	”	ˆzÐØˆ1�u�‚z€zÝ”�q‘	”	ˆzÐð €zr$   c           
      óÀ   — t          j        t          t          j        t          j        | ¦  «        t          j        |¦  «        ¦  «        ¦  «        ¦  «        }|j        S )z7Helper function to create an array of pairs of x and y.)r'   ÚarrayÚlistÚ	itertoolsÚproductÚasarrayr*   )r+   ÚyÚxys      r"   Ú	makepairsr>   *   s=   € å	Œ•$•yÔ(­¬°A©¬½¼
À1¹¼ÑFÔFÑGÔGÑ	HÔ	H€BØŒ4€Kr$   c                   ó²  — e Zd ZdZddddej        z  dddfd„Zddddej        z  fd„Zd	„ Ze	j
                             d
ddg¦  «        e	j
                             dddg¦  «        d„ ¦   «         ¦   «         Ze	j
                             dddg¦  «        e	j
                             d
ddg¦  «        d„ ¦   «         ¦   «         Ze	j
                             dddg¦  «        e	j
                             d
ddg¦  «        d„ ¦   «         ¦   «         Zd„ Ze	j
                             dddg¦  «        e	j
                             dg d¢¦  «        d„ ¦   «         ¦   «         Zd„ ZdS )ÚTestSmokeTestszj
    Smoke tests (with a few asserts) for fitpack routines -- mostly
    check that they are runnable
    r   r0   FNc           
      ó„  ‡‡— |€|}|€|}dŠt          j        ||‰dz   ¦  «        }|||z
  t          j        d‰t          ¬¦  «        z  t          ‰dz
  ¦  «        z  z   }	t	          |¦  «        }
ˆˆfd„}t          dd¦  «        D �];}t          ||
‰|||¬¦  «        }|r|d         || …         n|	}t          |dz   ¦  «        D ]c} |||¦  «        }t          t	          ||¦  «        t          |||¦  «        z
  ¦  «        t          t	          ||¦  «        ¦  «        z  }||k     sJ ‚Œd|s–t          ||
|‰||¬¦  «        }t          |j        ¦  «        t          |d         ¦  «        k    rNt          |j        |d         d	¬
¦  «         t          |j        |d         d |j        j        …         d¬
¦  «         �Œ3|dk    sJ ‚�Œ=d S )Né   r/   ©Údtypec                 óJ   •— d‰z  }d|d| |z
  z  z  z  }‰dk    r|d‰z  z  }|S )Nç      ð?é   ç      è?r   g     jø@© )Úkr4   ÚhÚtolÚNÚss       €€r"   Úerr_estz'TestSmokeTests.check_1.<locals>.err_estB   s=   ø€ à�a‘ˆAØ�a˜#˜q ™s™)‘nÑ$ˆCØ�1ŠuˆuØ�s˜1‘u‘�ØˆJr$   é   ©rN   ÚperrJ   Úxer   )rJ   rN   ÚxbrS   çVçž¯Ò<©Úatolç‚vIhÂ%<=rG   )r'   ÚlinspaceÚarangeÚfloatr5   Úranger   r,   r   r
   ÚlenÚtr   ÚcÚsize)ÚselfrR   rN   ÚaÚbÚat_nodesrT   rS   r+   Úx1ÚvrO   rJ   ÚtckÚttr4   rL   ÚerrÚsplrM   s     `                @r"   Úcheck_1zTestSmokeTests.check_15   sð  øø€ àˆ:ØˆBØˆ:ØˆBàˆåŒK˜˜1˜a !™eÑ$Ô$ˆØ�!�a‘%�2œ9 Q¨µÐ7Ñ7Ô7Ñ7½%ÀÀAÁ¹,¼,ÑFÑFˆÝˆq‰EŒEˆð	ð 	ð 	ð 	ð 	ð 	õ �q˜!‘”ð 	"ñ 	"ˆAÝ˜˜A ¨¨q°RÐ8Ñ8Ô8ˆCØ!)Ð1��Q”˜˜1˜"˜”�¨rˆBå˜1˜Q™3‘Z”Zð !ð !�Ø�g˜a ‘m”m�Ý�B˜r 1™IœI­¨b°#°qÑ(9Ô(9Ñ9Ñ:Ô:½UÅ2ÀbÈ!Á9Ä9Ñ=MÔ=MÑM�Ø˜S’y�y�y�y�yð ð "Ý! ! Q¨!¨q°R¸BÐ?Ñ?Ô?�Ý�s”u‘:”:¥ S¨¤V¡¤Ò,Ð,Ý# C¤E¨3¨q¬6¸Ð>Ñ>Ô>Ð>Ý# C¤E¨3¨q¬6°+°3´5´:°+Ô+>ÀUÐKÑKÔKÐKÑKà š6˜6˜6˜6ùð!	"ð 	"r$   rB   c           	      óþ  ‡— ddt           j        z  dt           j        z  }}}t          j        ||‰dz   ¦  «        }t          j        |¦  «        }	ˆfd„}
g }t	          dd¦  «        D ]K}t          ||	d|||¬¦  «        }|                     t          |||¦  «        t          ||¦  «        g¦  «         ŒLd}|D ]F}d}|d         D ]4} |
||¦  «        }t          |t          ||¦  «        d|¬¦  «         |dz   }Œ5|dz   }ŒGd S )	Nr   r0   çš™™™™™É?r/   c                 ó.   •— d‰z  }d|d| |z
  z  z  z  }|S )NrF   rG   rH   rI   )rJ   r4   rK   rL   rM   s       €r"   rO   z'TestSmokeTests.check_2.<locals>.err_esta   s'   ø€ à�a‘ˆAØ�a˜#˜q ™s™)‘nÑ$ˆCØˆJr$   rP   rQ   ©rW   Úrtol)r'   ÚpirY   r2   r\   r   Úappendr   r   r   r5   )ra   rR   rM   ÚiaÚibrb   rc   Údxr+   rf   rO   ÚnkrJ   rg   Úrr4   ÚdrrL   s     `               r"   Úcheck_2zTestSmokeTests.check_2\   s9  ø€ Ø�a�œ‘g˜s¥2¤5™yˆbˆ1ˆÝŒK˜˜1˜a ™cÑ"Ô"ˆÝŒF�1‰IŒIˆð	ð 	ð 	ð 	ð 	ð ˆÝ�q˜!‘”ð 	>ð 	>ˆAÝ˜˜A ¨¨q°QÐ7Ñ7Ô7ˆCØ�IŠI•v˜b " cÑ*Ô*­F°2°s©O¬OÐ<Ñ=Ô=Ð=Ð=àˆØð 	ð 	ˆAØˆAØ˜”dð ð �Ø�g˜a ‘m”m�Ý ¥B r¨1¡I¤I°A¸CÐ@Ñ@Ô@Ð@Ø�a‘C��Ø�!‘ˆAˆAð	ð 	r$   c                 óÞ   — |                       d¬¦  «         |                       dt          j        z  ¬¦  «         |                       dt          j        z  dt          j        z  dd¬¦  «         d S )	Ng�íµ ÷Æ°>©rN   ç      ø?)rc   r0   r/   çš™™™™™¹?)rc   rS   rR   rN   )rk   r'   rq   ©ra   s    r"   Útest_smoke_splrep_splevz&TestSmokeTests.test_smoke_splrep_splevu   s\   € Ø�Š�tˆÑÔÐØ�Š�s�2œ5‘yˆÑ!Ô!Ð!Ø�Š�s�2œ5‘y Q¥r¤u¡W°!°tˆÑ<Ô<Ð<Ð<Ð<r$   rR   r/   rd   Tc                 ó4   — |                       ||¬¦  «         d S )N)rR   rd   )rk   )ra   rR   rd   s      r"   Útest_smoke_splrep_splev_2z(TestSmokeTests.test_smoke_splrep_splev_2z   s    € ð 	�Š˜ xˆÑ0Ô0Ð0Ð0Ð0r$   rM   é2   c                 ó4   — |                       ||¬¦  «         d S )N)rR   rM   )ry   ©ra   rM   rR   s      r"   Útest_smoke_splint_spaldez'TestSmokeTests.test_smoke_splint_spalde   s    € ð 	�Š˜ ˆÑ"Ô"Ð"Ð"Ð"r$   c                 óf   — |                       dt          j        z  t          j        ||¬¦  «         d S )Nrm   )rs   rt   rM   rR   )ry   r'   rq   r„   s      r"   Útest_smoke_splint_spalde_iaibz,TestSmokeTests.test_smoke_splint_spalde_iaib„   s,   € ð 	�Š˜�BœE™	¥b¤e¨q°cˆÑ:Ô:Ð:Ð:Ð:r$   c           	      ó<  — d\  }}t          j        ||d¦  «        }t          j        |¦  «        }dD ]R}t          ||dd||¬¦  «        }t	          t
          ¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒSd}t          ||dd¬¦  «        }t          |¦  «        }t          t          ||¦  «        t          j	        t          |¦  «        ¦  «        dd¬	¦  «         t          |t           j        t          j        g d
¢¦  «        z  d¬¦  «         d S )N)r}   é   rB   )r/   r0   r.   rG   r   rQ   r1   )rN   rJ   ç»½×Ùß|Û=ro   )r/   r0   r1   r.   gü©ñÒMbP?©rp   )r'   rY   r2   r   Úassert_raisesÚ
ValueErrorr   r   r   Úzerosr]   rq   r7   )ra   rb   rc   r+   rf   rJ   rg   Úrootss           r"   Útest_smoke_sprootz TestSmokeTests.test_smoke_sproot‰   sM  € à‰ˆˆ1ÝŒK˜˜1˜bÑ!Ô!ˆÝŒF�1‰IŒIˆàð 	ð 	ˆAÝ˜˜A ¨¨Q°1Ð5Ñ5Ô5ˆCÝ�zÑ*Ô*ð ð Ý�s‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øð ˆÝ�Q˜˜Q !Ð$Ñ$Ô$ˆÝ�s‘”ˆÝ�˜e SÑ)Ô)­2¬8µC¸±J´JÑ+?Ô+?ÀeÐRWÐXÑXÔXÐXÝ˜�rœu¥r¤x°°°Ñ'=Ô'=Ñ=ÀDÐIÑIÔIÐIÐIÐIs   ÁA9Á9A=	Â A=	rJ   ©r/   r0   r1   r.   rG   c                 ó¦  — ddt           j        z  dt           j        z  }}}t          j        |||dz   ¦  «        }t          j        |¦  «        }t	          ||gdd|d¬¦  «        \  }}	t          ||¦  «        }
t          |
d         t          j        |
d         ¦  «        z
  ¦  «        }|dk     sJ ‚t          ||dd|¬¦  «        }t          t          |
d         |¦  «        t          j        |
d         ¦  «        z
  ¦  «        }|dk     sJ ‚|d	k    r@t	          ||gdd|d¬¦  «        \  }}	t          d|dz   ¦  «        D ]}t          |||¦  «        }
Œd S d S )
Nr   ç       @rm   r/   éÿÿÿÿ)rN   rR   rJ   Únestç{®Gáz„?)rN   rR   rJ   r1   )	r'   rq   rY   r2   r   r   Úabsr   r\   )ra   rM   rJ   rb   rc   ru   r+   rf   ÚtckpÚuÚuvÚerr1rg   Úerr2r4   s                  r"   Útest_smoke_splprep_splrep_splevz.TestSmokeTests.test_smoke_splprep_splrep_splevš   sX  € ð �b�œ‘h ¥B¤E¡	ˆbˆ1ˆÝŒK˜˜1˜a ™cÑ"Ô"ˆÝŒF�1‰IŒIˆå˜1˜a˜& A¨1°¸Ð;Ñ;Ô;‰ˆˆaÝ�2�t‰_Œ_ˆÝ�2�a”5�2œ6 " Q¤%™=œ=Ñ(Ñ)Ô)ˆØ�dŠ{ˆ{ˆ{ˆ{å�Q˜˜Q A¨Ð+Ñ+Ô+ˆÝ•5˜˜Aœ Ñ$Ô$¥r¤v¨b°¬e¡}¤}Ñ4Ñ5Ô5ˆØ�dŠ{ˆ{ˆ{ˆ{ð �Š6ˆ6Ý˜q !˜f¨¨q°A¸BÐ?Ñ?Ô?‰GˆD�!Ý˜1˜a ™c‘]”]ð (ð (�Ý˜2˜t QÑ'Ô'��ð ˆ6ð(ð (r$   c           	      óî  — ddt           j        z  }}ddt           j        z  }}d\  }}d\  }}d„ }	t          j        |||dz   ¦  «        }
t          j        |||dz   ¦  «        }t          |
|¦  «        }t	          |d         |d          |	|d         |d         ¦  «        d||¬¦  «        }|d         || …         |d         || …         g}t          |d         |d         ¦  «        }t          |d         |d         |¦  «        } |	|d         |d         ¦  «        }t          |d         ¦  «        t          |d         ¦  «        f|_        t          t          j	        ||z
  ¦  «        ¦  «        dk     sJ ‚d S )	Nr   r“   ©r1   r1   )rB   rB   c                 ó0   — t          j        | |z   ¦  «        S r&   ©r'   r2   ©r+   r<   s     r"   Úf2z6TestSmokeTests.test_smoke_bisplrep_bisplev.<locals>.f2¶   s   € Ý”6˜!˜A™#‘;”;Ðr$   r/   ©rN   ÚkxÚkyr–   )
r'   rq   rY   r>   r   r   r]   Úshaper,   Úravel)ra   rT   rS   ÚybÚyer¥   r¦   ÚNxÚNyr£   r+   r<   r=   rg   rh   Út2Úv1Úv2s                     r"   Útest_smoke_bisplrep_bisplevz*TestSmokeTests.test_smoke_bisplrep_bisplev°   sp  € Ø�B•r”u‘HˆBˆØ�B•r”u‘HˆBˆØ‰ˆˆBØ‰ˆˆBð	ð 	ð 	õ ŒK˜˜B  Q¡Ñ'Ô'ˆÝŒK˜˜B  Q¡Ñ'Ô'ˆÝ�q˜!‰_Œ_ˆÝ�r˜!”u˜b œe R R¨¨1¬¨r°!¬uÑ%5Ô%5¸¸rÀbÐIÑIÔIˆà�!Œf�R˜˜�VŒn˜c !œf R¨¨ VœnÐ-ˆÝ�r˜!”u˜b œeÑ$Ô$ˆÝ�R˜”U˜B˜qœE 3Ñ'Ô'ˆØˆR��1”�r˜!”uÑÔˆÝ�r˜!”u‘:”:�s 2 a¤5™zœzÐ)ˆŒå•R”X˜b 2™gÑ&Ô&Ñ'Ô'¨$Ò.Ð.Ð.Ð.Ð.Ð.r$   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r'   rq   rk   ry   r   ÚpytestÚmarkÚparametrizer�   r…   r‡   r�   r�   r°   rI   r$   r"   r@   r@   0   sì  € € € € € ðð ð ˜q A¨¨2¬5©¸5Ø˜Dð%"ð %"ð %"ð %"ðN ˜r a¨A¨b¬e©Gð ð ð ð ð2=ð =ð =ð
 „[×Ò˜U Q¨ FÑ+Ô+Ø„[×Ò˜Z¨$°¨Ñ7Ô7ð1ð 1ñ 8Ô7ñ ,Ô+ð1ð „[×Ò˜S 2 r (Ñ+Ô+Ø„[×Ò˜U Q¨ FÑ+Ô+ð#ð #ñ ,Ô+ñ ,Ô+ð#ð „[×Ò˜S 2 r (Ñ+Ô+Ø„[×Ò˜U Q¨ FÑ+Ô+ð;ð ;ñ ,Ô+ñ ,Ô+ð;ðJð Jð Jð" „[×Ò˜S 2 r (Ñ+Ô+Ø„[×Ò˜S / / /Ñ2Ô2ð(ð (ñ 3Ô2ñ ,Ô+ð(ð(/ð /ð /ð /ð /r$   r@   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú	TestSplevc                 ó¬   — g d¢}g d¢}t          ||¦  «        }t          dg|¦  «        }|j        dk    sJ ‚t          d|¦  «        }|j        dk    sJ ‚d S )Nr‘   ©r.   rG   rP   é   é   r/   )r/   rI   )r   r   r§   )ra   r+   r<   rg   Úzs        r"   Útest_1d_shapezTestSplev.test_1d_shapeÈ   s_   € ØˆKˆKˆØˆKˆKˆÝ�Q˜‰lŒlˆÝ�1�#�s‰OŒOˆØŒw˜$ŠˆˆˆÝ�!�S‰MŒMˆØŒw˜"Š}ˆ}ˆ}ˆ}ˆ}ˆ}r$   c                 ó*  — g d¢}g d¢}t          ||¦  «        }t          j        g d¢g d¢g¦  «        }t          ||¦  «        }t          |d         |¦  «        }t          |d         |¦  «        }t	          |t          j        ||f¦  «        ¦  «         d S )Nr‘   r»   )rF   r|   r“   ç      @)ç      @g      @ç      @g      @r   r/   )r   r'   r7   r   r   Úvstack)ra   r+   r<   rg   r^   r¾   Úz0Úz1s           r"   Útest_2d_shapezTestSplev.test_2d_shapeÑ   s    € ØˆOˆOˆØˆOˆOˆÝ�Q˜‰lŒlˆÝŒHÐ*Ð*Ð*Ø*Ð*Ð*ð,ñ -ô -ˆå�!�S‰MŒMˆÝ�1�Q”4˜ÑÔˆÝ�1�Q”4˜ÑÔˆÝ˜�2œ9 b¨" XÑ.Ô.Ñ/Ô/Ð/Ð/Ð/r$   c                 óì   — g d¢}g d¢}t          ||d¬¦  «        }ddgddgd ddgg}d	D ]*}t          t          ddg||¬
¦  «        ||         ¦  «         Œ+t          t          t          ddg|d¬
¦  «         d S )N)r/   r0   r1   )r   r0   r.   r/   )rJ   éþÿÿÿrP   r   r.   )r   r/   r1   )Úextr0   )r   r   r   rŒ   r�   )ra   r+   r<   rg   ÚrstlrÊ   s         r"   Útest_extrapolation_modesz"TestSplev.test_extrapolation_modesÜ   s¢   € ð ˆGˆGˆØˆGˆGˆÝ�Q˜˜QÐÑÔˆà�Q�˜!˜Q˜ ¨¨1 vÐ.ˆØð 	Nð 	NˆCÝ%¥e¨Q°¨F°C¸SÐ&AÑ&AÔ&AÀ4ÈÄ9ÑMÔMÐMÐMå•j¥%¨!¨Q¨°¸!Ð<Ñ<Ô<Ð<Ð<Ð<r$   N)r±   r²   r³   r¿   rÇ   rÌ   rI   r$   r"   r¹   r¹   Ç   sA   € € € € € ðð ð ð	0ð 	0ð 	0ð=ð =ð =ð =ð =r$   r¹   c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	Ú
TestSplderc                 óþ   — t          j        ddd¦  «        dz  }t          j        d|z  ¦  «        }t          ||¦  «        | _        t          j        t          j        | j        d         ¦  «        ¦  «        dk    sJ ‚d S )Nr   r/   éd   r1   rB   )r'   rY   r2   r   rj   ÚptpÚdiff)ra   r+   r<   s      r"   Úsetup_methodzTestSplder.setup_methodî   sm   € åŒK˜˜1˜cÑ"Ô" AÑ%ˆÝŒF�2˜‘6‰NŒNˆÝ˜!˜Q‘<”<ˆŒõ Œv•b”g˜dœh qœkÑ*Ô*Ñ+Ô+¨aÒ/Ð/Ð/Ð/Ð/Ð/r$   c                 ó*  — t          d¦  «        D ]‚}t          | j        |¦  «        }t          ||¦  «        }t	          | j        d         |d         ¦  «         t	          | j        d         |d         ¦  «         | j        d         |d         k    sJ ‚Œƒd S )NrG   r   r/   r0   )r\   r   rj   r   r   )ra   ÚnÚspl2Úspl3s       r"   Útest_inversezTestSplder.test_inverse÷   s‘   € å�q‘”ð 	*ð 	*ˆAÝ˜dœh¨Ñ*Ô*ˆDÝ˜$ ‘?”?ˆDÝ˜DœH QœK¨¨a¬Ñ1Ô1Ð1Ý˜DœH QœK¨¨a¬Ñ1Ô1Ð1Ø”8˜A”; $ q¤'Ò)Ð)Ð)Ð)Ð)ð	*ð 	*r$   c                 óP  — t          d¦  «        D ]•}t          j        ddd¦  «        }|dk    r||dk    |dk    z           }t          || j        |¦  «        }t          | j        |¦  «        }t          ||¦  «        }|dk    rt          ||d¬	¦  «         Œ…t          ||¦  «         Œ–d S )
Nr.   r”   r0   iÐ  r1   r   r/   g�íµ ÷ÆÀ>r‹   )r\   r'   rY   r   rj   r   r   )ra   rÕ   ÚxxÚdyrÖ   Údy2s         r"   Útest_splder_vs_splevzTestSplder.test_splder_vs_splev   s½   € õ �s‘”ð 	)ð 	)ˆAå”˜R  DÑ)Ô)ˆBØ�AŠvˆvð ˜˜qš R¨1¢WÑ-Ô.�å�r˜4œ8 QÑ'Ô'ˆBÝ˜$œ( AÑ&Ô&ˆDÝ˜˜D‘/”/ˆCØ�AŠvˆvÝ  C¨dÐ3Ñ3Ô3Ð3Ð3å  CÑ(Ô(Ð(Ð(ð	)ð 	)r$   c                 óD  — t          | j        ¦  «        }t          j        ddd¦  «        }|D ]r}|D ]m}t	          ||| j        ¦  «        }t          ||¦  «        t          ||¦  «        z
  }t          t          j        |¦  «        t          j        |¦  «        ¦  «         ŒnŒsd S )Nr   r/   rB   )r   rj   r'   rY   r   r   r   r;   )ra   rÖ   rÚ   re   Úx2Úy1Úy2s          r"   Útest_splantider_vs_splintz$TestSplder.test_splantider_vs_splint  sª   € å˜$œ(Ñ#Ô#ˆõ Œ[˜˜A˜rÑ"Ô"ˆàð 	@ð 	@ˆBØð @ð @�Ý˜B  D¤HÑ-Ô-�Ý˜2˜t‘_”_¥u¨R°¡¤Ñ6�Ý¥¤
¨2¡¤µ´
¸2±´Ñ?Ô?Ð?Ð?ð@ð	@ð 	@r$   c                 óH   — t          t          t          | j        d¦  «         d S )Nr.   )rŒ   r�   r   rj   r~   s    r"   Útest_order0_diffzTestSplder.test_order0_diff!  s   € Ý•j¥&¨$¬(°AÑ6Ô6Ð6Ð6Ð6r$   c                 óx  — t          d| j        d¬¦  «        }t          |d¦  «         t          t          t          |d¦  «         t          d| j        d¬¦  «        }t          |d¦  «         t          t          t          |d¦  «         t          d| j        d¬¦  «        }t          t          t          |d¦  «         d S )Nç      à?r0   )Úmr1   r/   r.   )r   rj   r   rŒ   r�   )ra   rÖ   s     r"   Ú	test_kinkzTestSplder.test_kink$  s¢   € õ �c˜4œ8 qÐ)Ñ)Ô)ˆÝˆt�Q‰ŒˆÝ•j¥&¨$°Ñ2Ô2Ð2å�c˜4œ8 qÐ)Ñ)Ô)ˆÝˆt�Q‰ŒˆÝ•j¥&¨$°Ñ2Ô2Ð2å�c˜4œ8 qÐ)Ñ)Ô)ˆÝ•j¥&¨$°Ñ2Ô2Ð2Ð2Ð2r$   c                 óP  — t          d¦  «        D ]•}| j        \  }}}t          j        |||f         }t          j        ||f¦  «        }t          |||f|¦  «        }t          ||¦  «        }t          ||d         ¦  «         t          ||d         ¦  «         ||d         k    sJ ‚Œ–d S )Nr1   r   r/   r0   )r\   rj   r'   Úc_Údstackr   r   r   )ra   rÕ   r^   r_   rJ   Úc2rÖ   r×   s           r"   Útest_multidimzTestSplder.test_multidim2  s¯   € å�q‘”ð 
	 ð 
	 ˆAØ”h‰GˆAˆq�!Ý”�q˜!˜Q�w”ˆBÝ”˜B ˜8Ñ$Ô$ˆBå˜q " a˜j¨!Ñ,Ô,ˆDÝ˜$ ‘?”?ˆDå˜A˜t AœwÑ'Ô'Ð'Ý˜B  Q¤Ñ(Ô(Ð(Ø˜˜Qœ’<�<�<�<�<ð
	 ð 
	 r$   N)
r±   r²   r³   rÓ   rØ   rÝ   râ   rä   rè   rí   rI   r$   r"   rÎ   rÎ   í   s€   € € € € € ð0ð 0ð 0ð*ð *ð *ð)ð )ð )ð&@ð @ð @ð7ð 7ð 7ð3ð 3ð 3ð ð  ð  ð  ð  r$   rÎ   c                   ó   — e Zd Zd„ ZdS )Ú
TestSplintc           	      ó®  — d\  }}t          j        |¦  «        }|dz  }t          ||d¬¦  «        \  }}}t          |¦  «        t          |¦  «        cxk    r|d|dz
  z  z   k    sn J ‚t	          dd|||f¦  «        }d}t          ||z
  ¦  «        d	k     sJ ‚|                     ¦   «         }	t           j        |	t          |¦  «        |z
  dz
  d …<   t	          dd||	|f¦  «        }
t          |
|z
  ¦  «        d	k     sJ ‚t           j        |	d<   t          j        t	          dd||	|f¦  «        ¦  «        sJ ‚|d t          |¦  «        |z
  dz
  …         }t	          dd|||f¦  «        }||z
  d	k     sJ ‚t          t          d
¬¦  «        5  t	          ddt          j        d¦  «        t          j        d¦  «        df¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r¼   r1   r1   r   r{   r0   r/   rP   g     @t@rX   z>=n-k-1)Úmatché
   rG   )r'   rZ   r   r]   r   r—   ÚcopyÚnanÚisnanrŒ   Ú	ExceptionÚones)ra   rÕ   rJ   r+   r<   r^   r_   ÚresÚexpectedÚc0Úres0Úc1Úres1s                r"   Ú
test_len_czTestSplint.test_len_cB  s7  € Ø‰ˆˆ1ÝŒI�a‰LŒLˆØˆq‰DˆÝ˜˜A Ð#Ñ#Ô#‰ˆˆ1ˆaõ �1‰vŒv�˜Q™œÐ.Ð.Ò.Ð. 1 q¨!¨A©#¡w¡;Ò.Ð.Ð.Ð.Ð.Ð.õ �Q˜˜A˜q !˜9Ñ%Ô%ˆØˆÝ�3˜‘>Ñ"Ô" UÒ*Ð*Ð*Ð*ð �VŠV‰XŒXˆÝ œfˆ�3ˆq‰6Œ6�A‰:˜‰>ˆ?ˆ?ÑÝ�a˜˜Q  A˜JÑ'Ô'ˆÝ�4˜(‘?Ñ#Ô# eÒ+Ð+Ð+Ð+õ ”ˆˆ1‰ÝŒx�˜q ! a¨¨Q ZÑ0Ô0Ñ1Ô1Ð1Ð1Ð1ð ˆ•�A‘”˜‘
˜Q‘ˆÔˆÝ�a˜˜Q  A˜JÑ'Ô'ˆØ�x‘ 5Ò(Ð(Ð(Ð(õ
 �9¨JÐ7Ñ7Ô7ð 	7ð 	7Ý�1�a�"œ' "™+œ+¥r¤w¨q¡z¤z°1Ð5Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7s   Æ9G
Ç
GÇGN)r±   r²   r³   rþ   rI   r$   r"   rï   rï   A  s#   € € € € € ð!7ð !7ð !7ð !7ð !7r$   rï   c                   óv   — e Zd Zd„ Zd„ Zej                             ee	j
        k    d¬¦  «        d„ ¦   «         ZdS )ÚTestBisplrepc                 óÄ   — ddl m} t          j        dk    rd}nd} |t	          j        d¦  «        |f¬¦  «        }t          t          t          ||||ddddd¬	¦  «         d S )
Nr   )Ú
as_stridedr½   l    dæ</i q rI   )r§   r/   )ÚwrT   rS   r©   rª   rN   )	Únumpy.lib.stride_tricksr  r   Úitemsizer'   rŽ   rŒ   ÚOverflowErrorr   )ra   r  r`   r+   s       r"   Útest_overflowzTestBisplrep.test_overflowg  s†   € Ø6Ð6Ð6Ð6Ð6Ð6ÝÔ  AÒ%Ð%ØˆDˆDàˆDð ˆJ•r”x ‘|”|¨D¨7Ð3Ñ3Ô3ˆÝ•m¥X¨q°!°Q¸!Ø˜q Q¨1°ð	3ñ 	3ô 	3ð 	3ð 	3ð 	3r$   c           	      óð   — t          j        t          d¦  «        ¦  «        5 }|d         }d d d ¦  «         n# 1 swxY w Y   t          |d d …df         |d d …df         |d d …df         dddd¬¦  «         d S )	Nzbug-1310.npzr   r   r/   r0   r1   T)r¥   r¦   rN   Úfull_output)r'   Úloadr#   r   )ra   Úloaded_datar   s      r"   Útest_regression_1310z!TestBisplrep.test_regression_1310s  sÌ   € åŒW•Y˜~Ñ.Ô.Ñ/Ô/ð 	'°;Ø˜vÔ&ˆDð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'õ 	��a�a�a˜�c”˜D    1 œI t¨A¨A¨A¨a¨C¤y°Q¸1ÀØ!ð	#ñ 	#ô 	#ð 	#ð 	#ð 	#s   ¢	7·;¾;zneeds ilp64 fitpack)Úreasonc                 ó<  — t          d¦  «         t          j        ddd¦  «        }t          j        ddd¦  «        }t          j        ||¦  «        \  }}t          j        |¦  «        }t          |||ddd¬¦  «        }t          t          dd|¦  «        d¦  «         d S )	Ni`m  r   r/   i�  r1   ©r¥   r¦   rN   ræ   ç        )r   r'   rY   ÚmeshgridÚ
zeros_liker   r   r   )ra   r+   r<   r¾   rg   s        r"   Útest_ilp64_bisplrepz TestBisplrep.test_ilp64_bisplrep  s–   € å˜%Ñ Ô Ð ÝŒK˜˜1˜cÑ"Ô"ˆÝŒK˜˜1˜cÑ"Ô"ˆÝŒ{˜1˜aÑ Ô ‰ˆˆ1ÝŒM˜!ÑÔˆÝ�q˜!˜Q 1¨¨aÐ0Ñ0Ô0ˆÝ�  S¨#Ñ.Ô.°Ñ4Ô4Ð4Ð4Ð4r$   N)r±   r²   r³   r  r  rµ   r¶   Úskipifr   r'   Úint64r  rI   r$   r"   r   r   f  sl   € € € € € ð
3ð 
3ð 
3ð
#ð 
#ð 
#ð „[×Ò˜¨¬Ò0Ð9NÐÑOÔOð5ð 5ñ PÔOð5ð 5ð 5r$   r   c            	      ó\  — t          j        dd¦  «        } t          j        dd¦  «        }t          j        | |¦  «        \  }}t          | |d|z  |z  ¦  «        }t	          |j        ¦  «        }|                     |j        ¦  «         t          t          dddd|¦  «        dz
  ¦  «        dk     sJ ‚t          t          dddd|¦  «        dz
  ¦  «        dk     sJ ‚t          t          dddd|¦  «        dz
  ¦  «        dk     sJ ‚t          t          dd	dd	|¦  «        dz
  ¦  «        dk     sJ ‚d S )
Nr   r/   r.   rŠ   ræ   g      Ð?rH   iœÿÿÿrÐ   )
r'   rY   r  r	   r8   rg   ÚextendÚdegreesr—   r   )r+   r<   rÚ   ÚyyÚrectrg   s         r"   Útest_dblintr  Š  s3  € õ 	Œ�A�qÑÔ€AÝ
Œ�A�qÑÔ€AÝŒ[˜˜AÑÔ�F€BˆÝ˜q ! Q¨¡V¨b¡[Ñ1Ô1€DÝ
ˆtŒx‰.Œ.€CØ‡J‚JˆtŒ|ÑÔÐå�v�a˜˜A˜q #Ñ&Ô&¨Ñ*Ñ+Ô+¨eÒ3Ð3Ð3Ð3Ý�v�a˜˜a  CÑ(Ô(¨4Ñ/Ñ0Ô0°5Ò8Ð8Ð8Ð8Ý�v�c˜1˜a  CÑ(Ô(¨4Ñ/Ñ0Ô0°5Ò8Ð8Ð8Ð8Ý�v�d˜C  s¨CÑ0Ô0°1Ñ4Ñ5Ô5¸Ò=Ð=Ð=Ð=Ð=Ð=r$   c                  ól  — t          j        g d¢¦  «        t          j        g d¢¦  «        df} | \  }}}t          j        g d¢¦  «        }t          t          || ¦  «        |d         |d         |d         z
  |z  |d         z  z   ¦  «         t          t          || d¦  «        t          j        |¦  «        |d         |d         z
  z  |d         z  ¦  «         t           j                             d¦  «         t          j        t           j                             d¦  «        ¦  «        }t           j                             d¦  «        }t          ||¦  «        \  }}}|d         d	z
  |d
         d	z   g}t          |||f|¦  «        }t          t          ||||f|¦  «        t          ||¦  «        ¦  «         d S )N)r  r  rÁ   rÁ   )g®g¥œù¿g~„'	…@r  r  r/   )éýÿÿÿr   rÁ   r1   r   r0   iÒ  é   rF   r”   )
r'   r7   r   r   Ú	ones_likeÚrandomÚseedÚsortr   r   )rg   r^   r_   rJ   r+   r<   Útck2s          r"   Útest_splev_der_kr$  š  s”  € õ
 Œ8Ð&Ð&Ð&Ñ'Ô'ÝŒ8Ð5Ð5Ð5Ñ6Ô6Øð€Cð �G€A€qˆ!Ý
Œ���Ñ!Ô!€Aõ •E˜!˜S‘M”M 1 Q¤4¨1¨Q¬4°!°A´$©;¸!Ñ*;¸A¸a¼DÑ*@Ñ#@ÑAÔAÐAÝ•E˜!˜S !Ñ$Ô$Ý”L ‘O”O q¨¤t¨a°¬d¡{Ñ3°a¸´dÑ:ñô ð õ
 „I‡N‚N�4ÑÔÐÝ
Œ•”	× Ò  Ñ$Ô$Ñ%Ô%€AÝ
Œ	×Ò˜ÑÔ€AÝ�Q˜‰lŒl�G€A€qˆ!à	
ˆ1Œ�‰�A�b”E˜B‘JÐ€AÝ�1�a˜�)˜QÑÔ€DÝ•E˜!˜a  A˜Y¨Ñ*Ô*­E°!°T©N¬NÑ;Ô;Ð;Ð;Ð;r$   c                  óX  — t          j        ddd¦  «        } t          j        dt           j        z  | z  ¦  «        }t          j        dt           j        z  | z  ¦  «        }t          ||gd¬¦  «        \  }}t          j        ddd¦  «         |d         }t          ||gd|¬	¦  «        \  }}d S )
Nr   gš™™™™™ñ?r}   r0   r{   g)\�Âõ(ð?r–   r”   )Útaskr^   )r'   rZ   r2   rq   r3   r   )r^   r+   r<   rg   r™   Úuknotss         r"   Útest_splprep_segfaultr(  ¶  s    € õ 	Œ	�!�S˜#ÑÔ€AÝ
Œˆq•”‰w�q‰yÑÔ€AÝ
Œˆq•”‰w�q‰yÑÔ€AÝ�a˜�V˜qÐ!Ñ!Ô!�F€CˆÝ„Iˆa��tÑÔÐà�ŒV€FÝ�a˜�V "¨Ð/Ñ/Ô/�F€Cˆˆˆr$   c                  ó  — t           j                             d¦  «         t          j        ddd¦  «        } | }t           j                             dd¦  «                             ¦   «         }d}d}t          | ||d d d d ||d¬¦
  «
        \  }}}}}	}
}|d |…         |d |…         |	d ||z
  dz
  ||z
  dz
  z  …         ||f}t          j        dg¦  «        }t          j        dg¦  «        }t          t          t          ft          |||¦  «         d S )Nr/   r   é   r  r  i  ( )r'   r   r!  rY   Úrandnr¨   r   rŽ   rŒ   ÚRuntimeErrorÚMemoryErrorr   )r+   r<   r¾   r¥   r¦   ÚnxÚtxÚnyÚtyr_   ÚfpÚierrg   ÚxpÚyps                  r"   Útest_bisplev_integer_overflowr6  Ã  s  € Ý„I‡N‚N�1ÑÔÐå
Œ�A�q˜"ÑÔ€AØ	€AÝ
Œ	�Š˜˜BÑÔ×%Ò%Ñ'Ô'€AØ	
€BØ	
€Bå!,Ø	ˆ1ˆa��t˜T 4¨B°2¸ð">ñ ">ô ">Ñ€BˆˆB��A�r˜3àˆcˆrˆcŒ7�B�s˜�s”G˜QÐ=  b¡¨1¡°°b±¸1±Ñ =Ð=Ô>ÀÀBÐ
G€Cå	Œ�7�)Ñ	Ô	€BÝ	Œ�7�)Ñ	Ô	€Bå•<¥Ð-­w¸¸BÀÑDÔDÐDÐDÐDr$   c            	      óF  — d} d\  }}d„ }t          j        dd| ¦  «        }t          j        dd| ¦  «        }t          ||¦  «        }t          |d         |d          ||d         |d         ¦  «        d||¬	¦  «        }d
}t          j        |¦  «        |d<   t          j        |¦  «        dz  |d<   t          j        d¦  «        }	t          j        d¦  «        dz  }
t          j        t          ¦  «        5  t          |	|
|dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Né   rŸ   c                 ó0   — t          j        | |z   ¦  «        S r&   r¡   r¢   s     r"   r£   ztest_gh_1766.<locals>.f2Û  s   € ÝŒv�a˜‘c‰{Œ{Ðr$   r   rò   r‚   i¼  r/   r¤   i ¡ r.   r1   )	r'   rY   r>   r   rZ   rµ   r   r-  r   )r`   r¥   r¦   r£   r+   r<   r=   rg   Ú
tx_ty_sizeÚtt_0Útt_1s              r"   Útest_gh_1766r=  Ö  sg  € ð €DØ�F€Bˆðð ð õ 	Œ�A�r˜4Ñ Ô €AÝ
Œ�B˜˜TÑ"Ô"€AÝ	�1�a‰Œ€BÝ
�2�a”5˜"˜Qœ%   B q¤E¨2¨a¬5Ñ!1Ô!1°Q¸2À"Ð
EÑ
EÔ
E€Cð €JÝŒY�zÑ"Ô"€Cˆ�FÝŒY�zÑ"Ô" QÑ&€Cˆ�FÝŒ9�R‰=Œ=€DÝŒ9�R‰=Œ=˜1Ñ€DÝ	Œ•{Ñ	#Ô	#ð 'ð 'Ý��d˜C  AÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   Ã5DÄDÄDc                  óò   — t          j        dd¦  «        } | dz  }t          | |ddg¬¦  «        }t          t          j        d¦  «        |¦  «        }t          j        g d¢¦  «        }t          ||¦  «         d S )Nr   rò   r1   rG   )rJ   r^   r/   )rF   rÂ   ç      @r?  )r'   rY   r   r   Úfloat64r7   r   )r+   r<   rg   rø   Údess        r"   Útest_spalde_scalar_inputrB  í  sw   € å
Œ�A�rÑÔ€AØ	ˆ1‰€AÝ
��A˜˜q˜cÐ
"Ñ
"Ô
"€CÝ
•”˜A‘” Ñ
$Ô
$€CÝ
Œ(Ð#Ð#Ð#Ñ
$Ô
$€CÝ˜˜SÑ!Ô!Ð!Ð!Ð!r$   c                  óR  ‡‡‡‡— t          j        g d¢d¬¦  «        Šg d¢Št          j        g d¢¦  «        ŠdŠt          ‰‰‰‰f¦  «        } t          j        | ¦  «        } t          j        ˆˆˆˆfd„t	          d¦  «        D ¦   «         ¦  «        }t          | |j        d	¬
¦  «         d S )N)ç      $Àç      "Àç       Àç      Àç      Àç      Àç      Àç      Àç      Àç       Àç      ø¿ç      ð¿ç      à¿r  ræ   rF   r|   r“   rÁ   rÂ   rÃ   ç      @r?  r[   rC   )rD  rD  rD  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  r  ræ   rF   r|   r“   rÁ   rÂ   rÃ   rQ  r?  r?  r?  r?  )rF   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r1   c                 ó8   •— g | ]}t          ‰‰‰‰f|¦  «        ‘ŒS rI   )r   )Ú.0Únur_   rJ   r^   r+   s     €€€€r"   ú
<listcomp>z"test_spalde_nc.<locals>.<listcomp>  s+   ø€ ÐGÐGÐG¸�E ! a¨¨A Y°Ñ3Ô3ÐGÐGÐGr$   r.   rU   rV   )r'   r;   r   rÄ   r\   r   r*   )rø   Ú	res_splevr_   rJ   r^   r+   s     @@@@r"   Útest_spalde_ncrW  ÷  sÝ   øøøø€ õ 	Œ
ð Jð Jð Jà!ð	#ñ 	#ô 	#€Að	"ð 	"ð 	"€Aõ 	Œ
ð <ð <ð <ñ 	=ô 	=€Aà	€Aå
��Q˜˜1�IÑ
Ô
€CÝ
Œ)�C‰.Œ.€CÝ”
ÐGÐGÐGÐGÐGÐGÐG½eÀA¹h¼hÐGÑGÔGÑHÔH€IÝ�C˜œ¨5Ð1Ñ1Ô1Ð1Ð1Ð1r$   )r   )4r9   r   Únumpyr'   Úscipy._lib._array_apir   r   r   r   rµ   r   rŒ   Úscipy._lib._testutilsr   Úscipy.interpolater	   r
   Úscipy.interpolate._fitpack_pyr   r   r   r   r   r   r   r   r   r   r   r   Úscipy.interpolate._dfitpackr   Úscipy.interpolate._fitpack2r   r#   r,   r5   r>   r@   r¹   rÎ   rï   r   r  r$  r(  r6  r¶   Úxslowr=  rB  rW  rI   r$   r"   ú<module>r`     s'  ðØ Ð Ð Ð Ø 	€	€	€	à Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ø €€€Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø )Ð )Ð )Ð )Ð )Ð )ðJð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jà 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ð*ð *ð *ð
#ð #ð #ð	ð 	ð 	ð 	ðð ð ðT/ð T/ð T/ð T/ð T/ñ T/ô T/ð T/ðn#=ð #=ð #=ð #=ð #=ñ #=ô #=ð #=ðLQ ð Q ð Q ð Q ð Q ñ Q ô Q ð Q ðh"7ð "7ð "7ð "7ð "7ñ "7ô "7ð "7ðJ!5ð !5ð !5ð !5ð !5ñ !5ô !5ð !5ðH>ð >ð >ð <ð <ð <ð8
0ð 
0ð 
0ðEð Eð Eð& „Ôð'ð 'ñ Ôð'ð,"ð "ð "ð2ð 2ð 2ð 2ð 2r$   