
    _MhŴ                     $   d dl Z d dlZd dlZd dlmZ d dlmZmZ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 d dlmZ d dlmZ d d	lmZ ej                            d
ej                  Z G d d          Z G d d          Z G d d          Z dS )    N)assert_warns)xp_assert_equalxp_assert_closeassert_array_almost_equal)skip_xp_invalid_arg)raises)RegularGridInterpolatorinterpnRectBivariateSplineNearestNDInterpolatorLinearNDInterpolator)matrix)ComplexWarning)_run_concurrent_barriermethodc                      e Zd Zd Zd Zd Zd Zed             Ze	j
                            dg d          d             Ze	j
                            d	e ej        g d
g dg dg          fe ej        g d          fg          d             Zd Zed             Zd Zd Zd Ze	j
                            d ej        g d          df ej        g d          df ej        g d          df ej        g d          df ej        g d          dfg          d             Zd Zd  Zd! Zd" Zd# Zd$ Zd% Zd& Ze	j
                            dd'd(g          d)             Zd* Zd+ Z d, Z!e	j
                            d-d.ej"        ej#        g          e	j
                            dd(d'g          d/                         Z$e	j
                            dd'd(g          d0             Z%e	j
                            dd'd(g          d1             Z&e	j
        '                    d2          ee	j
                            d3d4d5 fd6d7 fd8d9 fd:d; fg          d<                                     Z(d= Z)ed>             Z*e	j
        '                    d:          ed?                         Z+ee	j
                            d@dAdBg          dC                         Z,dD Z-e	j
                            dEej.        ej/        ej0        ej1        g          e	j
                            dFej.        ej/        g          dG                         Z2dH Z3e	j
        j4        dI             Z5d.S )JTestRegularGridInterpolatorc                    dgdz  }t          j        g d          }|d d t           j        t           j        t           j        f         }|t           j        d d t           j        t           j        f         }|t           j        t           j        d d t           j        f         }|t           j        t           j        t           j        d d f         }||dz  z   |dz  z   |dz  z   }||fS )N              ?      ?   
   d     npasarraynewaxisselfpointsvaluesvalues0values1values2values3s          `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/interpolate/tests/test_rgi.py_get_sample_4dz*TestRegularGridInterpolator._get_sample_4d   s    !#LLL))BJ
BJ>?QQQ
BJ>?RZBJ>?RZQQQ>?GbL(7S=87T>Iv~    c                    dgdz  dgdz  z   }t          j        g d          }|d d t           j        t           j        t           j        f         }|t           j        d d t           j        t           j        f         }|t           j        t           j        d d t           j        f         }|t           j        t           j        t           j        d d f         }||dz  z   |dz  z   |dz  z   }||fS Nr      )r         @      $@r   r   r   r   r!   s          r)   _get_sample_4d_2z,TestRegularGridInterpolator._get_sample_4d_2'   s    !#}o&99LLL))BJ
BJ>?QQQ
BJ>?RZBJ>?RZQQQ>?GbL(7S=87T>Iv~r+   c                    dgdz  }t          j        g d          }|d d t           j        t           j        t           j        f         }|t           j        d d t           j        t           j        f         }|t           j        t           j        d d t           j        f         }|t           j        t           j        t           j        d d f         }||dz  z   |dz  z   |dz  z   }||fS )Nr   r   r         ?       @      @      @r   r   r   r   r   r!   s          r)   _get_sample_4d_3z,TestRegularGridInterpolator._get_sample_4d_32   s    56:???@@BJ
BJ>?QQQ
BJ>?RZBJ>?RZQQQ>?GbL(7S=87T>Iv~r+   c                    dgdz  }t          j        ddg          }|d d t           j        t           j        t           j        f         }|t           j        d d t           j        t           j        f         }|t           j        t           j        d d t           j        f         }|t           j        t           j        t           j        d d f         }||dz  z   |dz  z   |dz  z   }||fS )N)r   r   r   r   r   r   r   r   r   r!   s          r)   _get_sample_4d_4z,TestRegularGridInterpolator._get_sample_4d_4=   s    !S#J''BJ
BJ>?QQQ
BJ>?RZBJ>?RZQQQ>?GbL(7S=87T>Iv~r+   c                 J   |                                  \  }}t          j        g dg dg dg          }t          ||                                |          } ||                                          }t          |||          } ||          }t          ||           d S )N皙?r=   r   ?皙?r=   g?g?r   r   r   r   r   )r8   r   r   r	   tolistr   )r"   r   r#   r$   sampleinterpv1v2s           r)   test_list_inputz+TestRegularGridInterpolator.test_list_inputH   s    ..00///1D1D1D///1 2 2 ))/068 8 8 VFMMOO$$()/068 8 8 VF^^Br+   r   )cubicquinticpchipc                    |                                  \  }}d}t          j        t          |          5  t	          |||           d d d            n# 1 swxY w Y   t	          ||          }t          j        g dg dg dg          }t          j        t          |          5   |||           d d d            d S # 1 swxY w Y   d S )Nzpoints in dimensionmatchrB   r<   r?   rA   )r:   pytestr   
ValueErrorr	   r   r   )r"   r   r#   r$   rN   rE   rD   s          r)   test_spline_dim_errorz1TestRegularGridInterpolator.test_spline_dim_errorY   s~   ..00% ]:U333 	C 	C#FF6BBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C )88///1D1D1D///1 2 2]:U333 	* 	*F6&))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s#   AAA'CC	Czpoints_values, sampler<   r?   rA   r=   r=   r0         "@c                      ||           \  }}t          ||d          } ||          }t          ||d          } ||          }t          ||           d S )NlinearrB   slinear)r	   r   )r"   points_valuesrD   r#   r$   rE   rF   rG   s           r)   test_linear_and_slinear_closez9TestRegularGridInterpolator.test_linear_and_slinear_closei   so     't,,(IIIVF^^(	JJJVF^^Br+   c                 *   |                                  \  }}t          j        g dg dg dg          }t          ||d          }t	          t
                    5   ||d           d d d            n# 1 swxY w Y   t           ||d          t          j        g d	          d
           t           ||d          t          j        g d          d
           t           ||d          t          j        g d          d           d S )Nr<   r?   rA   rV   rB      )nu)rZ   r   r   r   )r   rZ   rZ   V瞯<atol)r   rZ   r   r   )r0   r   r   )r   rZ   rZ   r   )r   r   r   g-=)r*   r   arrayr	   assert_raisesrP   r   r   )r"   r#   r$   rD   rE   s        r)   test_derivativesz,TestRegularGridInterpolator.test_derivatives   s   ,,..3333333335 6 6 )	JJJ:&& 	! 	!F6a    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	v,777
;;;//e	= 	= 	= 	=v,777
>>>22	@ 	@ 	@ 	@ 	v,777
;;;//e	= 	= 	= 	= 	= 	=s   A55A9<A9c                    |dk    rt          j        d           |                                 \  }}|d|z  z
  }t          j        g dg dg dg          }t          |||          }t          ||j        |          }t          ||j        |          } ||          } ||          d ||          z  z   }	t          ||	           d S )	NrK   *pchip does not make sense for complex data               @r<   r?   rA   rB                 ?)	rO   skipr8   r   r   r	   realimagr   )
r"   r   r#   r$   rD   rE   rinterpiinterprF   rG   s
             r)   test_complexz(TestRegularGridInterpolator.test_complex   s    WKDEEE..00"V)#///1D1D1D///1 2 2 )GGG)&&+fMMM)&&+fMMMVF^^WV__r''&//11Br+   c                    g dg d}}t          j        ||d          \  }} d ||          }t          ||f|d          }t          ||f|d          } |dd	g          } |dd	g          }	t          j        ||	d
d          rJ d S )N)rZ   r.      r   ij)indexingc                     | dz  |dz  z  S )Nr    xys     r)   <lambda>zATestRegularGridInterpolator.test_cubic_vs_pchip.<locals>.<lambda>   s    q!tad{ r+   rI   rB   rK   r4   r.   +=r   r^   rtol)r   meshgridr	   allclose)
r"   rs   rt   xgygr$   rI   rK   
vals_cubic
vals_pchips
             r)   test_cubic_vs_pchipz/TestRegularGridInterpolator.test_cubic_vs_pchip   s    ||\\\1QD111B***B33'AwGGG'AwGGGUC8__
UC8__
;z:EJJJJJJJJr+   c                     |                                  \  }}t          ||          }t          j        g d          }t          j        dg          }t	           ||          |           d S )NrR   H@r1   r	   r   r   r   r"   r#   r$   rE   rD   wanteds         r)   test_linear_xi1dz,TestRegularGridInterpolator.test_linear_xi1d   sk    ..00(88///00VH%%!&&..&99999r+   c                     |                                  \  }}t          ||          }t          j        g dg dg dg          }t          j        g d          }t	           ||          |           d S )Nr<   r?   rA   r   gq@g     \@r*   r	   r   r   r   r   s         r)   test_linear_xi3dz,TestRegularGridInterpolator.test_linear_xi3d   s    ,,..(88///1D1D1D///1 2 222233!&&..&99999r+   zsample, wanted)r=   r=   r>   r>   g     0@)r=   r=   r=   r=   r   r   r   r   r   r   r   r   r        \@)r=   皙?g333333?r>   g     |@c                     |                                  \  }}t          ||d          }t          j        |g          }t	           ||          |           d S )NnearestrB   r   )r"   rD   r   r#   r$   rE   s         r)   test_nearestz(TestRegularGridInterpolator.test_nearest   s\     ,,..(	JJJVH%%!&&..&99999r+   c                     |                                  \  }}t          ||          }t          j        g dg dg          }t          j        ddg          }t	           ||          |           d S )Nr   r   r   r   r   r   s         r)   test_linear_edgesz-TestRegularGridInterpolator.test_linear_edges   sy    ,,..(88---/?/?/?@AARK((!&&..&99999r+   c                    ddg}t          j        g d          }|d d t           j        f         }|t           j        d d f         }||dz  z   }t          t          t
          ||           ddg}t          t          t
          ||           ddg}t          t          t
          ||           g d}t          t          t
          ||           ddg}t          t          t
          ||d           d S )	Nr   )r   r   r   r   )r   )r   r   g      ?r   )r   r   r   undefmethodrB   )r   r   r    r`   rP   r	   )r"   r#   r$   r%   r&   s        r)   test_valid_createz-TestRegularGridInterpolator.test_valid_create   s    -LLL))BJ'QQQ'GbL(j"966JJJ"L1j"966JJJ#\2j"966JJJ;;;j"966JJJ-j"966*	, 	, 	, 	, 	, 	,r+   c                 v   |                                  \  }}t          ||          }t          j        g dg dg          }t	          t
          ||d           t          j        g dg dg          }t	          t
          ||           t          j        g dg dg          }t	          t
          ||           d S )Nr   r   r   )r   r   r   )r   r   r   )r   r   r   皙?)r*   r	   r   r   r`   rP   )r"   r#   r$   rE   rD   s        r)   test_valid_callz+TestRegularGridInterpolator.test_valid_call   s    ,,..(88---/?/?/?@AAj&&-@@@\\\<<<899j&&111---/@/@/@ABBj&&11111r+   c                 ^   |                                  \  }}t          ||dd           }t          j        g dg dg dg dg          }t          j        g d          }t	           ||d	          |           t          j        g d
          }t	           ||d	          |           d S )NFbounds_error
fill_value皙r   r   r   r   r   r   r       @皙ir   r   r   r   )r   r         &@r   r   rB   )gfffff[gfffff@g     grU   r   r   s         r)   test_out_of_bounds_extrapz5TestRegularGridInterpolator.test_out_of_bounds_extrap   s    ,,..(e48: : :1113G3G3G1113I3I3IK L L11122!&&	"B"B"BFKKK>>>??!&&"A"A"A6JJJJJr+   c                 ^   |                                  \  }}t          ||dd           }t          j        g dg dg dg dg          }t          j        g d          }t	           ||d	          |           t          j        g d
          }t	           ||d	          |           d S )NFr   r   r   r   r   )r   r   r   r   r   rB   )g333333(g33333`@g     gyXrU   r   r   s         r)   test_out_of_bounds_extrap2z6TestRegularGridInterpolator.test_out_of_bounds_extrap2   s    ..00(e48: : :1113G3G3G1113I3I3IK L L///00!&&	"B"B"BFKKK999::!&&"A"A"A6JJJJJr+   c                    |                                  \  }}t          ||dt          j                  }t          j        g dg dg dg          }t          j        t          j        t          j        t          j        g          }t           ||d          |           t           ||d          |           t          j        g d	g d
g dg          }t          j        g d          }t           ||          |           d S )NFr   r   r   r   r   rB   rU   r<   r?   rA   r   )r*   r	   r   nanr   r   r   s         r)   test_out_of_bounds_fillz3TestRegularGridInterpolator.test_out_of_bounds_fill  s&   ,,..(e46F< < <1113G3G3G3335 6 6RVRVRV455!&&	"B"B"BFKKK!&&"A"A"A6JJJ///1D1D1D///1 2 222233!&&..&99999r+   c                 |   |                                  \  }}t          ||d          }t          j        | }d |D             }t	          j        |          }|                    d          }t          ||          }t	          j        g dg dg dg          }t           ||           ||                     d S )Nr   rB   c                     g | ]}|S rq   rq   .0ps     r)   
<listcomp>zJTestRegularGridInterpolator.test_nearest_compare_qhull.<locals>.<listcomp>      000a000r+   r<   r?   rA   )	r*   r	   	itertoolsproductr   r   reshaper   r   r"   r#   r$   rE   points_qhullvalues_qhullinterp_qhullrD   s           r)   test_nearest_compare_qhullz6TestRegularGridInterpolator.test_nearest_compare_qhull  s    ,,..(	JJJ (&100<000z,//~~b)),\<HH///1D1D1D///1 2 2!&&..,,v2F2FGGGGGr+   c                 x   |                                  \  }}t          ||          }t          j        | }d |D             }t	          j        |          }|                    d          }t          ||          }t	          j        g dg dg dg          }t           ||           ||                     d S )Nc                     g | ]}|S rq   rq   r   s     r)   r   zITestRegularGridInterpolator.test_linear_compare_qhull.<locals>.<listcomp>&  r   r+   r   r<   r?   rA   )	r*   r	   r   r   r   r   r   r   r   r   s           r)   test_linear_compare_qhullz5TestRegularGridInterpolator.test_linear_compare_qhull"  s    ,,..(88 (&100<000z,//~~b))+L,GG///1D1D1D///1 2 2!&&..,,v2F2FGGGGGr+   r   rU   c                 .   t          j        ddd          }t          j        ddd          }t          d          }t          ||f||          } |dd	g          }t          ||f|j        |          } |dd	g          }t          ||d
           d S )Nr   r.      rZ      r   r   rB   r   ffffff?Fcheck_dtype)r   linspaceMyValuer	   _vr   )r"   r   rs   rt   r$   rE   rF   rG   s           r)   test_duck_typed_valuesz2TestRegularGridInterpolator.test_duck_typed_values.  s    K1a  K1a  (!QGGGVS#J(!Q6JJJVS#JBE222222r+   c                 D   t           j                            d           t          j        ddd          }t          j        ddd          }t           j                            dd          }t          ||f|d           t          t          t
          ||f|d           d S )	N  r   r.   r   rZ   r   r   y      ?       @)r   randomseedr   randr	   r`   rP   )r"   rs   rt   r$   s       r)   test_invalid_fill_valuez3TestRegularGridInterpolator.test_invalid_fill_value<  s    
	tK1a  K1a  1%% 	 A1==== 	j"9!ff	7 	7 	7 	7 	7 	7r+   c                     t          j        dd          }d |j        D             }t          ||           t          ||d           d S )Nr         z>f4dtypec                 6    g | ]}t          j        |          S rq   )r   arange)r   ns     r)   r   zCTestRegularGridInterpolator.test_fillvalue_type.<locals>.<listcomp>L  s     5551")A,,555r+   r   r   )r   onesshaper	   )r"   r$   r#   s      r)   test_fillvalue_typez/TestRegularGridInterpolator.test_fillvalue_typeI  sV    U33355555///2>>>>>>r+   c           
      h   d }t          j        ddd          }t          j        ddd          } |t          j        ||dd           }t          ||f|ddd	
          }t	           |t          j        ddgddgddgg                    t          j        g d          d           t	           |t          j        ddgddgddgg                    g dd           t	           |t          j        ddg                    |j        dddd           d |_        t	           |ddgddgg          ddgd           t	           |ddgddgg          ddgd           t          ||f|ddd 
          }t	           |ddgddgg          t          j        d d!g          d           d S )"Nc                     | |z   S Nrq   rr   s     r)   fz;TestRegularGridInterpolator.test_length_one_axis.<locals>.fU  s    q5Lr+   rZ   r   rn   Tro   sparserU   Fe   r   r   r   r   )r5         rv   r]   gffffff?333333@)333333@333333@r   r   r   )r   check_shapecheck_0dr^   333333?g      '@g?g      )@r\   r4   gffffff?r   g?gffffff@r7   r   )r   r   ry   r	   r   r_   r   r   )r"   r   rs   rt   datarE   s         r)   test_length_one_axisz0TestRegularGridInterpolator.test_length_one_axisQ  sU   	 	 	K1a  K2r""q"+aT$???@(!Qh6;M M M 	rx!Q!Q!R(ABBCC
<<<00"	$ 	$ 	$ 	$
 	rx!SAs8aW(EFFGG&"	$ 	$ 	$ 	$
 	rxc
3344)$)uu"	$ 	$ 	$ 	$ !C1d)455d%	1 	1 	1 	1 	c
S$K899d%	1 	1 	1 	1 )!Qi6;N N Nc
RI677
C8,,"	$ 	$ 	$ 	$ 	$ 	$r+   r   Nc                    |d|d}t          j        ddt           j        z  d          }t          j        |          }t	          |f|d d          fi |}t	          |dgf|d d d f         fi |}t          j        ddt           j        z  dz   d          } ||          }	t          j        d          }
 |t          j        ||
g          j                  }t          ||	           t          j	        d          }
 |t          j        ||
g          j                  }|t          ||	           d S t          |t          j
        ||                     d S )	NFr   r   r   r   r.   r   r   rZ   r   )r   r   pisinr	   zerosvstackTr   r   	full_like)r"   r   r   optionsrs   zfafbx1azay1bzbs               r)   test_length_one_axis2z1TestRegularGridInterpolator.test_length_one_axis2}  s`    ",U#% % K1RU7B''F1II$aT1QQQ4;;7;;$a!XqDzEEWEEk"agai--RWW hsmmR	3*%%'((B gcllR	3*%%'((B#####BR < <=====r+   c                    t          g dfg ddd|          }t          j         |t          j        g                    sJ t          j                            d          }|                    d          d	z  }|                    d          d
k    }t          j        ||<   t          j        d          5   ||          }d d d            n# 1 swxY w Y   t          j        ||                                                   sJ t          ||           |||                               g d}dg}t          j	        d          }t          ||f|dd|          }t          j        t          j         |t          j        dg                              sJ t          j        t          j         |dt          j        g                              sJ d S )N)rZ   r.   rm   r   rZ   Fr      lJ r   sizer   r   ignoreinvalid)rm   rZ   )
r	   r   isnanr   r   default_rngerrstateallr   r   )	r"   r   r   rngrs   iresrt   r   s	            r)   test_nan_x_1dz)TestRegularGridInterpolator.test_nan_x_1d  s    $YYYL,,,116vG G Gx26($$$$$ i##J//JJCJ  "JJCJ  3&v![*** 	 	
 !A$$C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 xA##%%%%%QB1aR5*** IIEwv#QFDQ16vG G Gvbhqq"&!~~../////vbhqq!RV~~..///////s   :CCCc                 ~   t          j        g d          t          j        g d          }}d }t          j        ||dd          \  }} |||          }t          ||f||d          }t          j        d	
          5   |dt           j        gddgg          }	d d d            n# 1 swxY w Y   t          |	d         dd           t          j        |	d                   sJ t           j        	                    d          }
|
                    d          dz  dz
  }|
                    d          dz  }|
                    d          dk    }|
                    d          dk    }||z  }t           j        ||<   t           j        ||<   t          j        ||g          j
        }t          j        d	
          5   ||          }	d d d            n# 1 swxY w Y   t          j        |	|                                                   sJ t          |	|           |||                    d           d S )N)r   rZ   r.   )rZ   rm   r   c                     | dz  |dz  z   S Nr.   rq   rr   s     r)   r   z4TestRegularGridInterpolator.test_nan_x_2d.<locals>.f  s    a4!Q$;r+   rn   Tr   Fr   r   r  r  r4   rZ   r5   rv   r]   r   r  r   r  r      r   r   )r   r_   ry   r	   r
  r   r   r  r   r	  r   r  r   )r"   r   rs   rt   r   r{   r|   r   rE   r  r  i1i2r  r   s                  r)   test_nan_x_2dz)TestRegularGridInterpolator.test_nan_x_2d  s   x			""BHYYY$7$71	 	 	 QD>>>BqRyy(!Q06UL L L [*** 	2 	2&3-!Q011C	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2A%0000xA i##J//JJCJ  "1$JJCJ  "ZZSZ!!C'ZZSZ!!C'G""HaV[*** 	 	
 &))C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 xA##%%%%%QB1"EBBBBBBs$   B))B-0B-GG"Gr   )ndimsfuncr.   c                 $    d| dz  z  d|dz  z  z   S Nr.   rm   rq   rr   s     r)   ru   z$TestRegularGridInterpolator.<lambda>  s    Q!Va!q&j0 r+   rm   c                 *    d| dz  z  d|dz  z  z   |z
  S r  rq   )rs   rt   r   s      r)   ru   z$TestRegularGridInterpolator.<lambda>  s     AQJQ!V3a7 r+   r   c                 0    d| dz  z  d|dz  z  z   |z
  |z   S r  rq   rs   rt   r   as       r)   ru   z$TestRegularGridInterpolator.<lambda>  s%    q16zAQJ6:Q> r+   r   c                 6    d| dz  z  d|dz  z  z   |z
  ||z  z   S r  rq   )rs   rt   r   r  bs        r)   ru   z$TestRegularGridInterpolator.<lambda>  s)    !a1f*q16z"9A"=A"E r+   c                    |dk    r|dv rt          j        d           t          j                            d          }dd|                    d|f          }fd	t          |          D             } |t          j        |d
dd }t          |||          } ||          }	d |D             }
 |t          j        |
d
dd }t          |
||          } ||          }t          |	|           d S )Nr   >   rI   rJ   z-too slow; OOM (quintic); or nearly so (cubic)*   rZ   r   r.   r  c                 <    g | ]}t          j        d           S )   )r   r   )r   _sample_high
sample_lows     r)   r   zITestRegularGridInterpolator.test_descending_points_nd.<locals>.<listcomp>  s7     3 3 3 ! K
KDD 3 3 3r+   rn   Tr   rB   c                 $    g | ]}|d d d         S )Nr   rq   )r   xis     r)   r   zITestRegularGridInterpolator.test_descending_points_nd.<locals>.<listcomp>  s"    AAA"R"XAAAr+   )
rO   rf   r   r   r	  uniformrangery   r	   r   )r"   r   r  r  r  test_pointsascending_pointsascending_valuesascending_interpascending_resultdescending_pointsdescending_valuesdescending_interpdescending_resultr'  r(  s                 @@r)   test_descending_points_ndz5TestRegularGridInterpolator.test_descending_points_nd  s    A::&$888KGHHHi##B''
kk*kE
kKK3 3 3 3 3%*5\\3 3 3  4.>6:48": ": ": ; 33C3C:@B B B ,+K88AA0@AAA D"+/@7;59#; #; #; < 44E4E;AC C C .-k::(*;<<<<<r+   c                 "   d }t          j        g d          }t          j        g d          }||f} |t          j        |ddd }d}t          j        t
          |          5  t          ||           d d d            d S # 1 swxY w Y   d S )	Nc                 $    d| dz  z  d|dz  z  z   S r  rq   rr   s     r)   val_func_2dzJTestRegularGridInterpolator.test_invalid_points_order.<locals>.val_func_2d  s    qAv:AF
**r+   r   r5   r         @      @r   r5   r7   r;  r<  rn   Tr   (must be strictly ascending or descendingrM   )r   r_   ry   rO   r   rP   r	   )r"   r9  rs   rt   r#   r$   rN   s          r)   test_invalid_points_orderz5TestRegularGridInterpolator.test_invalid_points_order  s    	+ 	+ 	+ H***++H***++Qbk6D157 7 7 8:]:U333 	4 	4#FF333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   &BBBc                     t          t          j        d          gt          j        d          |d          }t          j         |dg                    sJ d S )Nr   Fr  r   )r	   r   r   r   r  )r"   r   rE   s      r)   test_fill_valuez+TestRegularGridInterpolator.test_fill_value  sZ    (")A,,06UL L Lxt%%%%%%%r+   c                 ^   |dk    rt          j        d           dgdz  dgdz  z   }t          j                            d          }|                    d          }|                    d          }t          |||d	
          } ||          }|j        dk    s
J |            g }t          d          D ];}	t          ||d|	f         |d	
          }|                     ||                     <t          j	        |          
                    ddd          }
t          ||
d|           d S )NrJ   Way too slow.r   r   r   r4   r5   r6   r.   r   r/   r0         .@r         9@r   r   r   r   r   r  r   rm   r   Fr  r   rm   r  r  .rZ   r   rv   r^   err_msg)rO   rf   r   r   r	  r	   r   r,  appendr_   	transposer   )r"   r   r#   r  r$   rD   rE   vvsjrG   s              r)   test_nonscalar_valuesz1TestRegularGridInterpolator.test_nonscalar_values  s_    YK((( 11A5,9
9  i##D))O,,I&&(6;= = =F6NNw)###V###q 	& 	&A,VVCF^4::?A A AF IIffVnn%%%%Xb\\##Aq!,,2E6::::::r+   flip_pointsFTc           	         |dv rt          j        d           g d}|rd |D             }t          j                            d          }d}|                    ddd	d
g|R           }|                    d          }t          |||d          } ||          }	|	j        dg|R k    sJ t          j        |j        dd                    }
t          |j        d                   D ]]}t          |j        d                   D ]@}t          ||d||f         |d          } ||          	                                |
||f<   A^t          j
        |
d          }t          |	|d|           d S )N>   rI   rJ   rC  rD  r3   )r   r/   r0   rF  r   rG       A@      B@)	r   r/   r0   rF  r   rG  rV  rW  /   c                 F    g | ]}t          t          |                    S rq   )tuplereversedr   s     r)   r   zGTestRegularGridInterpolator.test_nonscalar_values_2.<locals>.<listcomp>H  s&    999QeHQKK((999r+   r   rm   r.   r   r   r  	   r   Fr  rZ   r   .r   axisrv   rK  )rO   rf   r   r   r	  r	   r   emptyr,  itemexpand_dimsr   )r"   r   rS  r#   r  trailing_pointsr$   rD   rE   rO  rP  r  rQ  rG   s                 r)   test_nonscalar_values_2z3TestRegularGridInterpolator.test_nonscalar_values_28  s    )))K(((D D D  	:99&999Fi##D)) Q1a:/::;;A(6;= = =F6NN w1/////// Xfl233'((v|B'(( 	1 	1A6<+,, 1 10Q	9J8>>CE E E "6&>>..001a4	1
 ^BQ'''2E6::::::r+   c           	         d}ddg}t           j                            d          }d}|                    ddg|R           }|                    d          }t          |||d	
          } ||          }|j        dg|R k    sJ t          j        |j        dd                    }	t          |j        d                   D ]]}
t          |j        d                   D ]@}t          ||d|
|f         |d	
          } ||                                          |	|
|f<   A^t          j        |	d          }t          ||d|           d S )NrU   rD  r3   r   )rm   r   r   r   r.   Fr  rZ   r^  r   .r   r_  rv   rK  )
r   r   r	  r	   r   ra  r,  rb  rc  r   )r"   r   r#   r  rd  r$   rD   rE   rO  rP  r  rQ  rG   s                r)   test_nonscalar_values_linear_2Dz;TestRegularGridInterpolator.test_nonscalar_values_linear_2Dc  s   059 i##D)) Q4O4455A(6;= = =F6NN w1/////// Xfl233'((v|B'(( 	1 	1A6<+,, 1 10Q	9J8>>CE E E "6&>>..001a4	1
 ^BQ'''2E6::::::r+   r   xi_dtypec                 v   d }t          j        ddd          }t          j        ddd          }t          j        ||dd	          \  }} |||          }|                    |          }t	          ||f|          }	t          j        d
dgddgg|          }
t           |	|
          ddgddd           d S )Nc                 $    d| dz  z  d|dz  z  z   S r  rq   rr   s     r)   r   z:TestRegularGridInterpolator.test_float32_values.<locals>.f  s    q!t8a!Q$h&&r+   rZ   r   r   r      rn   Tr   r   g@ffffff
@g@r   g Y`@g{,c@gHz>F)r^   rx   r   )r   r   ry   astyper	   r_   r   )r"   r   rh  r   rs   rt   r{   r|   r   rE   ptss              r)   test_float32_valuesz/TestRegularGridInterpolator.test_float32_values  s    	' 	' 	' K1b!!K1b!!QD>>>BqRyy{{5!!(!Q66hc
c
$+35 5 5 	slL%A!%	A 	A 	A 	A 	A 	Ar+   c                    t          j        ddd          }t          j        ddd          }t          j        ||dd          \  }}||z   }t          t                    5  t          ||f|d            d d d            n# 1 swxY w Y   t          t                    5  t          ||f|d	d
            d d d            n# 1 swxY w Y   t          t                    5  t          ||f|d	d d           d d d            n# 1 swxY w Y   t          t                    5  t          ||f|d	ddi           d d d            d S # 1 swxY w Y   d S )Nr   rm   r   rn   Tr   c                     | S r   rq   rs   s    r)   ru   z=TestRegularGridInterpolator.test_bad_solver.<locals>.<lambda>  s    1 r+   )solverrV   c                     | S r   rq   rr  s    r)   ru   z=TestRegularGridInterpolator.test_bad_solver.<locals>.<lambda>       r+   )r   rs  c                     | S r   rq   rr  s    r)   ru   z=TestRegularGridInterpolator.test_bad_solver.<locals>.<lambda>  ru  r+   woof)r   rs  rw  r#  )r   solver_args)r   r   ry   r`   rP   r	   	TypeError)r"   rs   rt   r{   r|   r   s         r)   test_bad_solverz+TestRegularGridInterpolator.test_bad_solver  s   K1a  K1a  QD>>>BBw :&& 	F 	F#QFDEEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 9%% 	 	#AY{{   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 9%% 	 	#AY{{   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 9%% 	 	#AYfb\   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   !BB
B"CC	C	$DDD'EEEc                     |                                  \  }}t          j        g dg dg dg dg          t          ||d          }ddgfd}t	          d	||           d S )
Nr<   r?   rA   )r   r=   r@   r   rV   rB   r   c                 \    |j         }| dz           } ||           |j         |u sJ d S )Nr.   rB   )_spline)tidrE   spliner   methodsrD   s       r)   	worker_fnz?TestRegularGridInterpolator.test_concurrency.<locals>.worker_fn  sF    ^FS1W%FF6&))))>V++++++r+   r   )r*   r   r_   r	   r   )r"   r#   r$   rE   r  r  rD   s        @@r)   test_concurrencyz,TestRegularGridInterpolator.test_concurrency  s    ,,..3333333333335 6 6 )	JJJ i(	, 	, 	, 	, 	, 	, 	 Iv66666r+   )6__name__
__module____qualname__r*   r1   r8   r:   parametrize_rgi_interp_methodsrH   rO   markparametrizerQ   r   r   rX   ra   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  	fail_slowr6  r?  rA  rR  re  rg  float32float64	complex64
complex128ro  rz  thread_unsafer  rq   r+   r)   r   r      s       	 	 		 	 		 	 		 	 	 $    $#   [X'D'D'DEE* * FE* [ 
)))***)))+  zrz*?*?*?@@A
	
      = = =( $    $#  
K 
K 
K: : :: : : [RZ,,,--v6RZ,,,--s3RZ,,,--s3RZ,,,--v6RZ,,,--v6	
	 	: :	 	:: : :, , ,$2 2 2	K 	K 	K	K 	K 	K: : :
H 
H 
H
H 
H 
H [X	8'<==3 3 >=37 7 7? ? ?*$ *$ *$X [\D"&"%+@AA[X)'<==> > >= BA>4 [X	8'<==0 0 >=0< [X	8'<=="C "C >="CH [2#[.	
001	
778	
>>?	
EEF	1  = =  $# =B4 4 4 $& & $#&
 [1#; ; $# ;: $[]UDM::'; '; ;: $#';R; ; ;> [	RZr}=  [Z"*bj)ABBA A CB	 
A0  8 [7 7 7 7 7r+   r   c                   ,    e Zd ZdZd Zd Zd ZddZdS )r   z"
    Minimal indexable object
    c                     d| _         || _        t          j        t          j        |                                        |          | _        d S r  )ndimr   r   r   prodr   r   )r"   r   s     r)   __init__zMyValue.__init__  s;    	
)BGENN++33E::r+   c                     | j         |         S r   )r   )r"   idxs     r)   __getitem__zMyValue.__getitem__  s    ws|r+   c                     d S r   rq   )r"   s    r)   __array_interface__zMyValue.__array_interface__  s    tr+   Nc                      t          d          )NzNo array representation)RuntimeError)r"   r   copys      r)   	__array__zMyValue.__array__  s    4555r+   )NN)r  r  r  __doc__r  r  r  r  rq   r+   r)   r   r     s_         ; ; ;
    6 6 6 6 6 6r+   r   c                   :   e Zd Zd Zd Zed             Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zed             Zej                            d          ed                         Zed             Zd Zed             Zej        j        d             Zej        j        d             Zej                            dddg          d             Zeed                         Zd Zd Zd Z d Z!d Z"d Z#d Z$ej                            d d!d"g          d#             Z%d$S )%TestInterpNc           	          t          j        g d          }t          j        g d          }t          j        g dg dg dg dg dg dg          }|||fS )N)r   r5   r7   r;  r<  g      @)rZ   r.   rZ   r.   rZ   rZ   )rZ   r.   rm   r.   rZ   rZ   )rZ   r.   r.   r.   rZ   rZ   )r   r_   )r"   rs   rt   r   s       r)   _sample_2d_datazTestInterpN._sample_2d_data  s    H...//H...//H""""""""""""""""""	
 	
 !Qwr+   c           	      ,   |                                  \  }}}t          |||          }t          j        g dg dg          j        }t          t          ||f||d          |                    |d d df         |d d df                              d S )NrZ   ffffff@r   r   rl  333333?rm   rZ   rl  r  r;  r/   r   rm   	splinef2drB   r   rZ   )r  r   r   r_   r   r   r
   ev)r"   rs   rt   r   lutr*  s         r)   test_spline_2dzTestInterpN.test_spline_2d  s    &&((1a!!Q**X6666668 9 99: 	!'1a&!R"L"L"L"%&&AAAqD2aaad8"<"<	> 	> 	> 	> 	>r+   c                 |   |                                  \  }}}t          j        g dg dg          j        }t	          ||f|||          }t	          |                                |                                f|                                |                                |          }t          |||           d S )Nr  r  rB   )rL  )r  r   r_   r   r
   rC   r   )r"   r   rs   rt   r   r*  rF   rG   s           r)   rH   zTestInterpN.test_list_input  s    &&((1aX6666668 9 99: 	aVQ6222XXZZ$ahhjj"))++f
 
 
 	B//////r+   c           
         t          j        g d          }t          j        g d          }t          j        g dg dg dg dg dg          }t          |||          }t          j        g dg dg          j        }t	          ||f||ddd	
          }|                    |d d df         |d d df                   }d	|dd<   t          ||           t          t          t          ||f||ddd 
           d S )Nr=  rZ   r.   rZ   r.   rZ   rZ   r.   rm   r.   rZ   rZ   r.   r.   r.   rZ   rZ   r  r   r   rl  r  rm   rZ   rl  r  g      r/   r   rm   r  FR?@r   r   rZ   r.   r   )	r   r_   r   r   r
   r  r   r`   rP   )r"   rs   rt   r   r  r*  actualexpecteds           r)   test_spline_2d_outofboundsz&TestInterpN.test_spline_2d_outofbounds  sJ   H***++H***++Hooo%oo8 9 9!!Q**X6667779 : ::; 	!QB{&+@ @ @66"QQQT(Bqqq!tH--1!&(333 	j'Aq61b#(T	; 	; 	; 	; 	; 	;r+   c                    dgdz  dgdz  z   }t          j        g d          }|d d t           j        t           j        t           j        f         }|t           j        d d t           j        t           j        f         }|t           j        t           j        d d t           j        f         }|t           j        t           j        t           j        d d f         }||dz  z   |dz  z   |dz  z   }||fS r-   r   r!   s          r)   _sample_4d_datazTestInterpN._sample_4d_data  s    !#}o&99LLL))BJ
BJ>?QQQ
BJ>?RZBJ>?RZQQQ>?GbL(7S=87T>Iv~r+   c                     |                                  \  }}t          ||          }t          j        g dg          }t	          |||d          }t           ||          |           d S )NrR   rU   rB   r  r	   r   r   r
   r   r"   r#   r$   	interp_rgrD   r   s         r)   test_linear_4dzTestInterpN.test_linear_4d%  su    --//+FF;;	000122AAA!))F"3"3V<<<<<r+   c                     |                                  \  }}t          j        g dg          }t          j        dg          }t          |||ddd          }t	          ||           d S )Nr=   r   g333333$@rS   r  rU   Fr   r  r   r   r
   r   r"   r#   r$   rD   r   r  s         r)   test_4d_linear_outofboundsz&TestInterpN.test_4d_linear_outofbounds-  s{    --//222344VH%%&+@ @ @!&&11111r+   c                     |                                  \  }}t          ||d          }t          j        g dg          }t	          |||d          }t           ||          |           d S )Nr   rB   rR   r  r  s         r)   test_nearest_4dzTestInterpN.test_nearest_4d6  sz    --//+FF9MMM	000122	BBB!))F"3"3V<<<<<r+   c                     |                                  \  }}t          j        g dg          }t          j        dg          }t          |||ddd          }t	          ||           d S )Nr  r  r   Fr   r  r  s         r)   test_4d_nearest_outofboundsz'TestInterpN.test_4d_nearest_outofbounds>  s{    --//222344VH%%	&+@ @ @!&&11111r+   c                     |                                  \  }}t          j        g d          }t          |||d          }t          |||d d d f         d          }t	          ||           d S )NrR   F)r   )r  r   r   r
   r   r"   r#   r$   rD   rF   rG   s         r)   
test_xi_1dzTestInterpN.test_xi_1dG  s{    --/////00VVV%@@@VVVDF^%HHHBr+   c                    |                                  \  }}t          j                            d           t          j                            ddd          }t          |||dd          }|j        dk    sJ t          |||                    d	d          dd          }t          ||                    |j                             d S )
Nr   r.   rm   r   r   Fr  r.   rm   r   )	r  r   r   r   r   r
   r   r   r   r  s         r)   
test_xi_ndzTestInterpN.test_xi_ndO  s    --//
	t1a((VVVI"') ) )x6!!!!VVV^^B%:%:%E; ; ;BJJrx0011111r+   c                 4   |                                  \  }}}||f}t          j        ddd          }t          j        ddd          }|d d d f         |d d d f         f}t          ||||d          }	|	j        dk    sJ t          j        ||          \  }
}t          j        |
j                                        |j                                        f         }t          ||||d          }t          |	|
                    |	j                             d S )Nr   rZ   r.   rm   Fr  r  )r  r   r   r
   r   ry   c_r   ravelr   r   )r"   r   rs   rt   r$   r#   r*  yirD   rF   xxyyrG   s                r)   test_xi_broadcastzTestInterpN.test_xi_broadcast^  s    ++--1fQ[Aq!![Aq!!QQQW+r$'{+VVVFOOOx6!!!!R$$Brtzz||RTZZ\\12VVV"8 8 8BJJrx0011111r+   r   c                    dk    rt          j        d           dgdz  dgdz  z   t          j                            d          }|                    d          |                    d          t          d	
          }|j        dk    s
J             fdt          d          D             }t          j        |          	                    ddd          }t          ||d           d S )NrJ   rC  rD  r.   rE  r   rH  rI  Fr  rJ  c           	      H    g | ]}t          d |f         d          S .Fr  r
   r   rQ  r   r#   rD   r$   s     r)   r   z5TestInterpN.test_nonscalar_values.<locals>.<listcomp>  sK     = = =./ ffS!VnfV#(* * * = = =r+   r  rZ   r   rv   rK  )rO   rf   r   r   r	  r
   r   r,  r_   rN  r   )	r"   r   r  rO  rP  rG   r#   rD   r$   s	    `    @@@r)   rR  z!TestInterpN.test_nonscalar_valuesr  s3    YK((( 11A5,9
9  i##D))O,,I&&FFF6!&( ( (w)###V###= = = = = = =3888= = =Xb\\##Aq!,,2E6::::::r+   c                    dv rt          j        d           g dt          j                            d          }d}|                    dddd	g|R           |                    d
          t          d          }|j        dg|R k    sJ fdt          j        d                   D             }t          |t          j	        |          j
        d           d S )N>   rI   rJ   rC  rU  r   r\  r   r   r  r]  r   Fr  rZ   c                 f    g | ],fd t          j        d                   D             -S )c           	      J    g | ]}t          d |f         d           S r  r  )r   r  rQ  r   r#   rD   r$   s     r)   r   zBTestInterpN.test_nonscalar_values_2.<locals>.<listcomp>.<listcomp>  sN       01 sAqy 16&%*, , ,  r+   r^  )r,  r   r  s    @r)   r   z7TestInterpN.test_nonscalar_values_2.<locals>.<listcomp>  sp     2 2 2        5:6<;K5L5L   2 2 2r+   r   rv   rK  )rO   rf   r   r   r	  r
   r   r,  r   r   r   )	r"   r   r  rd  rO  rP  r#   rD   r$   s	    `    @@@r)   re  z#TestInterpN.test_nonscalar_values_2  s/    )))K(((D D D
 i##D)) Q1a:/::;;AFFF6NNN w1///////2 2 2 2 2 2 2 v|B/002 2 2
 	2:b>>+%HHHHHHr+   c                 8   |                                  \  }}t          j                            d           t          j                            ddddd          }t          j                            ddd          }t          t          t          |||d           d S )	Nr   rm   r   r   r   r   r  rB   )r  r   r   r   r   r`   rP   r
   )r"   r#   r$   rD   s       r)    test_non_scalar_values_splinef2dz,TestInterpN.test_non_scalar_values_splinef2d  s    --//
	t1aA..2q))j'666(	* 	* 	* 	* 	* 	*r+   c                 v   |dk    rt          j        d           |                                 \  }}}||f}|d|z  z
  }t          j        g dg dg          j        }t          ||||          }t          ||j        ||          }t          ||j        ||          }	|d|	z  z   }
t          ||
           d S )NrK   rc   rd   r  r  rB   re   )
rO   rf   r  r   r_   r   r
   rg   rh   r   )r"   r   rs   rt   r$   r#   rD   rF   v2rv2irG   s              r)   rk   zTestInterpN.test_complex  s    WKDEEE++--1fQ"V)#::::::< = ==> 	 VVVF;;;ffk6&AAAffk6&AAA2c6\Br+   c                    |                                  \  }}}||f}|d|z  z
  }t          j        g dg dg          j        }t	          j        t          d          5  t          |||d           d d d            d S # 1 swxY w Y   d S )Nrd   r  r  rg   rM   rK   rB   )r  r   r_   r   rO   r   rP   r
   r"   rs   rt   r$   r#   rD   s         r)   test_complex_pchipzTestInterpN.test_complex_pchip  s     ++--1fQ"V)#::::::< = ==> 	]:V444 	< 	<FFF7;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   B  BBc                    |                                  \  }}}||f}|d|z  z
  }t          j        g dg dg          j        }t	          t
                    5  t          |||d           d d d            d S # 1 swxY w Y   d S )Nrd   r  r  r  rB   )r  r   r_   r   r   r   r
   r  s         r)   test_complex_spline2fdz"TestInterpN.test_complex_spline2fd  s     ++--1fQ"V)#::::::< = ==> 	.)) 	@ 	@FFF;????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   A99A= A=r   rU   r   c                    t          j        ddd          }t          j        ddd          }t          d          }t          ||f|ddg|	          }t          ||f|j        ddg|	          }t          ||d
           d S )Nr   r.   r   rZ   r   r   r   r   rB   Fr   )r   r   r   r
   r   r   )r"   r   rs   rt   r$   rF   rG   s          r)   r   z"TestInterpN.test_duck_typed_values  s    
 K1a  K1a  aVVc3Z???aVVYc
6BBBBE222222r+   c                    t          j        ddd          }t          j        ddd          }t          t           j                            dd                    }t           j                            ddd          }t          ||f|||          }t          ||ft          j        |          ||          }|dk    rt          ||d	d
           dS t          ||           dS )z8np.matrix inputs are allowed for backwards compatibilityr   r.   r   rZ   r   rm   rB   rJ   g-C6
?g>rw   N)r   r   r   r   r   r
   r   r   )r"   r   rs   rt   r$   rD   rF   rG   s           r)   test_matrix_inputzTestInterpN.test_matrix_input  s     K1a  K1a  	q!,,--1a((aVVVF;;;aVRZ//GGGYBD999999B#####r+   c                 V   t          j        g dg          }t          j        ddgddgddgg          }t          dgg df||          }g d}t          ||d	           t          j        d
dgddgddgg          }t          dgg df||dd           }t          ||d	           d S )N)r=   rZ   r   rZ   g@g	@gffffff@)r.   rm   r   )gQ?gffffff@gffffff @r\   r]   r   r4   gffffffFr   )r   r_   r
   r   )r"   r$   r*  r  r   s        r)   r   z TestInterpN.test_length_one_axis  s    
 <<<.))X3x!SAs8455sIII&33   	V%0000 XSzC:c{;<<sIII&#(T; ; ; 	V%000000r+   c           	      d   d }t          j        g d          }t          j        g d          }t          j        g d          }t          j        g d          }||||f} |t          j        |ddd }dd	t          j        t          j        d
dd                    t          j        d
d	d          f}t          |||          }	|d d d         }
|d d d         }|d d d         }|d d d         }|
|||f} |t          j        |ddd }t          |||          }t          |	|           d S )Nc                 0    d| dz  z  d|dz  z  z   |z
  |z
  S r  rq   r  s       r)   value_func_4dz9TestInterpN.test_descending_points.<locals>.value_func_4d  s'    qAv:AF
*Q.22r+   )r   rZ   r.   rm   )r   r   r   r   )r   r=   r@   r   rn   Tr   r=   r   r   r   r   r   )r   r_   ry   rN  r   r
   r   )r"   r  x1x2x3x4r#   r$   rn  correct_result
x1_descend
x2_descend
x3_descend
x4_descendpoints_shuffledvalues_shuffledtest_results                    r)   test_descending_pointsz"TestInterpN.test_descending_points  sj   	3 	3 	3 Xlll##Xooo&&Xooo&&X&&&''b"b![&4===?Cbk!R&;&;<<{1c1%%' 55"X
"X
"X
"X
%z:zJ'-[/DFFFHoDD44444r+   c                 t   t          j        g d          }t          j        g d          }t          j        g dg dg dg dg dg          }t          j        g dg dg          j        }d}t          j        t
          |	          5  t          ||f||           d d d            d S # 1 swxY w Y   d S )
Nr:  r=  r  r  r  r  r  r>  rM   )r   r_   r   rO   r   rP   r
   )r"   rs   rt   r   r*  rN   s         r)   r?  z%TestInterpN.test_invalid_points_order3  s'   H***++H***++Hooo%oo8 9 9X6667779 : ::; 	 ;]:U333 	# 	#QFAr"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   B--B14B1c                     dg}ddg}t          j        d          }d}t          t          |          5  t	          |||           d d d            d S # 1 swxY w Y   d S )N)r   rZ   r   rZ   )rZ   rZ   rm   zaThe requested sample points xi have dimension 3, but this RegularGridInterpolator has dimension 1rM   )r   r   r`   rP   r
   )r"   r#   r$   r*  msgs        r)   test_invalid_xi_dimensionsz&TestInterpN.test_invalid_xi_dimensions?  s    QWY9:S111 	( 	(FFB'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   AAAc                    t          j        ddd          }t          j        ddd          }t          j        ddd          }|||f}t          j        d          }t          j        g d          }|D ]}d|j        _        d|j        _        d|j        _        t          |||            t          ||          |           d S )	Nr   r   r   r   r   r   r   r   Gz@(\@gffffff?Fr   r   r   r_   flags	writeabler
   r	   )r"   rs   rt   r   r#   r$   pointds           r)   test_readonly_gridzTestInterpN.test_readonly_gridI  s    K1a  K1a  K1a  Q##+++,, 	& 	&A %AG!& %&&&///66666r+   c                 `   t          j        ddd          }t          j        ddd          }||f}t          j        d          }t          j        ddg          }|D ]}d|j        _        d|j        _        d|j        _        t          |||            t          ||          |           d S )	Nr   r   r   r   r   r   r   r  Fr  )r"   rs   rt   r#   r$   r  r  s          r)   test_2d_readonly_gridz!TestInterpN.test_2d_readonly_gridX  s     K1a  K1a  Q$&& 	& 	&A %AG!& %&&&///66666r+   c                    t          j        ddd          }t          j        |t          j        |          f          j                                        d d df         }|j        j        rJ t          j        ddd          }t          j        ddd          }|||f}t          j        d          }t          j	        g d          }t          |||            t          ||          |           d S )Nr   r   r   r   r   r  r  )r   r   r   
empty_liker   r  r  c_contiguousr   r_   r
   r	   )r"   rs   rt   r   r#   r$   r  s          r)   test_non_c_contiguous_gridz&TestInterpN.test_non_c_contiguous_gridg  s    K1a  Iq"-**+,,.3355aaad;7''''K1a  K1a  Q##+++,,&&&///66666r+   r   z>f8z<f8c                    t          j        ddd|          }t          j        ddd|          }||f}t          j        d|          }t          j        ddg|          }t	          |||            t          ||          |           d S )	Nr   r   r   r   r   r	  r   r  )r   r   r   r_   r
   r	   )r"   r   rs   rt   r#   r$   r  s          r)   test_endiannesszTestInterpN.test_endiannesst  s     K1au---K1au---Qu---$U333&&&///66666r+   N)&r  r  r  r  r  r  rH   r  r  r  r  r  r  r  r  r  rO   r  r  rR  re  r  rk   r  r  r  r  r   r   r  r   r  r?  r  r  r
  r  r  rq   r+   r)   r  r    s         > > > $0 0 $#0; ; ;&  = = =2 2 2= = =2 2 2     2 2 2 $2 2 $#2& [1#; ; $# ;0 $I I $#I@* * * $    $# $ [	< 	< 	< [	@ 	@ 	@ [	9 3 3	 3 #$ $ $# $"1 1 1,5 5 54
# 
# 
#( ( (7 7 77 7 77 7 7 [Wuen55	7 	7 65	7 	7 	7r+   r  )!r   rO   numpyr   numpy.testingr   scipy._lib._array_apir   r   r   scipy.conftestr   r   r`   scipy.interpolater	   r
   r   r   r   scipy.sparse._sputilsr   scipy._lib._utilr   scipy._lib._testutilsr   r  r  _ALL_METHODSr  r   r   r  rq   r+   r)   <module>r     s            & & & & & &          / . . . . . * * * * * *L L L L L L L L L L L L L L ) ( ( ( ( ( + + + + + + 9 9 9 9 9 9 "(!8!8%2" " r
7 r
7 r
7 r
7 r
7 r
7 r
7 r
7j6 6 6 6 6 6 6 6(Z7 Z7 Z7 Z7 Z7 Z7 Z7 Z7 Z7 Z7r+   