§
    µ³Ùg¹<  ã                   óø   — d dl Z d dlZd dlZd dlm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dS )é    N)Úsuppress_warnings)Úraises)Úxp_assert_closeÚassert_almost_equal)Úcheck_free_memoryl        c                 óÂ   — t           j                             t           j                             t           j                             t
          ¦  «        ¦  «        d| ¦  «        S )NÚdata)ÚosÚpathÚjoinÚabspathÚdirnameÚ__file__)Úbasenames    ú[/granary/edev/quantum/lib/python3.11/site-packages/scipy/interpolate/tests/test_interpnd.pyÚ	data_filer      s=   € ÝŒ7�<Š<�œŸš­¬¯ª½Ñ(AÔ(AÑBÔ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j                             ed¬¦  «        d„ ¦   «         ¦   «         ¦   «         ZdS )ÚTestLinearNDInterpolationc                 óü   — t          j        g d¢t           j        ¬¦  «        }t          j        |j        d         t           j        ¬¦  «        } t          j        ||¦  «        |¦  «        }t          ||¦  «         d S )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   st   € åŒHÐNÐNÐNÝœ:ð'ñ 'ô 'ˆåŒI�a”g˜a”j­¬
Ð3Ñ3Ô3ˆà0�XÔ*¨1¨aÑ0Ô0°Ñ3Ô3ˆÝ˜A˜rÑ"Ô"Ð"Ð"Ð"r   c                 óR  — 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          ||¦  «         d S )Nr   r   r   é   r   r'   s       r   Útest_smoketest_alternatez2TestLinearNDInterpolation.test_smoketest_alternate#   s«   € åŒHÐNÐNÐNÝœ:ð'ñ 'ô 'ˆåŒI�a”g˜a”j­¬
Ð3Ñ3Ô3ˆà?�XÔ*¨A¨a¨a¨a°¨c¬F°A°a°a°a¸°c´FÐ+;¸QÑ?Ô?ÀÀ!À!À!ÀAÀ#ÄÈÈ!È!È!ÈAÈ#ÌÑOÔOˆÝ˜A˜rÑ"Ô"Ð"Ð"Ð"r   c                 ó  — t          j        g d¢t           j        ¬¦  «        }t          j        |j        d         t           j        ¬¦  «        }|d|z  z
  } t          j        ||¦  «        |¦  «        }t          ||¦  «         d S ©Nr   r   r   ù              @r   r'   s       r   Útest_complex_smoketestz0TestLinearNDInterpolation.test_complex_smoketest,   s�   € åŒHÐNÐNÐNÝœ:ð'ñ 'ô 'ˆåŒI�a”g˜a”j­¬
Ð3Ñ3Ô3ˆØ��1‘‰Hˆà0�XÔ*¨1¨aÑ0Ô0°Ñ3Ô3ˆÝ˜A˜rÑ"Ô"Ð"Ð"Ð"r   c                 óN  — t          j        g d¢t           j        ¬¦  «        }t          j        |j        d         t           j        ¬¦  «        }|d|z  z
  }t          j        |¦  «        }t          j        ||¦  «        } ||¦  «        }t          ||¦  «         |j
        |u sJ ‚d S r1   )r    r!   r"   r#   r$   ÚqhullÚDelaunayr%   r&   r   Útri)r(   r)   r*   r7   Úinterpolatorr+   s         r   Útest_tri_inputz(TestLinearNDInterpolation.test_tri_input6   s§   € åŒHÐNÐNÐNÝœ:ð'ñ 'ô 'ˆåŒI�a”g˜a”j­¬
Ð3Ñ3Ô3ˆØ��1‘‰HˆåŒn˜QÑÔˆÝÔ4°S¸!Ñ<Ô<ˆØˆ\˜!‰_Œ_ˆÝ˜A˜rÑ"Ô"Ð"ØÔ 3Ð&Ð&Ð&Ð&Ð&Ð&r   c                 ó\  ‡— 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         ¦  «        \  }}|                     ¦   «         }|                     ¦   «         }t          j        ||g¦  «        j                             ¦   «         } t          j	        |‰¦  «        |¦  «        }t          | |||¦  «        ¦  «         d S )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(   ÚpointsrK   ÚxxÚyyÚxiÚzirJ   s          @r   Útest_squarez%TestLinearNDInterpolation.test_squareC   s%  ø€ õ ”Ð6Ð6Ð6½b¼jÐIÑIÔIˆÝ”Ð+Ð+Ð+µ2´:Ð>Ñ>Ô>ˆð	ð 	ð 	ð 	ð 	õ* Ô$¥R¤[°°A°rÑ%:Ô%:¸1¸1¸1¸T¸6Ô%BÝ%'¤[°°A°rÑ%:Ô%:¸4ÀÀÀ¸6Ô%BñDô D‰ˆˆBà�XŠX‰ZŒZˆØ�XŠX‰ZŒZˆåŒ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          ||¦  «         d S )N©r   )éûÿÿÿr[   )r[   é   )r\   r\   )g      @r@   r   r   T©Úrescaler   r'   s       r   Útest_smoketest_rescalez0TestLinearNDInterpolation.test_smoketest_rescalep   sy   € åŒHÐBÐBÐBÝœ:ð'ñ 'ô 'ˆåŒI�a”g˜a”j­¬
Ð3Ñ3Ô3ˆà>�XÔ*¨1¨a¸Ð>Ñ>Ô>¸qÑAÔAˆÝ˜A˜rÑ"Ô"Ð"Ð"Ð"r   c                 ó|  — 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         ¦  «        \  }}|                     ¦   «         }|                     ¦   «         }t          j        ||g¦  «        j                             ¦   «         } t          j	        ||¦  «        |¦  «        } t          j	        ||d¬	¦  «        |¦  «        }t          ||¦  «         d S )
N)r   )r   éd   )é
   ra   )rb   r   r   r>   r   rb   rL   ra   Tr]   rM   )r(   rS   rJ   rT   rU   rV   rW   Úzi_rescaleds           r   Útest_square_rescalez-TestLinearNDInterpolation.test_square_rescaley   s0  € õ ”Ð<Ð<Ð<ÅBÄJÐOÑOÔOˆÝ”Ð+Ð+Ð+µ2´:Ð>Ñ>Ô>ˆåÔ$¥R¤[°°B¸Ñ%;Ô%;¸A¸A¸A¸d¸FÔ%CÝ%'¤[°°C¸Ñ%<Ô%<¸TÀ!À!À!¸VÔ%DñFô F‰ˆˆBà�XŠX‰ZŒZˆØ�XŠX‰ZŒZˆÝŒX�r˜2�hÑÔÔ!×&Ò&Ñ(Ô(ˆØ:�XÔ*¨6°6Ñ:Ô:¸2Ñ>Ô>ˆð•hÔ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          ||¦  «         d S ©NrZ   r   r   r2   Tr]   )r    r!   r"   r#   r$   r5   r6   r%   r&   rS   r   ©r(   r)   r*   r7   r+   Ú
yi_rescales         r   Útest_tripoints_input_rescalez6TestLinearNDInterpolation.test_tripoints_input_rescale‹   sÃ   € åŒHÐ?Ð?Ð?Ýœ:ð'ñ 'ô 'ˆåŒI�a”g˜a”j­¬
Ð3Ñ3Ô3ˆØ��1‘‰HˆåŒn˜QÑÔˆØ9�XÔ*¨3¬:°qÑ9Ô9¸!Ñ<Ô<ˆð•XÔ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 ¦  «         d S # 1 swxY w Y   d S ©	NrZ   r   r   r2   zORescaling is not supported when passing a Delaunay triangulation as ``points``.)ÚmatchTr]   )r    r!   r"   r#   r$   r5   r6   Úpytestr   Ú
ValueErrorr%   r&   ©r(   r)   r*   r7   rl   s        r   Útest_tri_input_rescalez0TestLinearNDInterpolation.test_tri_input_rescale˜   s  € åŒHÐ?Ð?Ð?Ýœ:ð'ñ 'ô 'ˆåŒI�a”g˜a”j­¬
Ð3Ñ3Ô3ˆØ��1‘‰HˆåŒn˜QÑÔˆð9ˆåŒ]�:¨UÐ3Ñ3Ô3ð 	Cð 	CØ?�HÔ)¨#¨q¸$Ð?Ñ?Ô?ÀÑBÔBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð 	Cð 	Có   Â!B5Â5B9Â<B9c                 óÆ  — t           j                             d¦  «         t           j                             dd¦  «        }t           j                             d¦  «        dt           j                             d¦  «        z  z   }t	          j        ||¦  «        }t          j        t          j        |¦  «        ¦  «        }t           |dd¦  «         |dd¦  «        ¦  «         d S ©NéÒ  é   rA   y              ð?r   )
r    ÚrandomÚseedÚrandr%   r&   ÚpickleÚloadsÚdumpsr   )r(   r)   r*   rK   Úip2s        r   Útest_picklez%TestLinearNDInterpolation.test_pickle¥   s«   € å
Œ	�Š�tÑÔÐÝŒI�NŠN˜2˜qÑ!Ô!ˆÝŒI�NŠN˜2ÑÔ ¥B¤I§N¢N°2Ñ$6Ô$6Ñ!6Ñ6ˆåÔ*¨1¨aÑ0Ô0ˆÝŒl�6œ<¨Ñ+Ô+Ñ,Ô,ˆå˜B˜B˜s C™LœL¨#¨#¨c°3©-¬-Ñ8Ô8Ð8Ð8Ð8r   zit fails on 32-bit)Úreasonc           	      óp  — t          d¦  «         t          j        ddd¦  «        }t          j        ddd¦  «        }t          j        ||¦  «        \  }}d„ }t          j        |                     ¦   «         |                     ¦   «         f¦  «        j        }||z                       ¦   «         }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¬¦  «        }|	                     ¦   «          |
                     ¦   «          |                     ¦   «          |                     ¦   «          |	                     ¦   «          |
                     ¦   «          |                     ¦   «          |                     ¦   «          d S )Ni'  r   ih  rb   c                 óN   — t           j        ||f         \  }} | ||f¦  «        }|S ©N)r    Úmgrid)r8   Ú
slice_rowsÚ
slice_colsÚgrid_xÚgrid_yÚress         r   Ú	do_interpz;TestLinearNDInterpolation.test_threading.<locals>.do_interp¼   s0   € ÝœX j°*Ð&<Ô=‰NˆF�FØ�, ¨Ð/Ñ0Ô0ˆCØˆJr   i4  )ÚtargetÚargs)r   r    r#   ÚmeshgridÚvstackrP   rQ   r%   r&   Ú	threadingÚThreadÚsliceÚstartr   )r(   Úr_ticksÚ	phi_ticksÚr_gridÚphi_gridrˆ   rS   rJ   r8   Úworker_thread_1Úworker_thread_2Úworker_thread_3Úworker_thread_4s                r   Útest_threadingz(TestLinearNDInterpolation.test_threading°   s2  € õ 	˜%Ñ Ô Ð å”)˜A˜t RÑ(Ô(ˆÝ”I˜a  rÑ*Ô*ˆ	Ýœ; w°	Ñ:Ô:Ñˆ�ð	ð 	ð 	õ
 ”˜FŸLšL™NœN¨H¯NªNÑ,<Ô,<Ð=Ñ>Ô>Ô@ˆØ˜8Ñ#×*Ò*Ñ,Ô,ˆÝÔ4°V¸VÑDÔDˆå#Ô*ØØ¥ a¨¡¤µ°a¸±´Ð?ðAñ Aô Aˆõ $Ô*ØØ¥ d¨DÑ 1Ô 1µ5¸¸D±>´>ÐBðDñ Dô Dˆõ $Ô*ØØ¥ a¨¡¤µ°d¸DÑ0AÔ0AÐBðDñ Dô Dˆõ $Ô*ØØ¥ d¨DÑ 1Ô 1µ5¸¸tÑ3DÔ3DÐEðGñ Gô Gˆð 	×ÒÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐà×ÒÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐÐÐr   N)Ú__name__Ú
__module__Ú__qualname__r,   r/   r3   r9   rX   r_   rd   ri   rp   r}   rm   ÚmarkÚslowÚthread_unsafeÚskipifÚ	_IS_32BITr™   rB   r   r   r   r      s  € € € € € ð#ð #ð #ð#ð #ð #ð#ð #ð #ð'ð 'ð 'ð+,ð +,ð +,ðZ#ð #ð #ð-ð -ð -ð$,ð ,ð ,ðCð Cð Cð	9ð 	9ð 	9ð „[ÔØ„[ÔØ„[×Ò˜	Ð*>ÐÑ?Ô?ð'ð 'ñ @Ô?ñ Ôñ Ôð'ð 'ð 'r   r   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú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|z  ¬¦  «         Œ†d S )N)r   )r   rA   r=   )r.   rA   ©r   g      è?©g333333ã?gš™™™™™é?r   c                 ó   — d| z  dz   S ©Nr   r.   rB   ©r)   r*   s     r   ú<lambda>z>TestEstimateGradients2DGlobal.test_smoketest.<locals>.<lambda>æ   s   € ˜!˜A™# ™'€ r   r   c                 ó   — d| z   S ©Nr   rB   r©   s     r   rª   z>TestEstimateGradients2DGlobal.test_smoketest.<locals>.<lambda>ç   s
   € ˜!˜a™%€ r   r=   c                 ó   — d|z   S ©NéþÿÿÿrB   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,@rB   r©   s     r   rª   z>TestEstimateGradients2DGlobal.test_smoketest.<locals>.<lambda>é   s   € ˜!˜a ™c™' E¨!¡GÑ+€ r   )r@   r²   r   r.   ç�íµ ÷Æ°>)Útol)é   rA   gñhãˆµøä>zitem %d)ÚrtolÚatolÚerr_msg)
r    r!   Úfloatr5   r6   Ú	enumerater%   Úestimate_gradients_2d_globalr$   r   )	r(   r)   r7   ÚfuncsÚjÚfuncÚgradrI   Údzs	            r   r,   z,TestEstimateGradients2DGlobal.test_smoketestÞ   sD  € ÝŒHð @ð @ð @ÝGLðNñ Nô NˆåŒn˜QÑÔˆð
 "Ð! 6Ð*ØÐ Ð(Ø Ð  &Ð)Ø+Ð+¨ZÐ8ð	
ˆõ  )¨Ñ/Ô/ð 	Ið 	I‰OˆA‰|��dØ��Q�q�q�q˜�s”V˜Q˜q˜q˜q ˜sœVÑ$Ô$ˆAÝÔ6°s¸AÀ4ÐHÑHÔHˆBà”8˜vÒ%Ð%Ð%Ð%Ý˜B¥¤¨¡¤¨t°A°A°A¨vÔ 6¸¸2¹Ñ =Ø!%¨D¸)Àa¹-ðIñ Iô Ið Ið Ið	Ið 	Ir   c                 ó€  — t          j        t          d¦  «        ¦  «        }t           j                             |j        d         ¦  «        }t          j        |¦  «        }t          ¦   «         5 }| 	                    t          j        d¦  «         t          j        ||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzestimate_gradients_hang.npyr   z$Gradient estimation did not converger.   )Úmaxiter)r    Úloadr   rv   rx   r$   r5   r6   r   Úfilterr%   ÚGradientEstimationWarningr»   )r(   rS   rJ   r7   Úsups        r   Útest_regression_2359z2TestEstimateGradients2DGlobal.test_regression_2359ô   sü   € õ ”�Ð#@ÑAÔAÑBÔBˆÝ”—’ ¤¨Q¤Ñ0Ô0ˆÝŒn˜VÑ$Ô$ˆõ Ñ Ô ð 	J CØ�JŠJ•xÔ9Ø=ñ?ô ?ð ?åÔ1°#°vÀqÐIÑIÔIÐIð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jð 	Jð 	Js   Á.8B3Â3B7Â:B7N)rš   r›   rœ   r,   rÇ   rB   r   r   r£   r£   Ý   s:   € € € € € ðIð Ið Ið,Jð Jð Jð Jð Jr   r£   c                   ó�   — e Zd Z	 	 dd„Zd„ Zd„ Zd„ Zd„ Zd	„ Ze	j
                             d
¦  «        d„ ¦   «         Zd„ Zd„ Zd„ ZdS )ÚTestCloughTocher2DInterpolatorNr³   Fc           	      óú  — t           j                             d¦  «        }|€t          j        g d¢t          ¬¦  «        }|s7t          j        | ||d d …df         |d d …df         ¦  «        d|¬¦  «        }nLt          j        |d d …df         |d d …df         f ||d d …df         |d d …df         ¦  «        d|¬¦  «        }|                     dd	¦  «        }	|s ||	¦  «        }
n  ||	d d …df         |	d d …df         ¦  «        }
 ||	d d …df         |	d d …df         ¦  «        }	 t          |
|fi |¤Ž d S # t          $ r7 t          d
t          |
|z
  ¦  «        ¦  «         t          d|j        ¦  «         ‚ w xY w)Nrt   )r   r;   r=   r<   r¥   r¦   )r   gš™™™™™É?r   r   r.   r³   )r´   r^   é2   rA   z_check_accuracy: abs(a-b):zip.grad:)r    rv   ÚRandomStater!   r¹   r%   ÚCloughTocher2DInterpolatorrx   r   ÚAssertionErrorÚprintÚabsr¿   )r(   r¾   r)   r´   Ú	alternater^   ÚkwÚrngrK   ÚpÚaÚbs               r   Ú_check_accuracyz.TestCloughTocher2DInterpolator._check_accuracy  së  € åŒi×#Ò# DÑ)Ô)ˆàˆ9Ý”ð &ð &ð &õ  %ð&ñ &ô &ˆAð
 ð 	PÝÔ4°Q¸¸¸Q¸q¸q¸qÀ¸s¼VÀQÀqÀqÀqÈÀsÄVÑ8LÔ8LØ9=ÀwðPñ Pô PˆBˆBõ Ô4°a¸¸¸¸!¸´f¸aÀÀÀÀ!À¼fÐ5EØ59°T¸!¸A¸A¸A¸a¸C¼&À!ÀAÀAÀAÀaÀCÄ&Ñ5IÔ5IØ9=ÀwðPñ Pô PˆBð �HŠH�R˜‰OŒOˆàð 	#Ø��1‘”ˆAˆAà��1�Q�Q�Q�q�S”6˜1˜Q˜Q˜Q˜q˜Sœ6Ñ"Ô"ˆAØˆD��1�1�1�Q�3”˜˜1˜1˜1˜Q˜3œÑ Ô ˆð	Ý˜A˜qÐ'Ð' BÐ'Ð'Ð'Ð'Ð'øÝð 	ð 	ð 	ÝÐ.µ°A¸±E±
´
Ñ;Ô;Ð;Ý�*˜bœgÑ&Ô&Ð&Øð	øøøs   Ä)D9 Ä9AE:c                 ó4  — d„ d„ d„ d„ g}t          |¦  «        D ]}\  }}|                      |dddd|z  ¬¦  «         |                      |dddd	d
|z  ¬¦  «         |                      |dddd|z  d	¬¦  «         |                      |dddd	d	d|z  ¬¦  «         Œ~d S )Nc                 ó   — d| z  dz   S r¨   rB   r©   s     r   rª   zFTestCloughTocher2DInterpolator.test_linear_smoketest.<locals>.<lambda>(  s   € ˜˜1™˜q™€ r   c                 ó   — d| z   S r¬   rB   r©   s     r   rª   zFTestCloughTocher2DInterpolator.test_linear_smoketest.<locals>.<lambda>)  s
   € ˜˜Q™€ r   c                 ó   — d|z   S r®   rB   r©   s     r   rª   zFTestCloughTocher2DInterpolator.test_linear_smoketest.<locals>.<lambda>*  s
   € ˜˜a™€ r   c                 ó   — dd| z  z   d|z  z   S r±   rB   r©   s     r   rª   zFTestCloughTocher2DInterpolator.test_linear_smoketest.<locals>.<lambda>+  s   € ˜˜Q˜q™S™ 5¨¡7Ñ*€ r   g‚vIhÂ%<=gH¯¼šò×z>úFunction %d©r´   r·   r¶   r¸   TzFunction (alternate) %d)r´   r·   r¶   rÑ   r¸   zFunction (rescaled) %d©r´   r·   r¶   r¸   r^   z!Function (alternate, rescaled) %d)r´   r·   r¶   rÑ   r^   r¸   ©rº   r×   ©r(   r¼   r½   r¾   s       r   Útest_linear_smoketestz4TestCloughTocher2DInterpolator.test_linear_smoketest%  s  € ð !Ð ØÐØÐØ*Ð*ð	
ˆõ ! Ñ'Ô'ð 	Rð 	R‰GˆAˆtØ× Ò  ¨5°tÀ$Ø)6¸Ñ):ð !ñ <ô <ð <à× Ò  ¨5°tÀ$Ø+/Ø)BÀQÑ)Fð !ñ Hô Hð Hð × Ò  ¨5°tÀ$Ø)AÀAÑ)EÈtð !ñ Uô Uð Uà× Ò  ¨5°tÀ$Ø+/¸Ø)LÈqÑ)Pð !ñ Rô Rð Rð Rð	Rð 	Rr   c           	      óº   — d„ d„ d„ d„ g}t          |¦  «        D ]@\  }}|                      |dddd|z  ¬	¦  «         |                      |dddd|z  d
¬¦  «         ŒAd S )Nc                 ó   — | dz  S ©NrA   rB   r©   s     r   rª   zITestCloughTocher2DInterpolator.test_quadratic_smoketest.<locals>.<lambda>>  ó
   € ˜˜A™€ r   c                 ó   — |dz  S rå   rB   r©   s     r   rª   zITestCloughTocher2DInterpolator.test_quadratic_smoketest.<locals>.<lambda>?  ræ   r   c                 ó   — | dz  |dz  z
  S rå   rB   r©   s     r   rª   zITestCloughTocher2DInterpolator.test_quadratic_smoketest.<locals>.<lambda>@  ó   € ˜˜A™  1¡™€ r   c                 ó   — | |z  S r�   rB   r©   s     r   rª   zITestCloughTocher2DInterpolator.test_quadratic_smoketest.<locals>.<lambda>A  ó
   € ˜˜1™€ r   ç•Ö&è.>g)\�Âõ(Ì?r   rÝ   rÞ   Trß   rà   rá   s       r   Útest_quadratic_smoketestz7TestCloughTocher2DInterpolator.test_quadratic_smoketest;  s³   € ð ÐØÐØ$Ð$ØÐð	
ˆõ ! Ñ'Ô'ð 	Jð 	J‰GˆAˆtØ× Ò  ¨4°dÀØ)6¸Ñ):ð !ñ <ô <ð <à× Ò  ¨4°dÀØ)6¸Ñ):ÀDð !ñ Jô Jð Jð Jð	Jð 	Jr   c                 ó4  — t          j        g d¢t           j        ¬¦  «        }t          j        |j        d         t           j        ¬¦  «        }|d|z  z
  }t          j        |¦  «        } t          j        ||¦  «        |¦  «        }t          ||¦  «         d S r1   )
r    r!   r"   r#   r$   r5   r6   r%   rÍ   r   )r(   r)   r*   r7   r+   s        r   r9   z-TestCloughTocher2DInterpolator.test_tri_inputJ  s�   € åŒHÐNÐNÐNÝœ:ð'ñ 'ô 'ˆåŒI�a”g˜a”j­¬
Ð3Ñ3Ô3ˆØ��1‘‰HˆåŒn˜QÑÔˆØ8�XÔ0°°aÑ8Ô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 ¦  «         d S # 1 swxY w Y   d S rk   )r    r!   r"   r#   r$   r5   r6   rm   r   rn   r%   rÍ   ro   s        r   rp   z5TestCloughTocher2DInterpolator.test_tri_input_rescaleU  s  € åŒHÐ?Ð?Ð?Ýœ:ð'ñ 'ô 'ˆåŒI�a”g˜a”j­¬
Ð3Ñ3Ô3ˆØ��1‘‰HˆåŒn˜QÑÔˆð9ˆåŒ]�:¨UÐ3Ñ3Ô3ð 	Ið 	IØE�HÔ/°°QÀÐEÑEÔEÀaÑHÔHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Ið 	Ið 	Irq   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          ||¦  «         d S rf   )r    r!   r"   r#   r$   r5   r6   r%   rÍ   rS   r   rg   s         r   ri   z;TestCloughTocher2DInterpolator.test_tripoints_input_rescaleb  s·   € åŒHÐ?Ð?Ð?Ýœ:ð'ñ 'ô 'ˆåŒI�a”g˜a”j­¬
Ð3Ñ3Ô3ˆØ��1‘‰HˆåŒn˜QÑÔˆØ?�XÔ0°´¸QÑ?Ô?ÀÑBÔBˆØU•XÔ8¸¼ÀQÐPTÐUÑUÔUÐVWÑXÔXˆ
Ý˜B 
Ñ+Ô+Ð+Ð+Ð+r   r\   c           
      ó†  — d„ d„ d„ d„ d„ g}t           j                             d¦  «        }t           j        t          j        g d¢t
          ¬¦  «        |                     d	d
¦  «        f         }t          |¦  «        D ]B\  }}|                      ||dddd|z  ¬¦  «         |                      ||dddd|z  d¬¦  «         ŒCd S )Nc                 ó   — | dz  S rå   rB   r©   s     r   rª   z;TestCloughTocher2DInterpolator.test_dense.<locals>.<lambda>r  ræ   r   c                 ó   — |dz  S rå   rB   r©   s     r   rª   z;TestCloughTocher2DInterpolator.test_dense.<locals>.<lambda>s  ræ   r   c                 ó   — | dz  |dz  z
  S rå   rB   r©   s     r   rª   z;TestCloughTocher2DInterpolator.test_dense.<locals>.<lambda>t  ré   r   c                 ó   — | |z  S r�   rB   r©   s     r   rª   z;TestCloughTocher2DInterpolator.test_dense.<locals>.<lambda>u  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>v  s3   € �œ ¥"¤%¡¨¡	Ñ*Ô*­2¬6°!µB´E±'¸!±)Ñ+<Ô+<Ñ<€ r   iá  )r   r;   r=   r<   r   i„  rA   rì   g{®Gázt?g{®Gáz„?rÝ   )r)   r´   r·   r¶   r¸   T)r)   r´   r·   r¶   r¸   r^   )	r    rv   rÌ   Úr_r!   r¹   rx   rº   r×   )r(   r¼   rÓ   Úgridr½   r¾   s         r   Ú
test_densez)TestCloughTocher2DInterpolator.test_densen  s  € ð ÐØÐØ$Ð$ØÐØ<Ð<ð
ˆõ Œi×#Ò# DÑ)Ô)ˆÝŒu•R”XÐ:Ð:Ð:Å%ÐHÑHÔHØ—X’X˜e QÑ'Ô'ð(ô )ˆõ ! Ñ'Ô'ð 	Jð 	J‰GˆAˆtØ× Ò  ¨°4¸dÈØ)6¸Ñ):ð !ñ <ô <ð <à× Ò  ¨°4¸dÈØ)6¸Ñ):ÀDð !ñ Jô Jð Jð Jð	Jð 	Jr   c                 óÆ   — t           j                             dd¦  «        }t           j                             d¦  «        }t          t          t
          j        ||¦  «         d S )Nru   r@   )r    rv   ÚrandnÚassert_raisesrn   r%   rÍ   )r(   r)   r*   s      r   Útest_wrong_ndimz.TestCloughTocher2DInterpolator.test_wrong_ndimƒ  sG   € ÝŒI�OŠO˜B Ñ"Ô"ˆÝŒI�OŠO˜BÑÔˆÝ•j¥(Ô"EÀqÈ!ÑLÔLÐLÐLÐLr   c                 óŠ  — t           j                             d¦  «        }|                     dd¦  «        }|                     d¦  «        d|                     d¦  «        z  z   }t	          j        ||¦  «        }t          j        t          j        |¦  «        ¦  «        }t           |dd¦  «         |dd¦  «        ¦  «         d S rs   )
r    rv   rÌ   rx   r%   rÍ   ry   rz   r{   r   )r(   rÓ   r)   r*   rK   r|   s         r   r}   z*TestCloughTocher2DInterpolator.test_pickleˆ  sŸ   € åŒi×#Ò# DÑ)Ô)ˆØ�HŠH�R˜‰OŒOˆØ�HŠH�R‰LŒL˜2˜cŸhšh r™lœl™?Ñ*ˆåÔ0°°AÑ6Ô6ˆÝŒl�6œ<¨Ñ+Ô+Ñ,Ô,ˆå˜B˜B˜s C™LœL¨#¨#¨c°3©-¬-Ñ8Ô8Ð8Ð8Ð8r   c                 óR  — 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
                             d
¦  «        }	|	                     dd¦  «        }
|	                     d¦  «        }|
                     |j        ¦  «        j        |d d d …f         z   }|
                     |¦  «        |z   }|
                     |¦  «        |z   }t          j        ||¦  «        }d|j        d<    ||¦  «        } ||¦  «        }t          ||¦  «         t          ||¦  «         d S )Nr   r=   r   r@   rA   )r.   r   r   r   .r   r.   )r    r!   Úsqrtr%   rÍ   r¿   r÷   rù   rø   r   rv   rÌ   rþ   ÚdotrQ   )r(   rS   rJ   rK   ÚalphaÚp1Úp2Úv1Úv2rÓ   ÚArÖ   Úw1Úw2s                 r   Útest_boundary_tri_symmetryz9TestCloughTocher2DInterpolator.test_boundary_tri_symmetry“  sá  € õ
 ”˜6 6¨Cµ´¸±´¸A±Ð+>Ð?Ñ@Ô@ˆÝ”˜)˜)˜)Ñ$Ô$ˆåÔ0°¸Ñ@Ô@ˆð ˆŒ�‰ð ˆÝŒX�s�RœV E™]œ]Ñ*¨Cµ"´&¸±-´-Ñ,?Ð@ÑAÔAˆÝŒX�s�RœV¥B¤E¨!¡G¨e¡OÑ4Ô4Ñ4°c½B¼FÅ2Ä5ÈÁ7ÈUÁ?Ñ<SÔ<SÑ6SÐTÑUÔUˆàˆR�‰VŒVˆØˆR�‰VŒVˆÝ˜˜BÑÔÐõ Œi×#Ò# AÑ&Ô&ˆØ�IŠI�a˜‰OŒOˆØ�IŠI�a‰LŒLˆà—’�v”x‘”Ô" Q t¨A¨A¨A v¤YÑ.ˆØ�UŠU�2‰YŒY˜‰]ˆØ�UŠU�2‰YŒY˜‰]ˆåÔ0°¸Ñ@Ô@ˆØˆŒ�‰àˆR�‰VŒVˆØˆR�‰VŒVˆÝ˜˜BÑÔÐÝ˜˜BÑÔÐÐÐr   )Nr³   FF)rš   r›   rœ   r×   râ   rí   r9   rp   ri   rm   r�   Ú	fail_slowrü   r   r}   r  rB   r   r   rÉ   rÉ     sâ   € € € € € à@EØ %ðð ð ð ðBRð Rð Rð,Jð Jð Jð	#ð 	#ð 	#ðIð Ið Ið
,ð 
,ð 
,ð „[×Ò˜1ÑÔðJð Jñ ÔðJð(Mð Mð Mð
	9ð 	9ð 	9ð% ð % ð % ð % ð % r   rÉ   )r
   ÚsysÚnumpyr    Únumpy.testingr   rm   r   rÿ   Úscipy._lib._array_apir   r   Úscipy._lib._testutilsr   Úscipy.interpolate._interpndÚinterpolateÚ	_interpndr%   Úscipy.spatial._qhullÚspatialÚ_qhullr5   ry   r�   Úmaxsizer¡   r   r   r£   rÉ   rB   r   r   ú<module>r     s~  ðØ 	€	€	€	Ø 
€
€
€
à Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø *Ð *Ð *Ð *Ð *Ð *Ø €€€Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fà 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $à €€€Ø Ð Ð Ð àŒ[˜5Ò €	ð*ð *ð *ð
Að Að Að Að Añ Aô Að AðH"Jð "Jð "Jð "Jð "Jñ "Jô "Jð "JðJv ð v ð v ð v ð v ñ v ô v ð v ð v ð v r   