Ë
    ÏÍ:j#H  ã                   óþ  — d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlm	Z	m
Z
 d dlmZ d dlmc mZ d dlmc mZ d dlZd dlZej.                  dk  Zd„ Z G d„ d«      Z G d	„ d
«      Z G d„ d«      Zej:                  j=                  dddg«      ej:                  j=                  dej>                  ej@                  g«      d„ «       «       Z!ej:                  j=                  dddg«      ej:                  j=                  dej@                  ej>                  g«      d„ «       «       Z"ej:                  j=                  dddg«      ej:                  j=                  dej@                  ej>                  g«      d„ «       «       Z#y)é    N)Úraises)Úxp_assert_closeÚassert_almost_equal)Úcheck_free_memoryl        c                 óÀ   — t         j                  j                  t         j                  j                  t         j                  j	                  t
        «      «      d| «      S )NÚdata)ÚosÚpathÚjoinÚabspathÚdirnameÚ__file__)Úbasenames    úz/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_interpnd.pyÚ	data_filer      s8   € Ü�7‰7�<‰<œŸ™Ÿ™¬¯©¯©¼Ó(AÓBØ ó*ð *ó    c                   óÀ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zej                  j                  ej                  j!                  ed¬«      d„ «       «       Zy)ÚTestLinearNDInterpolationc                 ó  — t        j                  g d¢t         j                  ¬«      }t        j                  |j                  d   t         j                  ¬«      } t        j                  ||«      |«      }t        ||«       y )N©©r   r   )ç      à¿r   )r   ç      à?)r   r   )ç      Ð?ç333333Ó?©Údtyper   ©ÚnpÚarrayÚfloat64ÚarangeÚshapeÚinterpndÚLinearNDInterpolatorr   ©ÚselfÚxÚyÚyis       r   Útest_smoketestz(TestLinearNDInterpolation.test_smoketest   sY   € ä�H‰HÒNÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆà0ŒX×*Ñ*¨1¨aÓ0°Ó3ˆÜ˜A˜rÕ"r   c                 óD  — t        j                  g d¢t         j                  ¬«      }t        j                  |j                  d   t         j                  ¬«      } t        j                  |d d …df   |d d …df   f|«      |d d …df   |d d …df   «      }t        ||«       y )Nr   r   r   é   r   r&   s       r   Útest_smoketest_alternatez2TestLinearNDInterpolation.test_smoketest_alternate#   s€   € ä�H‰HÒNÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆà?ŒX×*Ñ*¨Aªa°¨c©F°A²a¸°c±FÐ+;¸QÓ?ÀÂ!ÀAÀ#ÁÈÊ!ÈAÈ#ÉÓOˆÜ˜A˜rÕ"r   c                 ó  — t        j                  g d¢t         j                  ¬«      }t        j                  |j                  d   t         j                  ¬«      }|d|z  z
  } t        j                  ||«      |«      }t        ||«       y ©Nr   r   r   ù              @r   r&   s       r   Útest_complex_smoketestz0TestLinearNDInterpolation.test_complex_smoketest,   sf   € ä�H‰HÒNÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆØ��1‘‰Hˆà0ŒX×*Ñ*¨1¨aÓ0°Ó3ˆÜ˜A˜rÕ"r   c                 ód  — t        j                  g d¢t         j                  ¬«      }t        j                  |j                  d   t         j                  ¬«      }|d|z  z
  }t        j                  |«      }t        j                  ||«      } ||«      }t        ||«       |j                  |u sJ ‚y r0   )r   r    r!   r"   r#   ÚqhullÚDelaunayr$   r%   r   Útri)r'   r(   r)   r6   Úinterpolatorr*   s         r   Útest_tri_inputz(TestLinearNDInterpolation.test_tri_input6   sŠ   € ä�H‰HÒNÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆØ��1‘‰Hˆä�n‰n˜QÓˆÜ×4Ñ4°S¸!Ó<ˆÙ˜!‹_ˆÜ˜A˜rÔ"Ø×Ñ 3Ñ&Ð&Ñ&r   c                 óJ  ‡— t        j                  g d¢t         j                  ¬«      }t        j                  g d¢t         j                  ¬«      Šˆfd„}t        j                  t        j                  ddd«      d d …d f   t        j                  ddd«      d d d …f   «      \  }}|j                  «       }|j                  «       }t        j                  ||g«      j                  j                  «       } t        j                  |‰«      |«      }t        | |||«      «       y )N)r   ©r   r-   ©r-   r-   ©r-   r   r   ©g      ð?g       @g      Àg      @c                 óè   •— | |z   dk  }| }| |   }||   }| |   }||   }d| z  }‰	d   d|z
  |z
  z  ‰	d   |z  z   ‰	d   |z  z   ||<   ‰	d   ||z   dz
  z  ‰	d   d|z
  z  z   ‰	d   d|z
  z  z   ||<   |S )Nr-   r   é   é   © )
r(   r)   Út1Út2Úx1Úy1Úx2Úy2ÚzÚvaluess
            €r   Úipz1TestLinearNDInterpolation.test_square.<locals>.ipQ   sË   ø€ Ø�a‘%˜1‘*ˆBØ�ˆBà�2‘ˆBØ�2‘ˆBà�2‘ˆBØ�2‘ˆBà�!‘ˆAà˜A‘Y  B¡¨¡Ñ,Ø˜a‘y ‘|ñ$à˜a‘y ‘|ñ$ˆAˆb‰Eð ˜A‘Y  R¡¨!¡Ñ,Ø˜a‘y ! b¡&Ñ)ñ*à˜a‘y ! b¡&Ñ)ñ*ˆAˆb‰Eð ˆHr   r   r-   é   ©r   r    r!   Úbroadcast_arraysÚlinspaceÚravelÚTÚcopyr$   r%   r   )r'   ÚpointsrJ   ÚxxÚyyÚxiÚzirI   s          @r   Útest_squarez%TestLinearNDInterpolation.test_squareC   sÜ   ø€ ô —‘Ò6¼b¿j¹jÔIˆÜ—‘Ò+´2·:±:Ô>ˆô	ô* ×$Ñ$¤R§[¡[°°A°rÓ%:º1¸T¸6Ñ%BÜ%'§[¡[°°A°rÓ%:¸4Â¸6Ñ%BóD‰ˆˆBà�X‰X‹ZˆØ�X‰X‹Zˆä�X‰X�r˜2�hÓ×!Ñ!×&Ñ&Ó(ˆØ:ŒX×*Ñ*¨6°6Ó:¸2Ó>ˆä˜B¡ 2 r£
Õ+r   c                 ó
  — t        j                  g d¢t         j                  ¬«      }t        j                  |j                  d   t         j                  ¬«      } t        j                  ||d¬«      |«      }t        ||«       y )N©r   )éûÿÿÿrZ   )rZ   é   )r[   r[   )g      @r?   r   r   T©Úrescaler   r&   s       r   Útest_smoketest_rescalez0TestLinearNDInterpolation.test_smoketest_rescalep   s[   € ä�H‰HÒBÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆà>ŒX×*Ñ*¨1¨a¸Ô>¸qÓAˆÜ˜A˜rÕ"r   c                 ól  — t        j                  g d¢t         j                  ¬«      }t        j                  g d¢t         j                  ¬«      }t        j                  t        j                  ddd«      d d …d f   t        j                  ddd«      d d d …f   «      \  }}|j                  «       }|j                  «       }t        j                  ||g«      j                  j                  «       } t        j                  ||«      |«      } t        j                  ||d¬	«      |«      }t        ||«       y )
N)r   )r   éd   )é
   r`   )ra   r   r   r=   r   ra   rK   r`   Tr\   rL   )r'   rR   rI   rS   rT   rU   rV   Úzi_rescaleds           r   Útest_square_rescalez-TestLinearNDInterpolation.test_square_rescaley   só   € ô —‘Ò<ÄBÇJÁJÔOˆÜ—‘Ò+´2·:±:Ô>ˆä×$Ñ$¤R§[¡[°°B¸Ó%;ºA¸d¸FÑ%CÜ%'§[¡[°°C¸Ó%<¸TÂ!¸VÑ%DóF‰ˆˆBà�X‰X‹ZˆØ�X‰X‹ZˆÜ�X‰X�r˜2�hÓ×!Ñ!×&Ñ&Ó(ˆØ:ŒX×*Ñ*¨6°6Ó:¸2Ó>ˆð”h×3Ñ3°F¸FØôØ ó"ˆô 	˜B Õ,r   c                 ó¤  — t        j                  g d¢t         j                  ¬«      }t        j                  |j                  d   t         j                  ¬«      }|d|z  z
  }t        j                  |«      } t        j                  |j                  |«      |«      } t        j                  |j                  |d¬«      |«      }t        ||«       y ©NrY   r   r   r1   Tr\   )r   r    r!   r"   r#   r4   r5   r$   r%   rR   r   ©r'   r(   r)   r6   r*   Ú
yi_rescales         r   Útest_tripoints_input_rescalez6TestLinearNDInterpolation.test_tripoints_input_rescale‹   sŸ   € ä�H‰HÒ?ÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆØ��1‘‰Hˆä�n‰n˜QÓˆØ9ŒX×*Ñ*¨3¯:©:°qÓ9¸!Ó<ˆð”X×2Ñ2°3·:±:¸qØôØó!ˆ
ä˜B 
Õ+r   c                 ó�  — t        j                  g d¢t         j                  ¬«      }t        j                  |j                  d   t         j                  ¬«      }|d|z  z
  }t        j                  |«      }d}t        j                  t        |¬«      5   t        j                  ||d¬«      |«       d d d «       y # 1 sw Y   y xY w©	NrY   r   r   r1   zORescaling is not supported when passing a Delaunay triangulation as ``points``.)ÚmatchTr\   )r   r    r!   r"   r#   r4   r5   Úpytestr   Ú
ValueErrorr$   r%   ©r'   r(   r)   r6   rk   s        r   Útest_tri_input_rescalez0TestLinearNDInterpolation.test_tri_input_rescale˜   s˜   € ä�H‰HÒ?ÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆØ��1‘‰Hˆä�n‰n˜QÓˆð9ˆä�]‰]œ:¨UÔ3ñ 	CØ?ŒH×)Ñ)¨#¨q¸$Ô?ÀÔB÷	C÷ 	Cñ 	Cúó   ÂB<Â<Cc                 ó¶  — t         j                  j                  d«       t         j                  j                  dd«      }t         j                  j                  d«      dt         j                  j                  d«      z  z   }t	        j
                  ||«      }t        j                  t        j                  |«      «      }t         |dd«       |dd«      «       y ©NéÒ  é   r@   y              ð?r   )
r   ÚrandomÚseedÚrandr$   r%   ÚpickleÚloadsÚdumpsr   )r'   r(   r)   rJ   Úip2s        r   Útest_picklez%TestLinearNDInterpolation.test_pickle¥   sŽ   € ä
�	‰	�‰�tÔÜ�I‰I�N‰N˜2˜qÓ!ˆÜ�I‰I�N‰N˜2Ó ¤B§I¡I§N¡N°2Ó$6Ñ!6Ñ6ˆä×*Ñ*¨1¨aÓ0ˆÜ�l‰lœ6Ÿ<™<¨Ó+Ó,ˆä™B˜s C›L©#¨c°3«-Õ8r   zit fails on 32-bit)Úreasonc           	      óê  — t        d«       t        j                  ddd«      }t        j                  ddd«      }t        j                  ||«      \  }}d„ }t        j                  |j                  «       |j                  «       f«      j                  }||z  j                  «       }t        j                  ||«      }t        j                  ||t        dd«      t        dd«      f¬«      }	t        j                  ||t        dd«      t        dd«      f¬«      }
t        j                  ||t        dd«      t        dd«      f¬«      }t        j                  ||t        dd«      t        dd«      f¬«      }|	j                  «        |
j                  «        |j                  «        |j                  «        |	j                  «        |
j                  «        |j                  «        |j                  «        y )Ni'  r   ih  ra   c                 óJ   — t         j                  ||f   \  }} | ||f«      }|S ©N)r   Úmgrid)r7   Ú
slice_rowsÚ
slice_colsÚgrid_xÚgrid_yÚress         r   Ú	do_interpz;TestLinearNDInterpolation.test_threading.<locals>.do_interp»   s-   € ÜŸX™X j°*Ð&<Ñ=‰NˆF�FÙ ¨Ð/Ó0ˆCØˆJr   i4  )ÚtargetÚargs)r   r   r"   ÚmeshgridÚvstackrO   rP   r$   r%   Ú	threadingÚThreadÚsliceÚstartr   )r'   Úr_ticksÚ	phi_ticksÚr_gridÚphi_gridr‡   rR   rI   r7   Úworker_thread_1Úworker_thread_2Úworker_thread_3Úworker_thread_4s                r   Útest_threadingz(TestLinearNDInterpolation.test_threading°   s«  € ô
 	˜%Ô ä—)‘)˜A˜t RÓ(ˆÜ—I‘I˜a  rÓ*ˆ	ÜŸ;™; w°	Ó:Ñˆ�ò	ô
 —‘˜FŸL™L›N¨H¯N©NÓ,<Ð=Ó>×@Ñ@ˆØ˜8Ñ#×*Ñ*Ó,ˆÜ×4Ñ4°V¸VÓDˆä#×*Ñ*ØØ¤ a¨£´°a¸³Ð?ôAˆô $×*Ñ*ØØ¤ d¨DÓ 1´5¸¸D³>ÐBôDˆô $×*Ñ*ØØ¤ a¨£´°d¸DÓ0AÐBôDˆô $×*Ñ*ØØ¤ d¨DÓ 1´5¸¸tÓ3DÐEôGˆð 	×ÑÔØ×ÑÔØ×ÑÔØ×ÑÔà×ÑÔØ×ÑÔØ×ÑÔØ×ÑÕr   N)Ú__name__Ú
__module__Ú__qualname__r+   r.   r2   r8   rW   r^   rc   rh   ro   r|   rl   ÚmarkÚslowÚskipifÚ	_IS_32BITr˜   rA   r   r   r   r      sr   „ ò#ò#ò#ò'ò+,òZ#ò-ò$,òCò	9ð ‡[�[×ÑØ‡[�[×Ñ˜	Ð*>ÐÓ?ñ'ó @ó ñ'r   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestEstimateGradients2DGlobalc           	      óž  — t        j                  g d¢t        ¬«      }t        j                  |«      }d„ dfd„ dfd„ dfd	„ d
fg}t        |«      D ]{  \  }\  }} ||d d …df   |d d …df   «      }t        j                  ||d¬«      }|j                  dk(  sJ ‚t        |t        j                  |«      d d d …f   d|z  z   ddd|› �¬«       Œ} y )N)r   )r   r@   r<   )r-   r@   ©r   g      è?©ç333333ã?gš™™™™™é?r   c                 ó   — d| z  dz   S ©Nr   r-   rA   ©r(   r)   s     r   ú<lambda>z>TestEstimateGradients2DGlobal.test_smoketest.<locals>.<lambda>å   s   € ˜!˜A™# ™'€ r   r   c                 ó   — d| z   S ©Nr   rA   r¨   s     r   r©   z>TestEstimateGradients2DGlobal.test_smoketest.<locals>.<lambda>æ   s
   € ˜!˜a™%€ r   r<   c                 ó   — d|z   S ©NéþÿÿÿrA   r¨   s     r   r©   z>TestEstimateGradients2DGlobal.test_smoketest.<locals>.<lambda>ç   s
   € ˜"˜q™&€ r   r:   c                 ó   — dd| z  z   d|z  z   S ©Nr?   çÍÌÌÌÌL,@rA   r¨   s     r   r©   z>TestEstimateGradients2DGlobal.test_smoketest.<locals>.<lambda>è   s   € ˜!˜a ™c™' E¨!¡GÑ+€ r   )r?   r±   r   r-   ç�íµ ÷Æ°>)Útol)é   r@   gñhãˆµøä>zitem )ÚrtolÚatolÚerr_msg)
r   r    Úfloatr4   r5   Ú	enumerater$   Úestimate_gradients_2d_globalr#   r   )	r'   r(   r6   ÚfuncsÚjÚfuncÚgradrH   Údzs	            r   r+   z,TestEstimateGradients2DGlobal.test_smoketestÝ   så   € Ü�H‰Hò @ÜGLôNˆä�n‰n˜QÓˆñ
 " 6Ð*Ù Ð(Ù  &Ð)Ù+¨ZÐ8ð	
ˆô  )¨Ó/ò 	‰OˆA‰|��dÙ�Q’q˜�s‘V˜Qšq ˜s™VÓ$ˆAÜ×6Ñ6°s¸AÀ4ÔHˆBà—8‘8˜vÒ%Ð%Ð%ÜØ”B—H‘H˜T“N 4ª 7Ñ+¨a°©dÑ2¸ÀDØ ˜s˜öñ	r   c                 óŽ  — t        j                  t        d«      «      }t         j                  j	                  |j
                  d   «      }t        j                  |«      }t        j                  «       5  t        j                  ddt        j                  «       t        j                  ||d¬«       d d d «       y # 1 sw Y   y xY w)Nzestimate_gradients_hang.npyr   Úignorez$Gradient estimation did not converger-   )Úmaxiter)r   Úloadr   ru   rw   r#   r4   r5   ÚwarningsÚcatch_warningsÚfilterwarningsr$   ÚGradientEstimationWarningrº   )r'   rR   rI   r6   s       r   Útest_regression_2359z2TestEstimateGradients2DGlobal.test_regression_2359õ   s˜   € ô —‘œÐ#@ÓAÓBˆÜ—‘—‘ §¡¨Q¡Ó0ˆÜ�n‰n˜VÓ$ˆô ×$Ñ$Ó&ñ 	JÜ×#Ñ#ØØ6Ü×2Ñ2ôô
 ×1Ñ1°#°vÀqÕI÷	J÷ 	Jñ 	Jús   Á4>B;Â;CN)r™   rš   r›   r+   rÈ   rA   r   r   r¡   r¡   Ü   s   „ òó0Jr   r¡   c                   óŠ   — e Zd Z	 	 dd„Zd„ Zd„ Zd„ Zd„ Zd„ Ze	j                  j                  d«      d	„ «       Zd
„ Zd„ Zd„ Zy)ÚTestCloughTocher2DInterpolatorNc           	      óˆ  — t         j                  j                  d«      }|€t        j                  g d¢t        ¬«      }|s/t        j                  | ||d d …df   |d d …df   «      d|¬«      }n>t        j                  |d d …df   |d d …df   f ||d d …df   |d d …df   «      d|¬«      }|j                  dd	«      }	|s	 ||	«      }
n ||	d d …df   |	d d …df   «      }
 ||	d d …df   |	d d …df   «      }	 t        |
|fi |¤Ž y # t        $ r0 t        d
t        |
|z
  «      «       t        d|j                  «       ‚ w xY w)Nrs   )r   r:   r<   r;   r£   r¤   )r   gš™™™™™É?r   r   r-   r²   )r³   r]   é2   r@   z_check_accuracy: abs(a-b):zip.grad:)r   ru   ÚRandomStater    r¸   r$   ÚCloughTocher2DInterpolatorrw   r   ÚAssertionErrorÚprintÚabsr¾   )r'   r½   r(   r³   Ú	alternater]   ÚkwÚrngrJ   ÚpÚaÚbs               r   Ú_check_accuracyz.TestCloughTocher2DInterpolator._check_accuracy  sN  € ä�i‰i×#Ñ# DÓ)ˆàˆ9Ü—‘ò &ô  %ô&ˆAñ
 Ü×4Ñ4°Q¹¸QºqÀ¸s¹VÀQÂqÈÀsÁVÓ8LØ9=ÀwôP‰Bô ×4Ñ4°aº¸!¸±f¸aÂÀ!À¹fÐ5EÙ59¸!ºA¸a¸C¹&À!ÂAÀaÀCÁ&Ó5IØ9=ÀwôPˆBð �H‰H�R˜‹OˆáÙ�1“‰Aá�1’Q�q�S‘6˜1šQ˜q˜S™6Ó"ˆAÙ�’1�Q�3‘˜š1˜Q˜3™Ó ˆð	Ü˜A˜qÑ' BÓ'øÜò 	ÜÐ.´°A¸±E³
Ô;Ü�*˜bŸg™gÔ&Øð	ús   Ã:D Ä9Ec                 ó  — d„ d„ d„ d„ g}t        |«      D ]m  \  }}| j                  |dddd|› �¬«       | j                  |dddd	d
|› �¬«       | j                  |dddd|› �d	¬«       | j                  |dddd	d	d|› �¬«       Œo y )Nc                 ó   — d| z  dz   S r§   rA   r¨   s     r   r©   zFTestCloughTocher2DInterpolator.test_linear_smoketest.<locals>.<lambda>,  s   € ˜˜1™˜q™€ r   c                 ó   — d| z   S r«   rA   r¨   s     r   r©   zFTestCloughTocher2DInterpolator.test_linear_smoketest.<locals>.<lambda>-  s
   € ˜˜Q™€ r   c                 ó   — d|z   S r­   rA   r¨   s     r   r©   zFTestCloughTocher2DInterpolator.test_linear_smoketest.<locals>.<lambda>.  s
   € ˜˜a™€ r   c                 ó   — dd| z  z   d|z  z   S r°   rA   r¨   s     r   r©   zFTestCloughTocher2DInterpolator.test_linear_smoketest.<locals>.<lambda>/  s   € ˜˜Q˜q™S™ 5¨¡7Ñ*€ r   g‚vIhÂ%<=gH¯¼šò×z>ú	Function ©r³   r¶   rµ   r·   TzFunction (alternate) )r³   r¶   rµ   rÒ   r·   zFunction (rescaled) ©r³   r¶   rµ   r·   r]   zFunction (alternate, rescaled) )r³   r¶   rµ   rÒ   r]   r·   ©r¹   rØ   ©r'   r»   r¼   r½   s       r   Útest_linear_smoketestz4TestCloughTocher2DInterpolator.test_linear_smoketest)  sÕ   € ñ !ÙÙÙ*ð	
ˆô ! Ó'ò 	‰GˆAˆtØ× Ñ Ø˜% d°ÀÈ1È#¸ð !ô ð × Ñ Ø˜% d°ÀØ/°¨sÐ3ð !ô ð
 × Ñ Ø˜% d°Ø.¨q¨cÐ2¸Dð !ô ð × Ñ Ø˜% d°ÀÈtØ9¸!¸Ð=ð !õ ñ	r   c           	      ó¤   — d„ d„ d„ d„ g}t        |«      D ]8  \  }}| j                  |dddd|› �¬	«       | j                  |dddd|› �d
¬«       Œ: y )Nc                 ó   — | dz  S ©Nr@   rA   r¨   s     r   r©   zITestCloughTocher2DInterpolator.test_quadratic_smoketest.<locals>.<lambda>G  ó
   € ˜˜A™€ r   c                 ó   — |dz  S ræ   rA   r¨   s     r   r©   zITestCloughTocher2DInterpolator.test_quadratic_smoketest.<locals>.<lambda>H  rç   r   c                 ó   — | dz  |dz  z
  S ræ   rA   r¨   s     r   r©   zITestCloughTocher2DInterpolator.test_quadratic_smoketest.<locals>.<lambda>I  ó   € ˜˜A™  1¡™€ r   c                 ó   — | |z  S r€   rA   r¨   s     r   r©   zITestCloughTocher2DInterpolator.test_quadratic_smoketest.<locals>.<lambda>J  ó
   € ˜˜1™€ r   ç•Ö&è.>g)\�Âõ(Ì?r   rÞ   rß   Trà   rá   râ   s       r   Útest_quadratic_smoketestz7TestCloughTocher2DInterpolator.test_quadratic_smoketestD  s~   € ñ ÙÙ$Ùð	
ˆô ! Ó'ò 	‰GˆAˆtØ× Ñ Ø˜$ T°¸YÀqÀc¸?ð !ô ð × Ñ Ø˜$ T°¸YÀqÀc¸?ÐTXð !õ ñ		r   c                 ó@  — t        j                  g d¢t         j                  ¬«      }t        j                  |j                  d   t         j                  ¬«      }|d|z  z
  }t        j                  |«      } t        j                  ||«      |«      }t        ||«       y r0   )
r   r    r!   r"   r#   r4   r5   r$   rÎ   r   )r'   r(   r)   r6   r*   s        r   r8   z-TestCloughTocher2DInterpolator.test_tri_inputU  st   € ä�H‰HÒNÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆØ��1‘‰Hˆä�n‰n˜QÓˆØ8ŒX×0Ñ0°°aÓ8¸Ó;ˆÜ˜A˜rÕ"r   c                 ó�  — t        j                  g d¢t         j                  ¬«      }t        j                  |j                  d   t         j                  ¬«      }|d|z  z
  }t        j                  |«      }d}t        j                  t        |¬«      5   t        j                  ||d¬«      |«       d d d «       y # 1 sw Y   y xY wrj   )r   r    r!   r"   r#   r4   r5   rl   r   rm   r$   rÎ   rn   s        r   ro   z5TestCloughTocher2DInterpolator.test_tri_input_rescale`  s˜   € ä�H‰HÒ?ÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆØ��1‘‰Hˆä�n‰n˜QÓˆð9ˆä�]‰]œ:¨UÔ3ñ 	IØEŒH×/Ñ/°°QÀÔEÀaÔH÷	I÷ 	Iñ 	Iúrp   c                 ó¤  — t        j                  g d¢t         j                  ¬«      }t        j                  |j                  d   t         j                  ¬«      }|d|z  z
  }t        j                  |«      } t        j                  |j                  |«      |«      } t        j                  |j                  |d¬«      |«      }t        ||«       y re   )r   r    r!   r"   r#   r4   r5   r$   rÎ   rR   r   rf   s         r   rh   z;TestCloughTocher2DInterpolator.test_tripoints_input_rescalem  s™   € ä�H‰HÒ?ÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆØ��1‘‰Hˆä�n‰n˜QÓˆØ?ŒX×0Ñ0°·±¸QÓ?ÀÓBˆØU”X×8Ñ8¸¿¹ÀQÐPTÔUÐVWÓXˆ
Ü˜B 
Õ+r   r[   c           
      ój  — d„ d„ d„ d„ d„ g}t         j                  j                  d«      }t         j                  t        j                  g d¢t
        ¬«      |j                  d	d
«      f   }t        |«      D ]:  \  }}| j                  ||dddd|› �¬«       | j                  ||dddd|› �d¬«       Œ< y )Nc                 ó   — | dz  S ræ   rA   r¨   s     r   r©   z;TestCloughTocher2DInterpolator.test_dense.<locals>.<lambda>}  rç   r   c                 ó   — |dz  S ræ   rA   r¨   s     r   r©   z;TestCloughTocher2DInterpolator.test_dense.<locals>.<lambda>~  rç   r   c                 ó   — | dz  |dz  z
  S ræ   rA   r¨   s     r   r©   z;TestCloughTocher2DInterpolator.test_dense.<locals>.<lambda>  rê   r   c                 ó   — | |z  S r€   rA   r¨   s     r   r©   z;TestCloughTocher2DInterpolator.test_dense.<locals>.<lambda>€  rì   r   c                 ó¨   — t        j                  dt         j                  z  | z  «      t        j                  dt         j                  z  |z  «      z  S ræ   )r   ÚcosÚpiÚsinr¨   s     r   r©   z;TestCloughTocher2DInterpolator.test_dense.<locals>.<lambda>�  s5   € œŸ™ ¤"§%¡%¡¨¡	Ó*¬2¯6©6°!´B·E±E±'¸!±)Ó+<Ñ<€ r   iá  )r   r:   r<   r;   r   i„  r@   rí   g{®Gázt?g{®Gáz„?rÞ   )r(   r³   r¶   rµ   r·   T)r(   r³   r¶   rµ   r·   r]   )	r   ru   rÍ   Úr_r    r¸   rw   r¹   rØ   )r'   r»   rÔ   Úgridr¼   r½   s         r   Ú
test_densez)TestCloughTocher2DInterpolator.test_densey  sÌ   € ñ ÙÙ$ÙÙ<ð
ˆô �i‰i×#Ñ# DÓ)ˆÜ�u‰u”R—X‘XÒ:Ä%ÔHØ—X‘X˜e QÓ'ð(ñ )ˆô ! Ó'ò 	‰GˆAˆtØ× Ñ Ø˜ $¨T¸È	ÐRSÐQTÀoð !ô ð × Ñ Ø˜ $¨T¸Ø# A 3˜°ð !õ ñ		r   c                 óÂ   — t         j                  j                  dd«      }t         j                  j                  d«      }t        t        t
        j                  ||«       y )Nrt   r?   )r   ru   ÚrandnÚassert_raisesrm   r$   rÎ   )r'   r(   r)   s      r   Útest_wrong_ndimz.TestCloughTocher2DInterpolator.test_wrong_ndim‘  s<   € Ü�I‰I�O‰O˜B Ó"ˆÜ�I‰I�O‰O˜BÓˆÜ”j¤(×"EÑ"EÀqÈ!ÕLr   c                 ób  — t         j                  j                  d«      }|j                  dd«      }|j                  d«      d|j                  d«      z  z   }t	        j
                  ||«      }t        j                  t        j                  |«      «      }t         |dd«       |dd«      «       y rr   )
r   ru   rÍ   rw   r$   rÎ   rx   ry   rz   r   )r'   rÔ   r(   r)   rJ   r{   s         r   r|   z*TestCloughTocher2DInterpolator.test_pickle–  s‚   € ä�i‰i×#Ñ# DÓ)ˆØ�H‰H�R˜‹OˆØ�H‰H�R‹L˜2˜cŸh™h r›l™?Ñ*ˆä×0Ñ0°°AÓ6ˆÜ�l‰lœ6Ÿ<™<¨Ó+Ó,ˆä™B˜s C›L©#¨c°3«-Õ8r   c                 ó@  — t        j                  dddt        j                  d«      dz  fg«      }t        j                  g d¢«      }t        j                  ||«      }d|j
                  d<   d	}t        j                  dt        j                  |«      z  dt        j                  |«      z  g«      }t        j                  dt        j                  t         j                  dz  |z
  «      z  dt        j                  t         j                  dz  |z
  «      z  g«      } ||«      } ||«      }t        ||«       t         j                  j                  d
«      }	|	j                  dd«      }
|	j                  d«      }|
j                  |j                  «      j                  |d d d …f   z   }|
j                  |«      |z   }|
j                  |«      |z   }t        j                  ||«      }d|j
                  d<    ||«      } ||«      }t        ||«       t        ||«       y )Nr   r<   r   r?   r@   )r-   r   r   r   .r   r-   )r   r    Úsqrtr$   rÎ   r¾   rø   rú   rù   r   ru   rÍ   rÿ   ÚdotrP   )r'   rR   rI   rJ   ÚalphaÚp1Úp2Úv1Úv2rÔ   ÚAr×   Úw1Úw2s                 r   Útest_boundary_tri_symmetryz9TestCloughTocher2DInterpolator.test_boundary_tri_symmetry¡  s­  € ô
 —‘˜6 6¨C´·±¸³¸A±Ð+>Ð?Ó@ˆÜ—‘š)Ó$ˆä×0Ñ0°¸Ó@ˆð ˆ�‰�‰ð ˆÜ�X‰X�sœRŸV™V E›]Ñ*¨C´"·&±&¸³-Ñ,?Ð@ÓAˆÜ�X‰X�sœRŸV™V¤B§E¡E¨!¡G¨e¡OÓ4Ñ4°c¼B¿F¹FÄ2Ç5Á5ÈÁ7ÈUÁ?Ó<SÑ6SÐTÓUˆá�‹VˆÙ�‹VˆÜ˜˜BÔô �i‰i×#Ñ# AÓ&ˆØ�I‰I�a˜‹OˆØ�I‰I�a‹Lˆà—‘�v—x‘x“×"Ñ" Q tªA v¡YÑ.ˆØ�U‰U�2‹Y˜‰]ˆØ�U‰U�2‹Y˜‰]ˆä×0Ñ0°¸Ó@ˆØˆ�‰�‰á�‹VˆÙ�‹VˆÜ˜˜BÔÜ˜˜BÕr   )Nr²   FF)r™   rš   r›   rØ   rã   rî   r8   ro   rh   rl   rœ   Ú	fail_slowrý   r  r|   r  rA   r   r   rÊ   rÊ     s[   „ à@EØ %óòBò6ò"	#òIò
,ð ‡[�[×Ñ˜1Óñó ðò.Mò
	9ó% r   rÊ   Úsimplex_tolerancer-   ra   Úinterpolation_classc           	      óü  — t        j                  dt        j                  dd«      t        j                  d«      dgdt        j                  d«      t        j                  dd«      dgg«      }t        j                  d«      } | |j
                  |«      } |t         j                  dd…dd…f   j
                  |¬«      }t        j                  t        j                  |«      «      }|d	k(  r|dkD  sJ ‚y|dk(  sJ ‚y)
z`Test that SciPy can interpolate to a regular grid from the boundary.

    Based on gh-21910
    r   i�  iô  r`   i   éÊ   N©r  r-   )	r   Úblockr"   ÚzerosÚonesrP   r�   Úcount_nonzeroÚisnan)r  r  ÚcoordsrI   r7   ÚresultsÚnum_nanss          r   Útest_interp_from_boundaryr  É  sÞ   € ô �X‰XØ
ŒR�Y‰Y�s˜CÓ ¤"§(¡(¨3£-°Ð	5Ø
ŒR�X‰X�c‹]œBŸI™I c¨3Ó/°Ð	5ð	7ó€Fô �W‰W�S‹\€FÙ& v§x¡x°Ó8€LÙÜ
�‰��#��t˜�t�Ñ×ÑÐ2Cô€Gô ×Ñ¤§¡¨Ó 1Ó2€HØ˜AÒð ˜!Š|Ð‰|ð ˜1Š}Ð‰}r   Úinterpolator_factoryc                 ó4  — t        j                  ddgddgddgg«      }t        j                  t        |«      «      } |||«      }d}|d   }|d   }||||z
  z  z   } ||d| iŽ}	| d	k(  rt        j                  |	«      sJ ‚y
t        j
                  |	«      sJ ‚y
)zVTest that SciPy can interpolate to the edge of a triangle.

    Based on gh-22831
    g        góÂN±j€?g      @g       Àr¥   r   r@   r  r-   N)r   r    r  Úlenr  Úisfinite)
r  r  ÚinputsrI   r7   rB   r  r  Úpoint_on_edgeÚvalues
             r   Ú2test_reproduction_NaN_on_points_linear_combinationr%  ç  s±   € ô �X‰X˜ RÐ/Ø HÐ-Ø 3Ð.ð0ó 1€Fô �W‰W”S˜“[Ó!€Fá'¨°Ó7€LØ	€BØ	�‰€BØ	�‰€BØ˜˜r B™w™Ñ'€MÙ˜-ÐMÐ;LÑM€EØ˜AÒÜ�x‰x˜ŒÐ‰ä�{‰{˜5Ô!Ð!Ñ!r   c                 óX  — t        j                  ddgddgddgddgg«      }t        j                  |d	d	…d
f   «      } |||«      } ||| ¬«      }| dk(  r+t        j                  t        j                  |«      «      sJ ‚y	t        j
                  t        j                  |«      «      sJ ‚y	)zŠTest that SciPy can interpolate to the input points.

    Based on gh-21279.
    Should probably be generalized to a hypothesis test.
    g€4É;þq¿gB@#V¯çÕ?g4k|ÿ�Y¿g««v;e[Í?g4™á MÕW¿g«g
¤ÏÌ?gšgd)‰ÊW¿g­í	1QÌ?Nr   r  r-   )r   r    Ú	ones_likeÚanyr  Úallr!  )r  r  r"  rI   r7   r  s         r   Ú%test_reproduction_NaN_on_input_pointsr*    s¬   € ô �X‰XÐ-Ð/AÐBØ.Ð0BÐCØ.Ð0CÐDØ.Ð0BÐCðEó F€Fô �\‰\˜&¢ A ™,Ó'€FÙ'¨°Ó7€LÙ˜6Ð5FÔG€GØ˜AÒÜ�v‰v”b—h‘h˜wÓ'Ô(Ð(Ñ(ä�v‰v”b—k‘k 'Ó*Ô+Ð+Ñ+r   )$r	   ÚsysrÄ   Únumpyr   rl   r   r   Úscipy._lib._array_apir   r   Úscipy._lib._testutilsr   Úscipy.interpolate._interpndÚinterpolateÚ	_interpndr$   Úscipy.spatial._qhullÚspatialÚ_qhullr4   rx   rŒ   ÚmaxsizerŸ   r   r   r¡   rÊ   rœ   Úparametrizer%   rÎ   r  r%  r*  rA   r   r   ú<module>r7     sq  ðÛ 	Û 
Û ã Ý *Û ß Få 3ß .Ð .ß $Ð $ã Û à�[‰[˜5Ñ €	ò*÷
@ñ @÷F'Jñ 'J÷T@ ñ @ ðF ‡�×ÑÐ,¨q°"¨gÓ6Ø‡�×ÑØØ×"Ñ" H×$GÑ$GÐHóñó	ó 7ð
ð2 ‡�×ÑÐ,¨q°"¨gÓ6Ø‡�×ÑØØ×(Ñ(¨(×*GÑ*GÐHóñ"ó	ó 7ð
"ð. ‡�×ÑÐ,¨q°"¨gÓ6Ø‡�×ÑØØ×(Ñ(¨(×*GÑ*GÐHóñ,ó	ó 7ñ
,r   